Set集合
Set简介:
无序,不重复序列
使用{}创建
li=[11,22,11,22]
se1=set(li) #将列表转换成集合
功能
se={"zhang",'tie'} 创建集合 print(type(se)) 查看类型 li=[11,22,11,22] 创建列表 se1=set(li) #将列表转换成集合 se1.add(123) 添加
取差集
s1={11,22,33} s2={22,33,44} s3=s1.difference(s2) 取出来的s3值是,在s1中存在,在s2中不存在的 print(s3)
{11}
s4=s1.symmetric_difference(s2) s1和s2中互为不存在的 print(s4)
{11, 44}
s1.difference_update(s2) 将s1中存在,s2中不存在的更新到s1中 print(s1)
{11}
s={11,22,33,44} s.discard(11) 移除指定元素,不存在不报错 print(s)
{33, 44, 22}
s.remove(11) 移除指定元素,不存在报错
s={11,22,33,44} s5=s.pop() #随机移除,将移除的内容赋值 print(s) print(s5)
{11, 44, 22}
33
s1={11,22,33} s2={22,33,44} s3=s1.intersection(s2) #取交集 print(s3)
s1={11,22,33} s2={22,33,44} s1.intersection_update(s2) #取交集后,重新赋值给交集 print(s1)
s1={11,22,33} s2={22,33,44} s3=s1.union(s2) #取并集 print(s3)
s1={11,22,33} s2=[33,44,55] s1.update(s2) 批量添加,s2是可以迭代的对象(可以被for循环的) print(s1)
函数
1、 关键字def
2、 函数名
3、 ()
4、 函数体(具体的内容)
5、 返回值
在函数中,一但执行了return,函数的执行过程立即终止
def f2():
print(123)
return "111"
print(234) #不会执行
r=f2()
print(r)
返回值需要我们赋值给一个变量
在行数中,如果我们没有return,会有默认的返回值
函数参数
形式参数
def f(xx):
pass
f("zhang")
#我们在定义函数时,括号中的xx就是形式参数,在函数中可以调用,在调用函数时,括号中的”zhangtie“就是实际参数
默认参数:
def send(xx,cc,zz="ok"):
print(xx,cc,zz)
send(11,22)
send(11,22,33)
输出:
11 22 ok
11 22 33
上面中的zz就是默认参数,我们给了一个默认值”ok”,当我们在传参数时,如果给了值就用我们给的,如果没有就用默认的
指定参数
def send(xx,cc):
print(xx,cc)
send(cc=11,xx=22)
1、 普通参数
2、 默认参数(放在最后)
3、 指定参数
动态参数
def send(*xxcc):
print(xxcc)
send(22,33,44)
(22, 33, 44)
xxcc带*号,动态的接收传参,我们可以传多个参数,会以元祖的形式输出,每一个参数,变成元祖的一个元素。
我们还可以给他传列表,在列表名家*号列表中的每个元素会变成元祖中的元素,不加*,整个列表会成为元祖中的一个元素。
两个*
def send(**xxcc): print(xxcc) send(zzz=33)
我们在传参数时,需要以指定参数的形式传,在函数中会成为一个字典,我们在往里面传字典的时候,可以加两个*,字典中的元素,会变成形式参数中字典的元素
Python在传值的时候,传的是引用,而不是值
全局变量,在所有的作用域都能读,如果想在函数中,修改全局变量,需要加关键字global
三元运算
#三元运算
if 1 == 1:
name = "zhangtie"
else:
name="SB"
name= "zhangtie" if 1 == 1 else "sb"
简写的if
lambda 表达式
def f1(a1):
return a1 + 100
ret =f1(100)
print(ret)
f2 = lambda a1: a1 + 100
ret2=f2(100)
print(ret2)
内置函数
#内置函数 #abs 取绝对值 ''' n = abs(-1) print(n) '''
n= all([1,2,3,0]) #所有为真则为真 print(n) False
#any只要有一个为真,就为真 n = any([0,1]) print(n)
True
#bin() 十进制换二进制 print(bin(12))
#oct() 十进制转八进制 #hex() 十进制转十六进制
#字符串转换成字节 s = "张铁" n=bytes(s,encoding="utf-8") print(n)
b'\xe5\xbc\xa0\xe9\x93\x81'