手记

笔记_Python3学习笔记(n1:使用入门

可能有遗漏建议去原帖看看吧:http://tieba.baidu.com/p/5261207228?pn=1

第一个程序当然是你好世界啦!
Python你好世界只需要一行:


print是打印字体,我用的是交互模式(IDLE)。
第一行和第三行是标准的语句。
第二行出错原因是:不接受中文下的标点符号,Python是个外国佬。
第四行因为使用了两个不同的双引号而出错,只用单引号,或者只用双引号

变量是把一个值赋值给一个变量从而保存它,并且随时可以被调用
IDLE可以通过直接输入变量名方式来打开这变量
2**8是2的8次方,Python的IDLE可以当作计算器使用,非常方便,并且没有长度限制(主要看你的电脑配置,配置决定速度)

>>> X
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
X
NameError: name 'X' is not defined*

在IDLE下直接输入没有被赋值的变量名会出现错误
我们开始第一段脚本吧

Ctrl+N新建一个脚本

import sys #导入一个PYthon模块(附加工具库)
print (sys.platform) #运行3个print函数调用,这一行代码是获取系统平台名称
print(2**8) #8个2相乘
X = 'Spam! ' #使用名为X的变量,创建时对其赋值,保存一个字符串对象
print(X*8) #打印8次X变量内的字符串

井号是注释作用,也可以用来屏蔽一段代码

RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/1.1.py 
win32
256
Spam! Spam! Spam! Spam! Spam! Spam! Spam! Spam! 

我们在后面会具体介绍,我们不必关系这个代码的语法,我们已经可以保存代码到一个文件中了,IDLE下代码是不会被保存的

补充:Ctrl+D可以关闭交互模式

!重要,安装和配置:http://t.cn/RCyXtF7

记住这个文件叫做1.1.py
我们来尝试使用系统命令来运行他,基础配置我略过了,自己网上查。
Win+R输入cmd

这是为了保证已经安装了Python基础环境,后面会提到使用IDLE和CMD的不同

这个方法仅仅适用于Win7以上系统,Unix系统不说

说几个新手很容易犯得错误:
Python当保存文件时主要保存成.py文件,旧版本不会自动加.py

.py文件是文本保存的,也就是说,可以把后缀名更改为.txt来用Windows系统自带的文本查看器打开,但一定要修改过来。

Python的颜色编码不能使用在doc文档上

如果实用的代码看不到输出,请检查是否使用了print(),这和交互模式不一样,交互模式不需要print

我们也可以通过点击图标来打开.py文件。但是运行后会出现一个黑色DOS终端窗口,然后闪一下消失了,这不是BUG,这是因为命令已经运行完成,需要某种操作才能让Windows处理打印的结果。

这样的问题很好解决:只需要在句子末位输入input()


我们还可以在input括号里输入描述
可选的接受字符串,这希尔些字符串将作为提示打印出来。
例如:input('你好:')
以字符串形式返回读入脚本
例如:变量 = input()

使用input()如果有语法错误,那么input()标准输入代码失效,你可能看不到任何失效信息,因为这个窗口会马上消失

用简单的话来说每一个以.py扩展名结尾的Python源代码文件都是一个模块。
导入本质上就是载入另一个文件,并能读取那个文件内容

模块成为Python的核心程序框架一个核心概念,更大的程序往往以多个模块文件形式出现,并且导入其他模块文件的工具,其中一个模块文件设计成主文件,或叫顶层文件(就是那个启动后能运行整个程序的文件)

现在我们在交互模式下导入一个模块:

注意哦,一定要删除input,否则无缘无故按回车(Enter)
我在刚才发现一个BUG使用import导入时不能使用1.1为名字,不然会出现错误。

我把名字改为了bkx(IDLE不支持导入有特殊符号的名字)

第一行我输入了impor bkx
import的意思是导入,我导入了一个叫bkx.py的文件,不需要输入后缀名。
你会发现再次使用import时已经无效了,这是故意被设计成这样的。
为了让程序再次运行需要调用imp标准库模块中的可用reload函数,这个函数在python2是内置的,在python3中不是内置的。
from是在模块中复制出一个名字,import是导入模块
reload是重载,并且运行文件最新的代码

from imp import reload是一个语句,而reload有括号他是一个元组。
reload只接受通过import导入的模块

>>> import os
>>> os.getcwd()
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32'

上面这段代码是用来检测当前工作路径
注意:
只能输入Python命令,请不要输入系统命令(例如:os.system)

print打印语句在交互模式下不是必须的,在文件编写代码如果代码无响应,请检查是否有print

输入多行语句是需要按两下回车

交互模式每次只能运行一条语句

Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import sys
>>> print(sys.platform)
win32
>>> 
RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\bkx2.py 
win32
65536
Spam! Spam! Spam! Spam! Spam! Spam! Spam! Spam! 
>>> import bkx2
win32
65536
Spam! Spam! Spam! Spam! Spam! Spam! Spam! Spam! 
>>> from imp import reload
>>> reload(bkx2)
win32
65536
Spam! Spam! Spam! Spam! Spam! Spam! Spam! Spam! 
<module 'bkx2' from 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32\\bkx2.py'>
>>> import os
>>> os.getcwd()
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32'
>>>

模块的显要特征:属性
导入的最一步是执行文件,导入扮演了一个和工具库角色,模块是变量名的封装,被人做事命名空间,在一个包中变量名就是所谓的属性:也就是说,属性就是绑定在特定对象上的变量名(就像一个模块)

典型应用中倒入者得到了所有顶层文件的变量名。这些变量名通常被赋值给通过模块函数、类、变量以及其他被导出的工具,这些往往都会在其他文件或程序中使用。表面上看,一个模块文纪的变量名可以通过两个Python语句读取------import和from,以及reload调用。

为了说清楚请用文本编辑器创建一个名为myfile.py的单行Python模块文件。

以上为直接照抄

标题 = '赋值语句' #赋值语句

新建一个文件
当文件导入时,代码运行并生成了模块属性。这个赋值语句创建了一个名为标题的模块属性。

可以通过两种方法获取模块属性

import作为模块整体的载入,并使用模块名后跟一个属性名来获取他
上面这些我自己都看不懂,到下面的内容你就明白了

>>> import myfile
>>> print(myfile.title)

赋值语句

>>> from myfile import title
>>> print (title)

赋值语句

这样就应该明白了吧
之前有很多借鉴原书的内容,现在我来正式说理解一下吧

我导入了myfile,倒入者可以获得所有顶层文件的变量名,正如上面的代码。

>>> from myfile import title
>>> print (title)

在这里我们获取了模块中的title属性

>>> import myfile
>>> print(myfile.title)

和上面是不同的方法

1.cmd窗口下直接输入python模块路径来运行
2.点击图标运行时记得在.py扩展名文件下输入input(),括号内可以填写可供阅读的提示文字
3.sys.platftom, platfrom是平台的意思
4.IDLE下变量一旦创建将无法改变
5.模块名字的命名和变量名最好是纯英文字母

6.只接受英文下的双引号,并且使用符号一致
7.import 可以导入一个模块,让已经运行的模块第二次运行
8.第多次想要运行模块比较麻烦,要使用这个命令必须确保import已经导入,需要在imp模块中找到顶层文件中的reload变量名from imp import reload,下一句使用reload(要重复运行模块名字)
9.为了说清楚上一条,需要创建一个字符串类型的变量,并且模块命名为QCC(英文),import导入QCC模块使用print(QCC.变量名)打印一段代码。作为替换from QCC import

>>> import QCC
>>> print (QCC.变量名)

执行命令成功

作为替代方案可以通过这样的语句从模块文件中获得(实际上是复制)变量名:

>>> from QCC import 变量名
>>> print(变量名)
执行命令成功

你可以把"."当作"的、中的"意思,很好理解,import不需要.py后缀名,IDLE需要加上.py后缀名,目前还没有学到。

a = 'dead'
b = 'parrot'
c = 'sketch'
print(a,b,b)

你不必在意字符串的意思,因为他根本无关。你只要注意这个模块名字叫做A1

>>> import A1
dead parrot parrot
>>> 
>>> A1.b,A1.c
('parrot', 'sketch')
>>> from A1 import a,b,c
>>> b,c
('parrot', 'sketch')
>>> 

print(a,c)相同语法格式,这里的结果有括号这是因为他们是元组,目前我们可以忽略他们。

>>> dir(A1)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'c']

