6、Python的深浅拷贝和流程控制

一、 补充知识点

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值