变量与常量

变量与常量

一、命名规则:以字母或下划线开头,其他字符可以是数字、字母或下划线。大小写敏感。Python 是动态类型语言,不需要预先声明变量类型,变量值和类型在赋值时被初始化。

二、Python 赋值语句不返回值,不支持类似 x++或—x 这样的单目双重运算符,允许符合赋值(*=)、多重赋值和“多元”赋值

三、变量的赋值可以是一条被分成了多行的命令, 用反斜线 (“\”) 作为续行符,当一条命令用续行符 (“\”) 分割成多行时, 后续的行可以以任何方式缩近, 此时 Python 通常的严格的缩近规则无需遵守。

四、Python 有局部变量和全局变量之分, 但没有明显的变量声明。变量通过首次赋值产生, 当超出作用范围时自动消亡。Python 不允许引用一个未被赋值的变量, 试图这样做会引发一个异常。

五、Python 的一种编程简写是一次使用序列来给多个变量赋值。Python 中,可以使用内置的 range 函数和多变量赋值的方法来快速进行赋值,与 C++中的枚举相似。如:

(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) =range(7)

Python 内置的关键字如下,内置的关键字不允许被用作变量名。

and as assert break
class continue def del
elif else except exec
finally for from global
if import in is
lambda not or pass
print raise return try
while with yield None

如果要删除一个已定义的变量的话,可以使用del[var]关键字。

作用域

作用域是指 Python 程序可以直接访问到的命名空间。“直接访问”在这里意味着访问命名空间中的命名时无需加入附加的修饰符。尽管作用域是静态定义,在使用时他们都是动态的。每次执行时,至少有三个命名空间可以直接访问的作用域嵌套在一起:包含局部命名的使用域在最里面,首先被搜索;其次搜索的是中层的作用域,这里包含了同级的函数;最后搜索最外面的作用域,它包含内置命名。如果一个命名声明为全局的,那么所有的赋值和引用都直接针对包含模全局命名的中级作用域。另外,从外部访问到的所有内层作用域的变量都是只读的。 从文本意义上讲,局部作用域引用当前函数的命名。在函数之外,局部作用域与全局使用域引用同一命名空间:模块命名空间。类定义也是局部作用域中的另一个命名空间。作用域决定于源程序的文本:一个定义于某模块中的函数的全局作用域是该模块的命名空间,而不是该函数的别名被定义或调用的位置,了解这一点非常重要。另一方面,命名的实际搜索过程是动态的,在运行时确定的——然而,Python 语言也在不断发展,以后有可能会成为静态的“编译”时确定,所以不要依赖于动态解析!(事实上,局部变量已经是静态确定了。) Python 的一个特别之处在于其赋值操作总是在最里层的作用域。赋值不会复制数据——只是将命名绑定到对象。删除也是如此:“del x ”只是从局部作用域的命名空间中删除命名 x。事实上,所有引入新命名的操作都作用于局部作用域。特别是 import 语句和函数定将模块名或函数绑定于局部作用域。(可以使用 global 语句将变量引入到全局作用域。)

上一页