dir内置函数可以获得内部可用的变量名列表,下面代码返回了python字符串列表(目前可以不掌握)

主要解释一下命名空间吧,我感觉发完发着教程要退吧,全都是广告。

通俗的来说,Python中所谓的命名空间可以理解为一个容器。在这个容器中可以装许多标识符。不同容器中的同名的标识符是不会相互冲突的。


我的理解是命名空间是独立运行的完备程序,即使在一个文件的变量名拼写相同的情况下不会与另一个文件变量名发生冲突。

模块将变量封装为不同部分Python才具有了能避免命名冲突。

from语句解决了模块的名称空间分隔的目的,form是把一个文件复制到另一个文件,这会导致相同的变量名会被覆盖,发生这种事情,不会为你给出警告。这会导致名称空间会重叠到一起,至少在复制的变量上会重叠。

很多人使用import和reload运行文件,使用(图标点击、IDLE菜单选项、系统命令行)来运行最新版本的文件。在调用reload时必须使用括号,并且要记住,使用最新版本运行时首先要reload,重载只能重载该模块,不能重载该模块所导入的所有模块。

每一个文件都是一个独立完备的命名空间,即使他们在拼写相同个情况下,一个文件中的变量名是不会与另一个文件的变量名冲突的。

import 和 reload的使用注意事项:
使用cmd可以运行最新版本的代码,这要比ILED方便很多。在后面尽量不使用import和reload,、
为了避免复杂性,把所有文件放到一个工作目录下
Import和reload是常用的一种测试技术。然而,你会发现碰壁了。

