Python 基础语法
注释
Python 提供了三种注释的形式单行注释 、多行注释和中文编码声明注释。
单行注释
Python 的单行注释使用的是 # 号。Python的单行注释可以嵌套使用。
# 注释内容
print('hello world!')
hello world!
多行注释
Python 的多行注释有两种:
- 一种使用的是三个单引号
''' - 另一种是三个双引号
"""
Python 的两种多行注释都 不可以嵌套使用,但两种多行注释混合嵌套使用是允许的。Python 的多行注释通常用来为 Python 文件、模块、类或者函数等添加版权、功能描述等信息。
在 Python 中,如果多行注释标记(三单引号或三双引号)作为语句的一部分出现,就不能再将它们视为多行注释的标记,而应看做是字符串的标志(同双引号的作用相同)。
'''
注释内容
'''
"""
这里也是多行注释内容
"""
print('hello world!')
hello world!
中文编码声明注释
Python 的中文编码声明注释,主要是解决 Python2 中不支持中文的问题。中文编码问题在 Python 3.x 中已经不存在。
Python 的中文编码声明注释也有两种。
# -*- coding:编码 -*-
# coding=编码
print('hello world!')
hello world!
转义字符
Python常用转义字符:
| 转义字符 | 说明 |
|---|---|
| \ | 在行尾的续行符,即一行未完,转到下一行继续写 |
| ’ | 单引号 |
| " | 双引号 |
| \0 | 空 |
| \n | 换行符 |
| \r | 回车符 |
| \t | 水平制表符,用于横向跳到下一制表位 |
| \a | 响铃 |
| \b | 退格(Backspace) |
| \ | 反斜线 |
| \0dd | 八进制数,dd 代表字符,如 \012 代表换行 |
| \xhh | 十六进制数,hh 代表字符,如 \x0a 代表换行 |
print('网站\t英文\t网址')
print('百度\tBaidu\twww.baidu.com')
网站 英文 网址
百度 Baidu www.baidu.com
print('百度\nBaidu\nwww.baidu.com')
百度
Baidu
www.baidu.com
标识符
Python 对各种 变量、方法、函数等命名时使用的字符序列称为标识符。也可以说凡是自己可以起名字的地方都叫标识符,简单地理解,标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。
Python标识符的命名规则
- Python 标识符由
26个英文字母大小写,0-9 ,_组成。 - Python 标识符不能以数字开头。
- Python 标识符严格区分大小写。
- Python 标识符不能包含空格、
@、%以及$等特殊字符。 - 不能以系统保留关键字作为标识符(一共有25 个)。
Python标识符的命名注意事项
- Python 标识符尽量采取有意义的包名,简短,有意义,不要和系统保留关键字冲突。
- Python 标识符以单下划线开头的标识符,表示不能直接访问的类属性,其无法通过 import 的方式导入。
- 以双下划线开头的标识符表示类的私有成员。
- 以双下划线作为开头和结尾的标识符,是专用标识符。
- Python 标识符是允许使用汉字作为标识符的。
Python标识符规范
- 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母。
- 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线。
- 当标识符用作类名时,应采用单词首字母大写的形式。
- 模块内部的类名,可以采用 “下划线+首字母大写” 的形式。
- 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割。
- 常量命名应全部使用大写字母,单词之间可以用下划线分割。
Python标识符总结
- Python 对各种变量、方法、函数等命名时使用的字符序列称为标识符。Python 标识符由 26 个英文字母大小写,0-9 ,
_组成,不能以数字开头,且严格区分大小写。 - Python 标识符不能包含空格、
@、%以及$等特殊字符,不能以系统保留关键字作为标识符(一共有25 个)。 - Python 中,以下划线开头的标识符有特殊含义。
保留字
Python 的保留字在开发程序时,不能用这些保留字作为标识符给 变量、函数、类、模板以及其他对象命名。
Python 保留字可以通过 keyword.kwlist 命令查看。
import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
缩进
Python 和其它程序设计语言采用大括号 {} 分隔代码块不同,Python 采用代码缩进和冒号来区分代码块之间的层次,即:行尾的冒号和下一行的缩进,表示下一个代码块的开始;而缩进的结束则表示此代码块的结束。
PEP8 规范要求4个空格为语句块缩进。凡是报错信息看到:IndentationError: unexpected indent ,就是表示缩进不一致。
if 5 > 2:
print("Five is greater than two!")
Five is greater than two!
PEP8 编码规范
代码缩进
在 Python 中,代码缩进推荐使用四个空格,而不是一个 tab 键。
最大行宽
限制所有行的最大行宽为 79 字符。文本长块,比如文档字符串或注释,行长度应限制为 72 个字符。
空行
使用空行分割顶层函数和类的定义。类中的方法的定义使用单个空行进行分割。
额外的空行可以必要的时候用于分割不同的函数组,但是要尽量节约使用。
额外的空行可以必要的时候在函数中用于分割不同的逻辑块,但是要尽量节约使用。
空格
各种右括号前不要加空格。
逗号、冒号、分号前不要加空格。
函数的左括号前不要加空格,如 Func(1)。
序列的左括号前不要加空格,如 list[2]。
操作符左右各加一个空格,不要为了对齐增加空格。
函数默认参数使用的赋值符左右省略空格。
import导入
import导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。
导入顺序如下:标准库进口,相关的第三方库,本地库。各组的导入之间要有空行。
不要在一行 import 多个库,每行只能 import 一个库。
注释
总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释。
注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
块注释,在一段代码前增加的注释。行注释,在一句代码后加注释。但是这种方式尽量少使用。
命名规则
模块命名尽量短小,使用全部小写的方式,可以使用下划线。
包命名尽量短小,使用全部小写的方式,不可以使用下划线。
类的命名使用 CapWords 的方式,模块内部使用的类采用 _CapWords 的方式。
异常命名使用 CapWords+Error 后缀的方式。
全局变量尽量只在模块内有效,类似 C语言 中的 static。
函数命名使用全部小写的方式,可以使用下划线。
常量命名使用全部大写的方式,可以使用下划线。
类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。
为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。
类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。