一、集合【掌握】
1.系统功能
# 一、增 # 1.add(x),添加元素,但是,x只能是不可变的数据类型,列表和字典等可变的数据类型无法添加 ****** # 注意:如果添加的是不可变的可迭代对象,则将整个容器添加进去 set1 = {11,22,33,44,55} print(set1) # a.添加单个元素 set1.add(66) print(set1) set1.add(True) print(set1) set1.add("abc") print(set1) # b.添加多个元素 # set1.add([2,3,4]) # TypeError: unhashable type: 'list' # print(set1) set1.add((2,3,4)) print(set1) # set1.add({'a':10}) # TypeError: unhashable type: 'dict' print("*" * 30) # 2.update(x):更新,x必须是可迭代对象【容器】,则只会讲其中的元素添加进去【类似列表的extend功能,打碎加入】 ***** set1 = {11,22,33,44,55} print(set1) # set1.update(66) # TypeError: 'int' object is not iterable set1.update("abc") set1.update([2,3,4]) print(set1) set1.update((56,34)) print(set1) # 可迭代对象:list,tuple,dict,set,str,range(x)等 # 二、删 # 1.remove(x):删除x元素 ***** set1 = {11,22,33,44,55} print(set1) set1.remove(11) print(set1) # set1.remove(100) # KeyError: 100 # print(set1) # 2.pop():随机删除一个元素 set1 = {11,22,33,44,55} print(set1) set1.pop() print(set1) # 3.discard(x)和remove的用法相同,但是,如果元素不存在,remove会报错,discard不会报错 set1 = {11,22,33,44,55} print(set1) set1.discard(11) print(set1) set1.discard(100) # 4.clear() set1.clear() print(set1) # 空集合:set() 空字典:{} # 三、查 set1 = {11,22,33,44,55} print(len(set1)) print(max(set1)) print(min(set1)) # 注意:但凡是可变的数据类型,都有copy功能,如:list,dict,set set2 = set1.copy()
2.集合间的运算
s1 = {1,2,3,4} s2 = {3,4,5,6} # 一、运算符 # 1.交集:& print(s1 & s2) # {3, 4} # 2.并集:| print(s1 | s2) # {1, 2, 3, 4, 5, 6} # 3.差集 print(s1 - s2) # {1, 2} # 4.并集 - 交集 print(s1 ^ s2) # {1, 2, 5, 6} # 二、系统功能 # 1.并集 print(s1.union(s2)) # {1, 2, 3, 4, 5, 6} # 2.交集 print(s1.intersection(s2)) # {3, 4} # 3.差集 print(s1.difference(s2)) # {1, 2} # 4.并集 - 交集 print(s1.union(s2) - s1.intersection(s2)) print(s1) print(s2) # 扩展:列表推导式/字典推导式/集合推导式 print({i:i for i in range(6)}) # 字典推导式 print({i for i in range(6)}) # 集合推导式 s1 = {1,2,3,4} s2 = {3,4,5,6} # 交集 set1 = {ele for ele in s1 if ele in s2} print(set1) # {3, 4} # 并集 set2 = {e1 for e1 in list(s1) + list(s2)} print(set2) # {1, 2, 3, 4, 5, 6} # 差集 set3 = {ele for ele in s1 if ele not in s2} print(set3) # {1, 2}
二、数字类型【掌握】
1.数学功能
内置功能
- abs(x):返回数字的绝对值
- (x>y)-(x<y):比较大小,
- max(x1,x2,…):返回给定参数的最大值
- min(x1,x2,…):返回给定参数的最小值
- pow(x,y):求x的y次方的值
- round(x,n):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数
导入math模块 import math;
- ceil(x):返回x的上入整数,不能直接访问,需要通过math访问,即math.ceil(18.1)
- floor(x):返回x的下入整数,同ceil的用法
- modf(x):返回x的整数部分和小数部分,两部分的数值符号与x相同,整数部分以浮点型表示,同ceil的用法
- sqrt(x):返回数字x的平方根,数字可以为负数,返回类型为实数【浮点型】,同ceil的用法
数学常量
math.pi :圆周率
math.e :自然常数# 一、内置函数 """ 【面试题】请列举至少5个内置函数,并解释他们的作用 print() int() type() id() abs() max() min() """ # 1.abs()求绝对值 print(abs(-18)) # 2.max()/min() print(max(3,45,6,7,8,89,43,6,7)) print(max([3,45,6,7,8,89,43,6,7])) print(max((3,45,6,7,8,89,43,6,7))) print(min(3,45,6,7,8,89,43,6,7)) # 3.pow(x,y)求x的y次方 print(pow(5,3)) # 4.sum(iterable,value),将容器中的所有元素进行求和,如果value未被省略,则加上value print(sum([3,4,5])) print(sum(range(101))) print(sum([3,4,5],10)) # 22 # 5.round(v1,v2),v2省略,则返回一个整数,v2未被省略,则表示保留小数点后几位 # 注意:round可以进行四舍五入 print(round(6.34)) # 6 print(round(6.84)) # 7 print(round(6.8445556,2)) print(round(6.8475556,2)) # 二、math模块 import math # 1.ceil():向上取整 print(math.ceil(2.9)) print(math.ceil(2.1)) # 2.floor():向下取整 print(math.floor(2.9)) print(math.floor(2.1)) # 3.sqrt():求算术平方根,结果是浮点型 print(math.sqrt(9)) # 3.0 # 4.常量 print(math.pi) # 圆周率 print(math.e) # 自然常数
2.随机数功能
# import random from random import * # 1.choice(seq) # a. r11 = choice([1,'abc',True,4,5]) print(r11) # b. r12 = choice((1,2,3,4,5)) print(r12) # c.choice中无法使用集合,集合不支持索引 # r11 = choice({1,2,3,4,5}) # print(r11) # TypeError: 'set' object does not support indexing # d. r3 = choice(range(101)) print(r3) # 2.randint(start,end)包头又包尾,但是没有step,step默认只能是1 # 3.randrange(start,end,step)包头不包尾,和range用法相似 # 需求1:获取一个1~50之间的随机数,50包含在内 print(choice(range(1,51))) print(randint(1,50)) print(randrange(1,51)) # 需求2:获取1~100之间的偶数随机数,100包含在内 print(choice(range(2,101,2))) # print(randint(2,100,2)) # TypeError: randint() takes 3 positional arguments but 4 were given print(randrange(2,101,2)) # 4.sample(iterable,num)从iterable中随机选取num个数据,得到一个列表 print(sample("123abc",2)) print(sample(['a','b','2','5'],1)) # 5.random():获取0~1之前的任意一个随机数,包头不包尾 print(random()) # 需求:获取20~100之间任意一个随机数,包括浮点数 # 0~1--->0~80---->20~100 print(random() * 80 + 20) print(round(random() * 80 + 20,2)) # 6.uniform(start,end):获取start~end之间的任意一个随机数,包含浮点数 print(uniform(20,101))