使用exec运行模块文件:

>>> exec(open('A2.py').read())

每次以这种方式运行exec的时候,他类似于import,不同处在于他不需要导入模块,exec多次运行只需要一行代码,而import多次运行需要两行代码。

缺点是和前面提到的from一样,变量有潜在默认覆盖的可能,并且IDE不会提示出错。

例如:


在这里创建一个X变量

import语句每个进程的文件只会运行一次,并且会把它生成到单独的名称空间中,以便他的赋值不会被改变你的作用的中的变量。为模块名称空间分隔所f付出的代价是,在修改之后需要重载。

IDLE用户界面:
IDLE提供了更可视化Python开发图形界面(GUI),而且是系统标准且免费的部分。它往往被认为是一个集成开发环境(IDE),因为他在单独的界面绑定了许多开发任务。
[IDLE是一个官方变形,但实际上为纪念Monty Python的成员Eirc Idle而命名的]
IDLE人物介绍:http://t.cn/R9ddtaX

简而言之,IDLE是一个能够编辑、运行、游览、调试Python程序的GUI,所有都能够在单独界面实现。此外,由于IDLE是使用Tkinter GUI工具包开发的Python程序,可以在几乎任何Python平台上运行,包括Windows、X Windows(例如:Linux、Unix及Unix类平台)以及Mac OS(无论是Classic还是OS X)。对于很多来来说,IDLE代表了一种简单易用的明明行输入的替代方案,并其人比点击图标出问题的可能性更小

在我们运行程序时会看到 RESTART

>>> 
=============================== RESTART: Shell ===============================

'RESTART' 信息告诉我们用户脚本的进程重新启动以运行编辑的脚本,并为独立的脚本输出做好准备(如果IDLE已经在没使用用户代码子程序的情况下运行了,他讲不会显示)

Alt+P可以返回IDLE中上一个代码的数据,Alt+N向前寻找。

IDLE没有清屏选项
如果发生错误通过单个进程模式启动IDLE,运行系统命令行:idle.py -n
IDLE会把运行过的程序放到导入中。这是IDLE特性而不是Python特性

高级IDLE工具
IDLE调试器,对象游览器通过File菜单激活


也可以通过在错误信息上进行右键单击来快速的跳到发生错误的那一行代码。

笔记:
http://blog.sina.com.cn/s/blog_1601842e90102x28c.html

0人推荐
随时随地看视频
慕课网APP