一、 补充知识点
1.1 可变与不可变类型
- 可变:值改变、id不变,证明改变的是原值
list、dict - 不可变:值改变、id也变,证明是产生了新的值,压根没有改变原值,证明原值是不可以被修改的
int、float、str、bool、元组 - 字典补充:
定义:{}内用逗号分隔开多key:value,其中value可以是任意类型,但是key必须是不可变类型
1.2 什么是条件?什么可以当作条件?为何要用条件?
- 显示布尔值:比较运算符、True/False
- 隐式布尔值:所有数据类型,其中0、None、空为假
1.3 深浅拷贝
- 浅拷贝:list.copy():是把原列表的第一层内存地址不加区分完全拷贝一份
- 深拷贝:import copy; copy.deepcopy(list):不可变类型的内存地址不改变,可变类型新造一个瓶子。
1.4 range
- range(开始, 结束, 步长):鸵鸟 顾头不顾尾
- range在python2.7是列表,在python3是可迭代对象(会下蛋的老母鸡s)
二、 基本运算符
2.1 算数运算符
加减乘除:/:除 结果带小数 //:只保留整数部分 %:取余 **:几次方
2.2 赋值运算符
- = : 变量赋值
- 增量赋值:age += 1 加减乘除都行
- 链式赋值:把一个值绑定给多个变量 x = y = z = 10
- 交叉赋值:m, n = n, m(来呀!造作啊!~~~~~)
- 解压赋值:age = [1,2,3] 解压赋值是 age1, age2,_ = age # 引入,可以帮助我们取两头的值,无法取中间的值
2.3 比较运算符
大于> 小于< 大于等于>= 小于等于<= 等于== 不等于!=
2.4 逻辑运算符
- not:就是把紧跟其后的条件取反
- and:逻辑与,用来连接左右两个条件, 两个条件都为真结果才是真。例:True and 10>3 and 10 and 0
- or:逻辑或,用来连接左右两个条件,两个条件但凡有一个为True,最终结果就是True
- 短路运算(偷懒原则):前面的能的出结果就不计算后面的值
优先级not>and>or:(3>4 and (not 4>3)) or (1==3 and 'x'=='x' ) or 3 >3
2.5 成员运算符
in 和 not in
2.6 身份运算符
is 和 is not:比较的是id是否相等
三、流程控制之if判断
3.1 语法1
# 代码1、代码2、代码3 是代码块, 同等级别,至上而下执行
if 条件:
代码1
代码2
代码3
3.2 语法2
# 代码1、代码2、代码3 是代码块, 同等级别,至上而下执行
if 条件:
代码1
...
else:
代码1
...
3.3 语法3
# 代码1、代码2、代码3 是代码块, 同等级别,至上而下执行
if 条件:
代码1
...
elif:
代码1
...
elif:
代码1
...
3.4 语法4
if 条件:
代码1
...
elif:
代码1
...
elif:
代码1
...
...
else:
代码1
...
四、流程控制之while判断(重复做某件事的功能)
4.1 基本语法
while 条件:
代码1
代码2
代码3
4.2 死循环与效率问题
死循环本身是无害的,纯计算无io的死循环会导致致命的效率问题
4.3 退出循环的两种方式
方式一:将条件改成假, 定义一个变量为判断条件
方式二: break 只要运行到break就会立刻终止本层循环
4.4 while循环嵌套
# 每层必须配一个break
while True:
while True:
while True:
break
break
break
4.5 while + cotinue: 结束本次循环, 直接进入下一次
# 死循环, 运行到continue就结束了,在continue后加入同级代码毫无意义
count = 0
while count < 6:
if count == 4:
continue
print(count)
count += 1
4.6 while + else :针对break的
while True:
...
else:
print("else包含的代码会在while循环结束后,并且while循环没有被break打断的情况下正常结束的, 才会运行")
五、循环之for循环
5.1 for 循环的语法和基本使用
- 什么是for循环?
循环就是重复做某件事,for循环是python的第二种循环机制 - 为何要有for循环?
理论上for循环能实现的事情, while循环都能做,之所以有for循环,是因为for循环在循环取值(遍历取值)上比while循环更简洁 - 如何用for循环?
for 变量名 in 可迭代对象:# 可迭代对象可以是:列表、字典、字符串、元组、集合
代码1
代码2
代码3
...
- 相同之处:都是循环功能都能实现
- 不同之处: while:条件循环 for:取值循环
5.2 for循环的应用
5.3 for循环的嵌套
5.4 for + break
- 同while循环一样
5.5 for + continue
- 同while循环一样
5.6 for + else
- 同while循环一样
相关连接(笔记来自于视频课程和知乎的归类整理):
[1]: https://www.bilibili.com/video/BV1QE41147hU?p=17
[2]: https://zhuanlan.zhihu.com/p/108685793