not : 取反;
()是用来改变优先级的;
set() 和 {} 都可以用来创建集合,集合无序,具有自动去重功能;
_ _ all _ _ 可以控制 from … import * 导入的工具;
a >= 18 and a <= 50 可以写成 18 <= a <= 50;
f"{}" — 格式化输出;
三目运算符:c = a if a > b else b # a;
c /= a + b 相当于 c = c / (a + b);
if (a > b) and (b < c) 加括号是个习惯;
for else、 while else 循环只有当循环正常执行完毕,else 下方带缩进的代码才会执行,即:只有当循环由 break 推出之后,else 下方带缩进的代码才不会执行;
切片时,左闭右开,注意开始到结束的方向必须和步长方向一致,如果 [-4: -1: -1] 就切不出来任何东西;
三引号字符串可以在字符串中间回车,打印出来的字符串也是带回车的(不在一行);
列表有个 copy 方法,可以复制列表;
元组是不可变数据类型,但是元组中嵌套的列表可以对列表数据进行修改;
字典的 keys、 values、 items 方法分别返回键、值、键和值(元组),的可迭代对象;
range(start, end, step) 可以生成一个从 start 到 end(不包括 end) 步长为 step 的数字迭代对象;enumerate(可迭代对象,start=0),返回一个元素是元组的可迭代对象,元组的第一个数据是下标(默认从 0 开始),第二个数据是原迭代对象的元素;
推导式:list1 = [i for i in range(10)] # [0, 1, … , 9],可以在 for 后面加 if 条件判断,也可以再加个 for (for 的嵌套);字典的推导式同理,只是前面的返回格式不同;
lambda (匿名函数):函数只有一个返回值,只有一句代码时使用。lambda 参数:表达式,参数与函数的规则一样,可以无参数,也可以有多个参数,设置缺省参数,返回的是表达式的值;
高阶函数:将函数以参数的形式传递。abs():对数字取绝对值并返回,round():四舍五入并返回;
内置高阶函数:
- map(func, lst),将传入的函数作用于 lst 中的每个元素,并返回一个可迭代对象,可以用 list 转换成列表打印查看;
- reduce(func, lst), func 必须有两个参数,将每次 func 计算所得结果与序列下一个元素进行累计计算,并返回该结果。需要导入模块 functools 使用;
- filter(func, lst), 将传入的 lst 以 func 返回的值作为筛选条件,过滤元素并返回一个可迭代对象,可以用 list 转换成列表打印查看,注意 func 返回的是一个过滤条件;
文件操作中,readlines 方法可以逐行读取内容,将每行的内容(包括\n)返回一个列表;
seek(偏移量, 指针起始位置) 方法可以移动指针,指针起始位置:0,开头;1,当前指针位置;2,结尾;
文件操作中,以 ‘rb’、 ‘wb’ 方式访问代表二进制读、写,保证对所有文件的访问(音乐、图像等)。