前言:本周继续对Python的容器数据类型进行学习,再对新一章的程序控制结构内容进行学习,接下来是本周的总结。
一、集合
(一)集合中,元素不允许重复,可利用集合快速自动去重;集合是可变的,可添加/删除元素;集合是无序的,不能用下标访问。
(二)创建集合,用“{}”创建,格式:{元素1,元素2,...}或set(可迭代对象)
(三)遍历集合,只能通过迭代来操作,不能用序号访问
二、可变类型和不可变类型
(一)不可变类型有整型,浮点型,字符串型和元组。不可变是指不能修改原内存单元的数据。值变,对应内存地址也变。
(二)可变类型有列表,字典和集合。可变即可修改原内存单元的数据。值变,对应内存地址不变。
三、浅复制和深复制
(一)浅复制和深复制是为了解决可变变量赋值时两个对象指向同一内存区域从而产生修改时相互影响的问题。
(二)copy浅复制是在赋值时开辟新的存储空间来保存新对象,初步解决内存指向相同的问题。若被复制对象内部还含有可变元素时,浅复制内部的可变元素还是会指向相同地址。
(三)使用deepcopy()进行函数深复制
四、顺序结构
顺序结构的流程:(从上到下)
语句块1
↓
语句块2
五、选择结构
(一)
if 条件表达式1:
语句块1
else:
语句块2
注意:if与else要对齐,行末加冒号,语句块1,2要缩进。
if 条件表达式1:
语句块1
(二)
if 条件表达式1:
语句块1
elif 条件表达式2:
语句块2
…
elif 条件表达式n:
语句块n
else:
语句块n+1
(三)嵌套的选择结构
if 条件表达式1:
if条件表达式2:
语句块1
else:
语句块2
语句块3
else:
if条件表达式3:
语句块4
else:
语句块5
语句块6
六、循环结构
1.while循环
while条件表达式:
语句块1
【else:
语句块2】
2.for循环(最常用)
for 变量 in 容器数据(迭代对象):
语句块1
【else:
语句块2】
3.break 语句和continue 语句
只能在循环内使用,break语句的功能是结束循环,继续执行循环结构后续的语句。continue语句是结束本次循环,跳过循环体中本次循环还未执行的剩余语句,重新判断循环条件以确定是否开始下一轮循环。
4.else子句,是for和while循环的可选子句。循环如正常终止将执行else子句,若用break跳出或异常出错则不会执行
5.循环的嵌套,for和while语句构成的循环可以互相嵌套。
循环的嵌套中,内层循环的执行次数可能会受外层循环的控制。
六、异常处理结构
(一)异常处理结构的一般形式
try:
语句块1
except Exception:
语句块2
【else:
语句块3】
【finally:
语句块4】
执行流程:先执行语句块1,若1异常,则中断1执行2;若1正常且有else子句,则执行3;若有finally子句,则无论1有无异常都会执行4。