Python的基础语法不多也不少,但对于一个学习者来说很有必要写笔记,在未来很长一段时间甚至工作多年后都可能会回来温习,在这里只记重点,其他的查看官方 https://docs.python.org/3/tutorial/index.html
1、python把0、空字符串''、None看成false,其他看成true
2、python里空值用None表示,相当于其他语言里的null
3、短路计算:
a and b : 若 a 是 false,则 a and b 为 false,返回 a
若 a 是 true,则 a and b 取决于 b,返回 b
a or b : 若 a 是 true,则 a or b 为 true,返回 a
若 a 是 false,则 a or b 取决于 b,返回 b
4、python代码缩进规则:具有相同缩进的代码被视为代码块,冒号 ':' 为代码块开始标志,缩进习惯:4个空格一个縮进,尽量不要使用Tab,交互环境下退出缩进需要多敲一行回车
5、列表、元组、字典、集合: # 注意:列表和数组的区别:列表元素可以是任意数据类型,数组元素只能是同一种数据类型
数据结构 | 定义 | 特性 | 操作 |
List | L = [...] | 可变, 有序, 可重复 | L.insrt(i,...)插入 L.append(...)追加 L.pop(i)删除 |
tuple | t = (...) | 不可变, 有序, 可重复 | tuple中的List可被修改 |
dirt | d = {...} | 可变, 无序, key不可重复value可重复 | d[key] = value 以赋值的方式插入新元素 |
set | s = set(List) | 可变, 无序, 不可重复 | s.add(e)添加 s.remove(e)删除 e in s 查询e是否在s里 |
6、定义函数并接受可变参数: def f(*args): 可变参数的名字前面有个*号,可以传入0个或多个参数,Python解释器会把参数组装成一个 tuple
7、函数返回多值: return x,y 返回值是一个 tuple
8、切片(对 List、tuple、string 等):
L[0:3] 取前3个元素,索引0到2
L[0:-2] 可用负数索引,从第0个元素到倒数第二个
L[::2] 第三个参数表示每N个取一个
L[4::5][-10:] 切片可以嵌套,先获得5的倍数,再取最后10个
9、迭代: 通过 for 循环来遍历 List、tuple、dict、string 等,迭代操作就是对于一个集合,无论是有序还是无序,依次取出集合的每一个元素,Python中迭代永远是取出元素本身,而非元素的索引
for x in List: 迭代 List 的 value
for x in d.value(): 迭代 dict 的 value,values() 方法把 dict 转换成一个包含所有 value 的 List
for x in d.itervalues(): 迭代 dict 的 value,与values() 迭代效果一样,但是节省了生成 list 所需的内存
for key,value in d.items(): 迭代 dict的 key 和 value,items() 方法把 dict 对象转换成了包含 tuple(key, value) 的 List
for key,value in d.iteritems(): 迭代 dict的 key 和 value,与 items() 迭代效果一样,但是节省了生成 list 所需的内存
10、列表生成式:
[x*x for x in range(1, 101)] 生成一个 [1x1, 2x2, ..., 100x100] 的列表
[x * x for x in range(1, 11) if x % 2 == 0] 列表生成式的 for 循环后面可以加上 if 判断
[x+y for x in List1 for y in List2] 列表生成式中可以用多层 for 循环来生成列表