1-2 集合与函数
五大基本数据类型:字符串、数字、列表、元组、字典
可变不可变:id()指向内存地址
1:可变:列表、字典
2:不可变:字符串、数字、元组
访问顺序:
1.直接访问:数字
2.顺序访问:字符串、列表、元组
3.映射:字典(比列表爬行速度快)
存放元素个数:
容器类型:列表、元组、字典
原子(只能存放一个值):数字、字符串
集合
定义:不同元素组成(不可变数据类型),集合中是一组无序排列可hash的值,可以作为字典的key。(无论如何定义,集合无序)
s={1,2,3,3}
type(s)
#type之后的s,是去重结果
>>>s
{1,2,3}
s=set('hello')
>>>s
{'o','h','l','e'}
s={1,2,3,4,5,6}
s.add('3') #加入
>>>s
{1,2,3,4,5,6,'3'}
s.clear() #清空
s.pop() #随机删除集合中的元素
s.remove('') #指定删除 删除元素不存在会报错
s.discard('') #指定删除 删除元素不会报错
集合运算
1 python_l=['lcg','szw','zjw'] 2 linux_l=['lcg','szw'] 3 4 python_and_linux_l=[] 5 for p_name in python_1: 6 if p_name in linux_1: 7 python_and_linux_1.qppend(p_name) 8 9 print(python_ang_linux_1]
1 pyhton_l=['lcg','szw','zjw','lcg'] 2 linux_1=['lcg','szw','sb'] 3 4 #简单去重操作set即可但原集合顺序改变 5 p_s=set(python_l) #生成集合 6 l_s=set(linux_l) 7 8 print(p_s,l_s) 9 #求交集 10 print(p_s.intersection(l_s)) 11 print(p_s&l_s) 12 13 #求并集 14 print(p_s.union(l_s)) 15 print(p_s|l_s) 16 17 #差集 18 print('差集',p_s-l_s) 19 print(p_s.difference(l_s)) 20 21 #交叉补集 去除交集再并 22 print(p_s.symmetric_difference(l_s)) 23 print(p_s^l_s) 24 25 #difference_update() 26 #issubset() 判断一个集合是另一个集合的子集 27 #issuperset() 判断一个集合是另一个集合的父集 28 #update() 对一个集合更新多个元素,括号中为一个集合 add只能更新一个值
集合内置 集合可变
定义不可变集合
s=frozenset('hello')
字符串拼接和格式化
%s % 代表在%s处放置一个字符串数据,后%表示把后面的传给他
msg='i am %s my hobby is alex' %'lhf' print(msg) >>>i am lhf my hobby is alex
传接多个值 %s
msg='i am %s my hobby is %s' % ('lhf','alex') msg='i am %s my hobby is %s' % ('lhf',1) msg='i am %s my hobby is %s' % ('lhf',[1,2]) #%d只能传数字类型数据 msg='i am %s my hobby is %d' % ('lhf',1)
打印浮点型数字
#默认保留六位小数 .2f表示保留小数点后两位小数 tpl="percent %f" % 9976234 tpl="percent %.2f" % 99.97623
打印百分比
#截取字符串 截取4位数(从右往左) tpl="percent %.4s" % 'abcdef' print(tpl) #打印百分号 %% tpl='percent %.2f %%' % 99.97623444 #简单使用传入 (name),(age)字典key tpl="i am %(name)s age %(age)d" % {"name":"alex","age":18} #\033[43;1m \033[0m 表示加入颜色 +60右对齐60公分处(flags) msg='i am \033[43;1m%(name)+60s\033[0m my hobby is alex' %{'name':'alex'} #sep加上分隔符 print('root','x','0','0',sep=':')
fornat字符串格式化 处理为列表或元组
1 #一一对应关系 不一一对应则报错 2 tpl='i am {},age {}, {}".format("seven",18,'alex') 3 print(tpl) 4 5 #按元组方式填充{2,1,0} 6 tpl='i am {2},age {1}, {0}".format("seven",18,'alex') 7 print(tpl) 8 tpl='i am {1},age {1}".format("seven",18,'alex') 9 >>> i am 18,age 18 10 11 #字典形式..或format{**{"name":"seven","age":18} 12 tpl='i am {name}, age {age}, 13 really{name}".format(name="seven",age=18)
1 #b二进制,o八进制,d整形,x16进制 X大写,%显示百分比默认六位 2 tpl="numbers: {:b},{,o},{:d},{,x},{:X}, {:%},{}".format(15,15,15,15,15.87623,2)
函数
python 中函数定义:函数是逻辑结构化和过程化的一种编程方法。
1 #python中函数定义方法 2 3 def test(x): 4 "The function definition" 5 x+=1 6 return x 7 8 9 def:定义函数的关键字 10 test:函数名 11 ():内可定义形参 12 ”“:文档描述(非必要,但是强烈建议为你的函数添加描述信息) 13 x+=1:泛指代码块或程序处理逻辑 14 return:定义返回值 15 16 调用运行:可以带参数也可以不带 17 函数名() 18 19 def test(x): 20 y=2*x+1 21 return(y) 22 print(test) #打印出的是test函数信息 23 a=test(3) 24 print(a) 25 >>a=7 26 27 def test(): 28 x=3 29 y=2*x+1 30 return(y) 31 print(test) #打印出的是test函数信息 32 a=test(3) #接着返回结果
过程:就是没有返回值的函数
函数参数
1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束后返回主调用函数后则不能再使用该形参变量
2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参.因此应预先用赋值,输入等方法使参数获得确定值。
1 #x,y 形参 a,b实参(赋值代入) 2 def calc(x,y): 3 res = x**y 4 return(res) 5 6 c=calc(a,b) 7 print(c)
3.位置参数与关键字(标准调用:实参和形参位置一一对应;关键字调用:位置无需一一对应 但二者不可缺)
1 def test(x,y,z) 2 print(x) 3 print(y) 4 print(z) 5 6 #位置参数 7 test(1,2,3) 8 #关键字调用 9 test(y=2,x=1,z=3) 10 #位置参数和关键字可混用,位置参数必须在关键字左边
4.默认参数
1 #type=None 默认参数 也可赋值 2 def handle(x,type=None); 3 print(x) 4 print(type)
5.参数组
1 #参数组:**字典 *列表 2 def test(x,*args): 3 print(x) 4 print(args) 5 print(args[0]) 6 test(1,2,3,4,5,6) 7 #列表[2,3,4,5,6]单作为一个元素传给args 8 test(1,[2,3,4,5,6]) 9 #加*号依次赋值给args 10 test(1,*[2,3,4,5,6]) 11 #传字典 12 test(1,{'name':'alex'}) 13 14 #error y=2,z=3 相当于k对应变量 一个*难以满足 15 test(1,y=2,z=3) 16 #处理关键字参数 17 def test(x,**kwargs): 18 print(x) 19 print(kwargs) 20 21 test(1,y=2,z=3) 22 >>1 23 {'y':2,'z':3} 24 25 test(1,y=2,z=3,z=3) #会报错 一个参数不能传入两个值

浙公网安备 33010602011771号