# 特点
# 语法特点
Python 是一种脚本语言,属于解释型语言、动态语言。
Python 借鉴了 C、Shell 等语言的特性,比如标识符的命名规则、运算符。
与其它编程语言相比, Python 的语法特点:
- 脚本文件的扩展名为 .py 。
- 在每条语句的末尾,使用一个换行符,表示这条语句的结束。
- 也可以用分号
;
表示一条语句的结束,从而将多条语句写在同一行,比如x=1; y=2
,但是看起来不简洁。
- 也可以用分号
- 用
#
声明单行注释。 - 将缩进作为语法的一部分,强制要求代码缩进,从而提高可读性。
- 支持定义函数。
- 支持定义类,进行面对对象编程。
- 不需要主动管理对象占用的内存,会自动分配内存、回收内存。
- 代码与平台解耦,同一段 Python 代码可以被不同平台的 Python 解释器执行。
# 程序示例
编写一个脚本文件 test.py :
#!/usr/bin/python
# -*- coding : utf-8 -*-
x = 1 # 创建一个变量,名为 x ,赋值为 1
x = "Hello World!" # 给变量 x 赋值一个字符串
print(x) # 将一个值打印到终端
def test_print(x, y): # 定义一个函数
print(x, y)
test_print(3.14, "Hello") # 调用函数
- 第一行的注释
#!/usr/bin/python
可以省略。- 该注释用于在类 Unix 系统上执行该脚本时,自动找到一个 Python 解释器。
- 第二行的注释
# -*- coding: utf-8 -*-
可以省略。- 该注释用于声明该脚本的编码格式,让 Python 解释器正确识别。
- Python2 的脚本才需要加入该注释。Python3 默认按 utf-8 编码读取脚本文件,因此省略该注释。
# 代码风格
Guido van Rossum 认为,一段代码被阅读的次数,远远多于被编写、修改的次数。因此写代码时,应该尽量提高代码的可读性,使得代码容易被人阅读、理解。
- 例如:如果使用单个字母作为变量名,则写代码时省事一些,但其他人看到这个字母时,难以理解这个变量的含义。
- 例如:使用 lambda 等高级语法,可以使代码更简短,但是可能难以阅读。
即使人们刻意提高代码的可读性,但不同人写代码的风格可能不同,比如标识符的命名格式。如果大部分人都采用同一种代码风格,则可以进一步提高代码的可读性。
- 因此,Guido van Rossum 发表了 PEP 8 (opens new window) ,建议 Python 开发者采用一些代码风格,从而提高 Python 代码的可读性。
在一个语句块中嵌套另一个语句块时,内语句块的每行代码,应该在行首增加缩进。
- 缩进应该使用空格,而不是制表符。
- 每层缩进,建议为 4 个空格。
- 同一个语句块中,每行代码的缩进长度必须相同。否则 Python 解释器会认为它们不属于同一个语句块,在执行这段代码时报错。
同级别的语句块之间,应该插入一个空行作为间隔。例如两个函数之间。
一个语句块的内容不能为空,即至少应该包含一行代码。如果不想写代码,可以写一个关键字
pass
,表示不进行任何操作。在运算符的两侧、逗号的右侧加上一个空格,从而美化排版,但是括号的两侧不需要加空格。例如:
a = max(1, 2) + max(3, 4)
每行代码不应该太长。
- 建议每行代码的长度,不超过显示器宽度的一半,这样方便在显示器中并排查看两个文件(经常有这种需求,比如用 git 比较文件差异)。
- 如果严格要求,则建议每行代码不超过 79 个字符(包括行首缩进)。如果超过该长度,则应该将一行代码写作多行。例如:
msg = 'one two three four' + \ # 使用反斜杠 \ 之后,可以在运算符 + 后面,插入换行符 ' five six seven eight' # 这里添加几个空格的缩进,使得上下两行字符串对齐,容易阅读
msg = 'one two three four' \ # 可以省略加号。两个相邻的字符串,会被 Python 解释器自动拼接 ' five six seven eight'
>>> msg = ('one' # 将一个表达式用括号包住之后,可以插入任意个换行符 ... ' two' ... ' three' ... ' four' ... ) >>> msg 'one two three four'
# 注释
在一行代码中插入
#
,即可将右侧的字符串声明为单行注释。如下:# 这个注释位于上方 x = 2
x = 1 # 这个注释位于右方
在多行代码的开头、结尾,加上三个引号
'''
或"""
,即可声明多行注释,又称为块注释(block comment)。每个函数的 def 语句之后,可以紧接着插入多行注释,作为该函数的说明文档。如下:
>>> def fun1(x, y): ... """Hello World""" ... >>> fun1.__doc__ # 通过函数的 __doc__ 属性,查看其说明文档 Hello World
每个 .py 文件的开头位置,可以插入多行注释,作为该文件的说明文档。如下:
""" This module is for test. """ print('hello')