Python 词条(355 条)
关键字
def定义一个函数,像给机器写一张操作说明书:以后喊这个名字,它就按说明书执行。
return把函数算好的结果送回调用处,并结束函数,像外卖员把餐送到后立刻返程。
if根据条件真假决定走哪条路,像红绿灯:条件为真就通行,为假就停。
elif前面条件不成立时再试一个新条件,像面试的多轮筛选:第一轮没过,才进入下一轮。
else上面所有条件都不成立时执行的兜底分支,像考试不及格时收到的补考通知。
for把一个可迭代对象里的元素逐个取出来处理,像超市收银员把购物车里的商品一件一件扫过收银台。
while只要条件成立就反复执行,像洗衣机脱水:检测到衣服还湿就继续,干了才停。
break立刻跳出当前这层循环,像看电影时中途离场:后面的情节都不看了。
continue跳过本次循环剩余部分,直接进入下一轮,像跳绳时有一下没跳好,立刻接着跳下一拍。
in判断一个值是否在容器里,像查字典时看某个字在不在索引里。
not把布尔值反过来,像电灯的开关:按一下开变关、关变开。
and两边都为真结果才为真,像防盗门:两把钥匙都必须插对才能打开。
or只要一边为真结果就为真,像两把伞:只要带了一把,就不会淋湿。
is判断两个名字是不是指向同一个对象,像看两张身份证是不是同一个人,而不是看长得像不像。
NonePython 里的空值,表示‘什么都没有’,像一个还没被放上货架的空盒子。
True布尔真值,像开关的‘开’档;注意首字母大写。
False布尔假值,像开关的‘关’档;注意首字母大写。
import把别人写好的工具包引进来用,像厨师进仓库把现成的调料搬上灶台。
from从模块里挑出指定工具导入,比 import 更精准——就像从工具箱里只拿需要的螺丝刀。
as给导入的模块或工具起个别名,长名字变短,方便后续使用。
class定义一张造对象的图纸,像蛋糕模具:按同一个模具可以做出很多形状一样的蛋糕。
pass占位符——告诉 Python 这里暂时什么都不做,避免空代码块报错。
lambda创建一行写完的匿名小函数,像便利店里的即食便当:简单、快捷、当场可用。
try把可能出错的代码包起来试着跑,像拆弹专家先把炸弹放进防爆桶再处理。
except捕获 try 块里抛出的指定错误并处理,像医院分诊台:根据病症类型送到对应科室。
finally异常处理里的“收尾”块:不管 try 里出不出错,最后都会执行。
raise主动抛出异常,让程序在不符合预期的地方停下来并给出提示。
with开辟一个上下文,离开前自动收拾残局,像住酒店:退房时房间会自动打扫干净。
global在函数内部声明要修改的是外层全局变量,而不是新建一个局部变量。
nonlocal在嵌套函数里声明要修改的是外层(但不是全局)的变量。
del删除一个名字,或删除列表、字典里的指定元素。
assert断言——确认某个条件为真,不为真就报 AssertionError,用于自我检查。
yield生成器里的暂停键:交出一个值后挂起,下次从停下的地方继续执行。
async定义一个协程函数,函数可以在等待 IO 时让出执行权,适合并发任务。
await在 async 函数里等待一个可等待对象完成,等待期间不阻塞其他协程。
match按模式匹配值并分流执行,相当于升级版的 if-elif(Python 3.10+)。
casematch 语句里的一个分支,匹配上对应模式就执行它的代码。
内置函数
print把内容打印到屏幕,像超市收银机吐小票:你要什么,它就一行行吐出来。
input暂停程序等用户打字,像 ATM 机提示你输密码:按回车后才把文字交给程序。
type看看一个值是什么类型,像看快递面单:上面写着它是文件、衣服还是电子产品。
len数一个容器里装了多少东西,像数一摞盘子有几个:一个一个数,有几个算几个。
range生成一串连续整数,像自动发号机:从起始号开始,到结束号之前停,还能指定每次跳几个号。
int把东西转成整数,像收银员把 19.8 元直接按 19 元收:小数部分直接扔掉,不是四舍五入。
str把东西转成字符串,像把数字、列表等各种形状的东西装进统一的文字包装盒。
float把东西转成带小数的数,像把整数硬币换成精确到分的金额。
bool把值转成布尔值:空、0、None 等会变成 False,其他大多是 True。
list创建一个列表,或把别的可迭代对象拆散后重新装进列表,像把一串糖葫芦拆成单个山楂摆进盘子。
dict创建一个字典(键值对查找表),像学校储物柜:每个柜子有一个编号(键),里面放着学生的东西(值)。
set创建一个集合,或把可迭代对象转成集合;集合会自动去重,且不保证顺序。
tuple创建一个元组,或把可迭代对象转成元组;元组创建后不能修改。
sum把可迭代对象里的数字加起来,返回总和。
min从一堆值里找出最小的那个。
max从一堆值里找出最大的那个。
abs取绝对值——负数变正,正数和零不变。
round就近舍入;遇到正好一半时取最近的偶数(银行家舍入),不是普通四舍五入。
sorted返回一个排好序的新列表,原来的可迭代对象不会被修改。
reversed返回一个倒序的迭代器,常配合 list 使用。
enumerate遍历时同时拿到序号和元素,像医生叫号:既喊号码,也喊名字。
zip把多个可迭代对象像拉拉链一样按位置一对一对配起来。
map对可迭代对象里的每个元素都执行同一个函数,返回结果的迭代器。
filter按条件筛选可迭代对象里的元素,只保留让条件为真的那些。
open打开一个文件,返回文件对象,用来读或写。
isinstance判断一个对象是不是某个类型(或其中一种类型)的实例。
super在子类里调用父类的方法,继承时用来复用父类逻辑。
id返回对象在内存中的唯一标识号,每个对象的 id 通常不同。
chr把 Unicode 编码数字转成对应的字符。
ord把字符转成对应的 Unicode 编码数字,和 chr 互为反操作。
help查看对象的帮助文档,像查官方说明书。
dir列出一个对象有哪些属性和方法,不传参数时列出当前作用域的名字。
all判断可迭代对象里所有元素是不是都为真;全为真才返回 True。
any判断可迭代对象里是否至少有一个元素为真;有一个为真就返回 True。
ascii把对象转成只含 ASCII 字符的字符串,非 ASCII 字符会变成 \u 或 \x 转义形式。
bin把整数转成二进制字符串,前面会带 0b 前缀。
breakpoint运行到这里会暂停并进入交互式调试器,方便查看当前状态。
bytearray创建可修改的字节数组,里面每个元素是 0~255 的整数。
bytes创建不可变的字节串,常用来处理二进制数据。
callable判断一个对象能不能像函数一样被小括号调用。
classmethod装饰器,把方法变成类方法,能通过类名直接调用。
compile把字符串形式的源码编译成代码对象,供 exec 或 eval 执行。
complex创建复数,包含实部和虚部。
delattr删除对象上的指定属性,效果同 del 对象.属性。
divmod同时算出商和模,返回 (商, 模) 的元组。
eval把字符串当作表达式来执行,并返回表达式的结果。
exec执行一段代码字符串,通常没有返回值。
frozenset创建不可变的集合,创建后不能增删元素。
getattr按名字获取对象的属性值,找不到时可返回默认值。
globals返回当前全局作用域里所有名字和值的字典。
hasattr检查对象是否有指定的属性或方法。
hash返回对象的哈希值,同一运行内通常稳定;列表、字典、集合等可变容器不可哈希,不可变类型和自定义类实例一般可以。
hex把整数转成十六进制字符串,前面会带 0x 前缀。
iter把可迭代对象转成迭代器,可一次次调用 next 取下一个值。
locals返回当前局部作用域里名字和值的字典。
memoryview创建一个内存视图,能零拷贝地查看和访问字节数据。
next从迭代器里取出下一个值;取完时可返回默认值,避免报错。
object所有类的基类,创建一个最基础的空对象。
oct把整数转成八进制字符串,前面会带 0o 前缀。
pow计算乘方,还可以顺便取模。
property装饰器,把方法包装成属性,像访问变量一样读取计算结果。
repr返回对象的“官方”字符串表示,尽量让程序能看懂。
setattr给对象添加或修改一个属性。
slice创建一个切片对象,用来指定从哪切到哪、步长多少。
staticmethod装饰器,把方法变成静态方法,调用时不自动传入对象或类。
vars返回对象的属性字典;不传参数时等价于 locals。
__import__按名字动态导入模块;通常直接用 import 更常见。
字符串方法
常用约定
self类的方法里第一个参数,代表当前这个对象本身;它只是约定俗成的名字。
__init__类的初始化方法,创建对象时自动调用,用来设置对象的初始状态。
__name__这个模块的“身份名牌”:直接运行时它是 '__main__';被别人 import 时它是模块名(不是带 .py 的文件名)。
__main__模块直接运行时的名字;配合 if __name__ == '__main__': 可以让某些代码只在直接运行时执行。
常用模块
运算符
=赋值运算符——把右边的值装进左边的名字里。
==比较两边是否相等,返回 True 或 False。
!=比较两边是否不相等,返回 True 或 False。
<小于比较。
>大于比较。
<=小于或等于比较。
>=大于或等于比较。
+加法;两个字符串用 + 会拼接成新字符串。
-减法;放在数字前面表示负数。
*乘法;字符串或列表乘 n 表示重复 n 次。
/真除法——结果一定是浮点数,即使能整除。
//向下取整除——只要商,商往小的方向取整。
%取模——除完剩下的零头,和 // 是搭档。
**幂运算——计算 a 的 b 次方。
+=先相加,再把结果存回左边变量。
-=先相减,再把结果存回左边变量。
*=先相乘,再把结果存回左边变量。
/=先相除,再把结果存回左边变量。
%=先取模,再把结果存回变量。
//=先向下取整除,再把结果存回变量。
**=先乘方,再把结果存回变量。
&=先按位与,再把结果存回变量。
|=先按位或,再把结果存回变量。
^=先按位异或,再把结果存回变量。
<<=先把二进制位向左移动,再把结果存回变量。
>>=先把二进制位向右移动,再把结果存回变量。
~按位取反,把整数的每个二进制位反过来。
<<把二进制位整体向左移,右边补零,相当于乘 2 的 n 次方。
>>把二进制位整体向右移,左边补符号位,相当于整除 2 的 n 次方。
&按位与:两个对应位都为 1,结果才为 1。
|按位或:两个对应位只要有一个为 1,结果就为 1。
^按位异或:两个对应位不一样,结果才为 1。
:=海象运算符:在表达式里赋值,同时把值参与后续运算。
符号
(左圆括号,用来包裹函数参数,或改变运算优先级。
)右圆括号,和左括号成对出现,表示包裹到此结束。
[左方括号,用来创建列表,或按索引取元素。
]右方括号,和左方括号成对出现。
{左花括号,用来创建字典或集合。
}右花括号,和左花括号成对出现;f-string 里也用它包裹变量。
:冒号,表示后面要跟一块缩进的代码;也用在字典键值对和切片里。
,逗号,用来分隔多个元素。
.点号,表示“的”——用来调用对象的方法或属性。
;分号,把多条语句挤在同一行;Python 里不常用。
@装饰器语法,给函数或方法“加外挂”,不修改原函数就能增加功能。
->函数返回类型注解,说明函数“应该返回什么类型”,只给人和类型检查工具看。
_下划线,常用来表示“不关心的临时变量”,也可给长数字分节。
...省略号,用来占位置,表示“这里还没写”,和 pass 类似。
\反斜杠,在字符串里是转义符;在行尾表示“下一行继续”。
字符串
字符串字符串就是一串文字,用单引号或双引号包起来。
f-string
f-stringf-string 是前面带 f 的字符串,可以在 {} 里直接嵌入变量或表达式。
数字
数字数字分整数 int 和浮点数 float:不带小数点的是整数(如 42),带小数点的是浮点数(如 3.14);科学计数法如 1e3 也是浮点数。
注释
注释注释是 # 后面的内容,电脑会忽略,专门写给人看。
变量名
函数调用
函数调用函数调用就是名字后面跟括号,让函数执行一次。
方法调用
方法方法调用就是“对象.方法()”,调用对象自带的技能。
属性
缩进
缩进缩进是 Python 区分代码块的方式,同一块代码缩进必须一致。
装饰器
装饰器装饰器是 @ 开头、给函数加功能的语法,不改函数本身。
运算符/符号
运算符一个运算符或标点符号,用来完成计算、比较或组织代码。
bytes 方法
列表方法
字典方法
集合方法
文件方法
通用方法
pop从列表末尾或字典指定键取走元素并返回;原容器会少一个。
clear把列表、字典或集合里的内容全部清空。
index找出元素首次出现的位置;字符串和列表都能用。
count统计某个元素在字符串或列表里出现多少次。
copy给列表或字典做浅拷贝;嵌套对象要完全独立请用 copy.deepcopy。
update把另一个集合或字典的内容合并进来,相同键会覆盖。
remove从列表或集合里删除指定元素;不存在会报错。
特殊方法
特殊属性
模块功能
打开代码点读机,粘贴代码点词即查 →