- Python 语法
- 注释
- 标识符
- 关键字
- 变量的赋值
- 代码规范
- 标准数据类型
- Number 类型
- 数字函数
- String 类型
- 转义符
- 格式化字符串
- f-string
- format()
- 字符串方法
- List
- 列表方法
- 列表推导式
- Tuple
- Set
- 集合方法
- Dictionary
- 字典方法
- 函数
- 数据类型转换
- 其他操作
- 运算符
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 位运算符
- 逻辑运算符
- 成员运算符
- 身份运算符
- 运算符优先级
- if 条件控制
- 循环语句
- while 条件循环
- for 循环遍历
- 遍历技巧
- break and continue
- pass 语句
- 迭代器与生成器
- 迭代器
- 创建迭代器
- 迭代结束标志
- 生成器
- 函数
- 参数
- 匿名函数
- 模块
- 包
- import 语句
- from ... import 语句
- __name__ 属性
- dir() 函数
- 输入输出
- 标准输出
- 标准输入
- 读写文件
Python 语法 注释
Python 的注释风格:
# 行注释 ''' 块注释1 ''' """ 块注释2 """
注释中的内容将不会被执行。
标识符
- 首字母必须是大写或小写的英文字母或者下划线 _。
- 其他部分由大写或小写的英文字母、数字和下划线组成。
- 大小写敏感(区分大小写)。
Python3 中允许使用非 ASCII 标识符,即中文也可作为标识符:
>>> 变量 = 5 >>> print(变量) 5
关键字
Python 关键字(keyword)不能作为标识符使用,关键字又称保留字。
使用 keyword 模块输出 Python 的所有关键字:
>>> import keyword >>> print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', '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 中的变量并不需要声明,直接赋值后就可使用。还可以同时为多个变量赋值。
pai, e = 3.14, 2.72 a = b = c = 1
代码规范
Python 代码中的所有块都是使用空格缩进来表示。同一块中的所有语句都必须包含相同的缩进空格数,一般使用 4 个空格作为缩进,并且最好在代码编辑器中设置将 Tab 转化为空格。
total = 0
# 输出数字 1~9 的平方数
for n in range(1, 10):
# 块的开始
square = n * n
total += square
print(square)
# 块的结束
# 输出数字 1~9 的所有平方数的总和
print(total)
缩进相同的一组语句构成一个代码块,或称之为代码组。
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行是程序代码的一部分,但并不是 Python 语法的一部分。空行的作用在于分割两段不同功能或含义的代码,便于日后代码的维护或重构,有无空行并不影响程序运行。
反斜杠 作为续行符,表示下一行是上一行的延续。对于过长的语句,Python 使用反斜杠、换行再加上缩进来将长语句分为多行。
total = item_one +
item_two +
item_three
在 [],{}, 或 () 中的多行语句,不需要使用反斜杠 来换行。
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割。
>>> str = '123'; print(str) 123
标准数据类型
Python 支持 6 种基本数据类型:
- Number —— 数字类型
- String —— 字符串类型
- List —— 列表
- Tuple —— 元组
- Set —— 集合
- Dictionary —— 字典
List、Dictionary、Set 是 Python 内置的数据结构。
Python 变量分为可变和不可变数据类型,以下是它们的定义:
-
不可变(immutable)数据类型:当该数据类型对应的变量的值发生了改变,它对应的内存地址也会发生改变(重新分配内存空间),如 Number、String、Tuple。即,数据中的元素不能被更改。
# 测试 Number 类型是否是不可变数据类型 n = 1 # 赋值 print(id(n), type(n)) n = 2 # 改变值 print(id(n), type(n)) # 可能输出: # 1562536992
# 1562537024 -
可变(mutable)数据类型:当该数据类型对应的变量的值发生了改变,它对应的内存地址不发生改变,如 List、Dictionary、Set。即,数据中的元素可以被更改。
可迭代对象:List、Tuple、Set 、 Dictionary 和 String。
Number 类型
Python 支持的数字类型:
- int —— 整数类型。
- float —— 浮点数类型(实数类型),如 3.14、3E-2。
- bool —— 布尔类型(True 和 False)。
- complex —— 复数类型,如 1.1 + 2.2j、complex(a, b)。
Python 2 中有 long 型,Python 3 中没有。
数字函数
数字函数需要导入 math 模块:import math
| 函数 | 描述 |
|---|---|
| abs(x) | 返回数字 x(可以是复数)的绝对值(内置函数,不用导入 math 模块)。 |
| ceil(x) | 返回数字 x 的上入整数(向上取整)。 |
| cmp(x, y) | 如果 x < y 返回 -1,如果 x == y 返回 0,如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x |
| exp(x) | 返回 e 的 x 次幂 e x e^x ex。 |
| fabs(x) | 返回数字 x(不能是复数)的绝对值。 |
| floor(x) | 返回数字的下舍整数(向下取整)。 |
| log(x[, y]) | log(x) —— 返回 x 的自然对数; log(x, y) —— 返回以 y 为基数的 x 的对数: log y x log_y{x} logyx。 |
| log10(x) | 返回以 10为基数的 x 的对数。 |
| max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
| min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
| modf(x) | 返回 x 的整数部分与小数部分,两部分的数值符号与 x 相同,整数部分以浮点型表示。 |
| pow(x, y[, z]) | pow(x, y) —— x**y 运算后的值; pow(x, y, z) —— 相当于 pow(x, y) % z。 通过内置方法调用,会把参数作为整型,而 math 会把参数转换为 float。 |
| round(x [, n]) | 返回浮点数 x 的四舍五入值, 如给出 n 值,则代表舍入到小数点后的位数。 其实准确的说是保留值将保留到离上一位更近的一端。 |
| sqrt(x) | 返回数字 x 的平方根。 |
String 类型
Python 的字符串(String)有以下特点:
-
字符串常量可以使用单引号 ' 和双引号 " 指定。
>>> str1 = 'Hello' >>> str2 = 'World' >>> print(str1, str2, '!') Hello World ! >>> str1 = '打印 "双引号" ' >>> str1 += "要用 '单引号' 将其括起来" >>> print(str1) 打印 "双引号" 要用 '单引号' 将其括起来
-
使用三个引号可指定一个多行字符串常量。
>>> str1 = """这是一个段落, ... 可以由多行组成""" >>> print(str1) 这是一个段落, 可以由多行组成
-
转义符用 开头。单个反斜杠依然可以作为续行符。
>>> str = 'str ... ing' >>> print(str) string
-
使用 r 或 R 可以让反斜杠不发生转义。这样的字符串被称为原始字符串。
>>> print(r"this is a line with n") this is a line with n
-
按字面意义级联字符串。
>>> print('this ' 'is ' 'string') this is string -
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
>>> print('this ' + 'is ' + 'string') this is string >>> str = 'Hello World!' * 3 >>> print(str) Hello World!Hello World!Hello World! -
有两种索引方式:从左往右以 0 开始,从右往左以 -1 开始。
-
字符串的截取的语法格式:变量[头下标:尾下标:步长]。字符串被截取后返回一个包含所需字符的新字符串。遵循左闭右开原则。
尾下标从 1 开始。
步长是指输出字符串中第 n n n 个字符后,接着输出第 ( n + 步 长 ) (n + 步长) (n+步长) 个字符,直至到达尾下标指定处。
省略步长代表按字符串顺序输出,省略尾下标代表截取到字符串的最后一个字符,省略头下标代表从第一个字符开始截取。
>>> str='123456789' >>> print(str[0]) # 输出字符串第一个字符 1 >>> print(str[2:5]) # 输出从第三个开始到第五个的字符 345 >>> print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 12345678 >>> print(str[2:]) # 输出从第三个开始后的所有字符 3456789 >>> print(str[:3]) # 输出从第一个开始到第三个的字符 123 >>> print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2) 24 >>> print(str[:]) # 同时省略头下标和尾,创建了一个str的副本
-
字符串不能改变。即,字符串的切片不能被赋值。
>>> str = 'string' >>> str[0] = 'S' Traceback (most recent call last): File "
", line 1, in TypeError: 'str' object does not support item assignment >>> str = 'string' >>> print(str) string >>> str = 'String' # 修改字符串只能重新进行赋值 >>> print(str) String -
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
在Python2中,普通字符串是以 8 位 ASCII 码进行存储的,而 Unicode 字符串则存储为 16 位 unicode 字符串。使用的语法是在字符串前面加上前缀 u。
在Python3中,所有的字符串都是 Unicode 字符串。
转义符
| 转义字符 | 描述 |
|---|---|
| (在代码行尾时) | 续行符。 |
| \ | 反斜杠符号。 |
| ' | 单引号。 |
| " | 双引号。 |
| a | 响铃 print("a")执行后电脑有响声。 |
| b | 退格(Backspace)。 |


