与其他大部分编程语言不一样,Python使用空白符(whitespace)和缩进来标识代码块。也就是说,循环体、else条件从句之类的构成,都是由空白符加上冒号(:)来确定的。大部分编程语言都是使用某种大括号来标识代码块的。下面的C语言代码将会计算9的阶乘,结果保存在变量r中:
/* C语言代码 */
int n, r;
n = 9;
r = 1;
while (n > 0) {
r *= n;
n--;
}
使用python时,如果你想用{}来表示一个代码块,不好意思,{}已经被用来表示字典了。那就只能另辟蹊径,用:和缩进来实现代码块。下面是python对上述代码的等价实现。
python">n = 9
r = 1
while n > 0:
r = r * n
n = n - 1
print(r)
Python不用大括号标识代码结构,而是用缩进本身来标识。上述最后两行代码就是while循环体,就是因为它们紧随while语句的冒号后面,并且比while语句缩进一级。如果这两行代码没做缩进,就不会构成while循环体。(别忘了冒号)
在大多数情况下,Python文件中符号#之后的任何内容都是注释,将会被编译器忽略。有一种情况明显例外,即字符串中的#只是一个普通字符:
C/java等语言注释都是用//系列实现。
python"># 将5赋给x
x = 5
x = 3 # 现在x成了3
x = "# This is not a comment"
赋值是最常用的Python命令,用法也与其他编程语言很类似。下面用Python代码新建变量x,并赋值为5:
python">x = 5
与很多其他计算机语言不同的是,Python既不需要声明变量类型,也不需要在每行代码后面添加结束符。代码换行即表示结束,变量在首次被赋值时会自动创建。也就是没有了C/java 等语言的声明过程。
Python中的变量性质更加类似于java引用的概念。大家可以通过下面的例子体会。
python">a = [1, 2, 3]
b = a
c = b
b[1] = 5
print(a, b, c)
我们可以将赋值语句看做两步:等号右侧分配内存创建实际的对象,等号左侧创建引用。然后将等号左侧的引用指向等号右侧的对象。
Python变量可以被设为任何对象,也就是说python变量是没有类型的。而在C和许多其他语言中,变量只能存储声明过的类型的值。下面的Python代码是完全合法的:
python">x = "Hello"
print(x)
x = 5
print(x)
如果去掉类型检查的话,java的引用和C的指针也可以做到一样的效果。
用del语句删除变量
python">x = 5
print(x)
del x
整个Python系统中只有1个None的实例,所有对None的引用都指向同一个对象,None只等价于它自身。
python推荐编码风格