python 基础篇 第四节课
---恢复内容开始---
总结: 可变可不变:1可变: 列表,字典
2 不可变:字符串,数字,元组
访问顺序: 1直接访问:数字
2顺序访问:字符串,列表,元组
3映射:字典
存放元素个数:容器类型:列表,元组,字典
原子: 数字,字符串
集合
特征:1 不同元素组成
2无序
3集合中元素必须是不可变类型
添加
添加字符串
s = {1,2,3,4,5,6}
s.add("c")
print(s)
#输出{1, 2, 3, 4, 5, 6, 'c'}
添加数字 .dd()
s = {1,2,3,4,5,6}
s.add(8)
print(s)
#输出{1, 2, 3, 4, 5, 6, 8}
添加重复的数字可以运行但不显示
清空 .clear()
s = {1,2,3,4,5,6}
s.clear()
print()
拷贝 .copy()
s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1)
#输出{1, 2, 3, 4, 5, 6}
随机删 .pop()
s = {1,2,3,4,5,6}
s.pop()
print(s)
#输出{2, 3, 4, 5, 6}
指定内容删 .remove() 删除内容不存在会报错
s = {1,2,3,4,5,6}
s.remove(4)
print(s)
#删除{1, 2, 3, 5, 6}
指定内容删除 . discard() 删除元素不存在不会报错
s = {1,2,3,4,5,6}
s.discard(9)
print(s)
#输出{1, 2, 3, 4, 5, 6}
set 列表变为集合
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s,l_s) #输出{'JZH', 'KLY', 'LPP'} {'KLY', 'JZH'}
.intersection & 求交集
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.intersection(l_s)) #输出{'JZH', 'KLY'}
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s & l_s) #输出{'KLY', 'JZH'}
求并集
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.union(l_s)) #输出{'KLY', 'JZH', 'LPP'}
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s|l_s) #输出{'JZH', 'LPP', 'KLY'}
.difference() - 求差集
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.difference(l_s)) #输出{'LPP'}
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s - l_s) #输出{'LPP'}
.symmetric_difference() 交叉补集
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.symmetric_difference(l_s)) #输出{'LPP'}
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s ^ l_s) #输出{'LPP'}
.difference_update() 差集并更新
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) p_s.difference_update(l_s) print(p_s) #输出{'LPP'}
.isdisjoint() 判断有无共有的元素:有 False 无 True
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.isdisjoint(l_s)) #输出False
.issuperset() >= 父集
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s.issuperset(l_s)) #输出 True
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s >= l_s) #输出True
.issubset() <= 子集
p_s = set(python_1) l_s = set(linux_1) print(p_s.issubset(l_s)) #输出False
python_1 = ["KLY","LPP","JZH"] linux_1 = ["KLY","JZH"] p_s = set(python_1) l_s = set(linux_1) print(p_s <= l_s) #输出False
更新数据 .update()
python_1 = ["KLY","LPP","JZH"]
linux_1 = ["KLY","JZH"]
p_s = set(python_1)
l_s = set(linux_1)
l_s.update(python_1)
print(l_s)
#输出{'KLY', 'LPP', 'JZH'}
s = frozenset("JZH") print(s) #输出frozenset({'Z', 'H', 'J'})
字符串格式化
%s可以是任何值
v = "i am %s my hobby is playing" % "JZH" print(v) #输出i am JZH my hobby is playing
%d 只能是数字
v = "i am %d my hobby is playing" % 5 print(v) #输出i am 5 my hobby is playing
打印浮点数
v = "percent %.3f" % 99.784531 print(v) #输出percent 99.785
打印百分比
v = "percent %.3f %%" % 99.784531 print(v) #输出percent 99.785 %
打印字典
v = "i am %(name)s age%(age)d" %{"name":"JZH","age":18} print(v) #输出i am JZH age18
百分号方式 %[(name)][(flags)][(width)][precision]typecode %[(key)][(可供选择的值 +左对齐 -右对齐)][占有数][小数点后保留的位数]
v = "i am %(name)+10s my hobby is playing" %{"name":"JZH"} print(v) #输出i am JZH my hobby is playing
v = "i am %(name)-10s my hobby is playing" %{"name":"JZH"} print(v) #输出i am JZH my hobby is playing
打印字符用:隔开
print("root","s","0","5",sep=":") #输出root:s:0:5
format 字符串 常用格式化
tp1 = "i am {},age {},{}".format("JZH","18","handsome") print(tp1) #输出i am JZH,age 18,handsome (不一一对应会报错)
tp1 = "i am {2},age {1},{0}".format("JZH","18","handsome") print(tp1) #输出i am handsome,age 18,JZH
传字典
tp1 = "i am {name},age {age},{name}".format(name = "JZH",age = 18) print(tp1) #输出i am JZH,age 18,JZH
tp1 = "i am {name},age {age},{name}".format(**{"name":"JZH","age":18}) print(tp1) #输出i am JZH,age 18,JZH
传元组
tp1 = "i am {0[0]},age {0[1]},{0[2]}".format(["JZH",18,"handsome"],[11,22,33]) print(tp1) #输出i am JZH,age 18,handsome
tp1 = "i am {:s}, age{:d},{:s}".format(*["JZH",18,"handsome"]) print(tp1) #输出i am JZH, age18,handsome
tp1 = "i am {name:s}, age{age:d},{a:s}".format(name = "JZH",age = 18,a = "handsome") print(tp1) #输出i am JZH, age18,handsome
tp1 = "i am {name:s},age{age:d},{a:s}".format(**{"name":"JZH","age":18,"a":"handsome"}) print(tp1) #输出i am JZH,age18,handsome
tp1 = "numbers:{:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.846545) print(tp1) #输出numbers:1111,17,15,f,F,1584.654500% # b 二进制 o八进制 d十六进制 x小写 X大写 %显示百分号
python中的函数
def:定义函数关键字
test:函数名
():可定义参数,整形数字
“”:文档描述
x += 1:泛指代码块或程序处理逻辑
使用函数的好处:1减少代码重用
2保持一致性,易维护性
3可扩展性
return:定义返回值
def test(x): ''' y=2*x+1 :param x:整形数字 :return y:返回值 :param x: :return: ''' y=2*x+1 return y a=test(3) print(a) #输出 7
def test(): ''' y=2*x+1 :param x:整形数字 :return y:返回值 :param x: :return: ''' x=3 y=2*x+1 return y a=test() print(a) #输出 7
函数和过程
过程:没有返回值的函数时,输出none
返回值=1时,返回对象
返回值>1时,返回元组
def test(): msg = "test" v = msg return a = test() print(a) #输出None
def test(): msg = "test" v = msg return 1 a = test() print(a) #输出1
def test(): msg = "test" v = msg return 1,312,844,"name" a = test() print(a) #输出(1, 312, 844, 'name',)
函数参数:形参和实参的区别是,是否会在内存中占有一定的空间,有则实参,无则形参
def calc(x,y): #形参 res = x**y return res a = calc(3,4) #实参 print(a)
位置参数和关键字参数
位置参数:位置必须要一一对应,缺一不行,多一也不行
def test(x,y,z): print(x) print(y) print(z) test(1,2,3) #输出 1 2 3
关键字参数:位置无需一一对应,缺一不行,多一也不行
def test(x,y,z): print(x) print(y) print(z) test(y=3,z=2,x=9) #输出 9 3 2
混合使用:位置参数必须在关键词参数的左边
def test(x,y,z): print(x) print(y) print(z) test(3,2,z=9) #输出 3 2 9
默认参数
def handle(x,type="mysql"): print(x) print(type) handle("hello",456) #输出 hello 456
参数组,**字典,*列表
def test(x,*args): print(x) print(args) test(1,2,3,4,56,789) #输出 1 (2, 3, 4, 56, 789)
def test(x,*args): print(x) print(args[4]) test(1,2,3,4,56,789) #输出 1 789
def test(x,*args): print(x) print(args) test(1,["name","alex"]) #输出 1 (['name', 'alex'],)
def test(x,*args): print(x) print(args) test(1,*["name","alex"]) #输出 1 ('name', 'alex')
def test(x,*args): print(x) print(args) test(1,{"name":"alex"}) #输出 1 ({'name': 'alex'},)
def test(x,**kwargs): print(x) print(kwargs) test(1,z=789,y="haha") #输出 1 {'z': 789, 'y': 'haha'}
综合
def test(x,*args,**kwargs): #def test(单个,列表,字典) print(x) print(args) print(kwargs) test("name",145,["a","b",3],{"JZH":"henqiang"},*[55,"uio",99],k=["kly",651],z=789,y="haha",q={"hs":42},f=(7,9,1,)) #输出 name (145, ['a', 'b', 3], {'JZH': 'henqiang'}, 55, 'uio', 99) {'f': (7, 9, 1), 'z': 789, 'y': 'haha', 'q': {'hs': 42}, 'k': ['kly', 651]}
def test(x,*args,**kwargs): print(x) print(args,args[-1]) print(kwargs,kwargs.get("k")) test(1,*[1,2,3],**{"k":456}) #输出 1 (1, 2, 3) 3 {'k': 456} 456

浙公网安备 33010602011771号