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