Python第十四节课
本节内容
集合
集合的特性
集合相当于是字典键的组合,所以值是不重复的
无序不重复是集合的特性
集合是没有下标的,所以我们只能直接去拿到键。
添加元素
add() # 添加的元素必须是不可变的 # 所以,我们可以添加数字,字符串,元组 # 但是不可以添加列表
update() # 添加的元素是可迭代的 # 所以,我们可以添加元组,字符串和列表 # 但是不可以添加数字
删除元素
remove() # 删除指定的元素,如果元素不存在,那么会报错 # 没有返回值
discard() # 删除指定的元素,如果元素不存在,不会报错 # 没有返回值
清空集合
set.clear()
判断元素是否在集合中
# 使用in 操作符
练习题:
假设现在有两组数据A组:{a:86,b:90,c:60,d:75,e:60,r:45,fa:85,w:95,d:95}
B组:{a:86,c:60,d:75,e:60,f:78,ew:54,dc:85,s:88,w:95}
现在求出同时在A班和B班上课的同学,如果这些同学的成绩分大于85分,则继续可以上课。如果不足85分,那么需要强制退出一门课。
求出报了只A班和报了只B班的同学名单,安排学员访谈
求出所有人的名单,如果学生小于30人, 那么合并为一个班
a = {'a': 86, 'b': 90, 'c': 60, 'd': 75, 'e': 60, 'r': 45, 'fa': 85, 'w': 95} b = {'a': 86, 'c': 60, 'd': 75, 'f': 78, 'ew': 54, 'dc': 85, 's': 88, 'w': 95} c = dict(a, **b) aa = set() bb = set() for key in a.keys(): aa.add(key) for key in b.keys(): bb.add(key) # 两个班都有的学生集合 a_studont = aa & bb for i in a_studont: if c.get(i) >= 85: print(f"学生:{i} 分数{c.get(i)} 可以继续上") else: print(f"学生:{i} 分数{c.get(i)} 分数不足") # 除去上两个课的学生,剩下的学生集合 # print(aa ^ bb)
数字
三角函数
sin() cos() tan() ctan()
保留位数
math.modf() # 返回整数位 math.modf() # 返回小数位和整数位,并且以元组的形式显示 mat.fmod() # 返回x%y math.factorial() # 返回x的阶乘
角度和弧度的转换
math.randians() # 将角度转换成弧度 math.degrees() # 将弧度转换成角度 # 例如: math.radians(math.pi/2) ---> 90 math.degrees(90) ---> 1.57...
数字函数
import math
a = math.fabs(-10) print(a) # 保留精度为一位 math.abs(-10) # 不保留精度
a = math.ceil(5.9) print(a) >>>6 # 向上取整 a = math.floor(5.9) print(a) >>> 5 # 向下取整 a = round(5.8) print(a) >>>6 # 返回整数,四舍五入 a = math.pow(3, 3) print(a) >>> 27.0 # 平方 a = math.sqrt(16) print(a) >>>4.0 # 开平方,幂不为3
# 详解: math.pow(x, y) # 返回x的y次幂 math.sqrt(x) # 返回x的开平方 math.ceil(x) # 对x做向上取整 math.floor(x) # 对x做向下取整 round(x) # 对x做四舍五入运算 math.fabs(x) # 对x求绝对值,保留精度 abs(x) # 对x求绝对值,不保留精度
练习:
已知一组不能修改的数据2,3,1,5,33,24,56
现在求出这组数字的标准差
并且将低于标准差的数据和高于标准差的数据放在两组中
import math a = (2, 3, 1, 5, 33, 24, 56) c = 0 x = sum(a)/len(a) for i in a: c = c + (i - x) ** 2 ns = math.sqrt(c/len(a)) print(ns) max_a = [] min_a = [] for i in a: max_a.append(i) if i > ns else min_a.append(i) print(f"大于标准差:{max_a}\n小于标准差:{min_a}")
错误处理
try 语句
用来处理可能会报错的语句,并且提供解决方案
except 语句
用来捕获一个错误
语法格式
try: 执行语句 except: 执行语句 except: 执行语句 else: 执行语句 finally: 执行语句
其中,需要注意的是:else这个语句,如果try的语句是正确的,那么就会执行else语句。
也就是说,如果try中的语句没有错误,那么就不会执行else的语句,else的出现位置必须在except之后,finally之前。
finally语句无论try中的语句是否正确都会执行,不会受到影响
错误类型
错误是有很多的类型,其中BaseError是所有错误的基类。
如果except先捕获到基类的错误类型,那么就不会执行之后的except中的代码了。
raise
我们可以使用raise来抛出一个错误异常,这属于自定义错误异常。
作业:
三级联动!
参考方式见百度网盘,原因是作者不小心做成了全国城市联动~~~
链接:https://pan.baidu.com/s/1NT239eQJ-cUdnvkBKLUYCA 提取码:mhgw