1. 可变参数
def send_message(*args) :在调用这个函数的时候,可以不传参数,也可以传一个参数,也可以传多个参数。只要传参了,就会把参数放进一个元组中。
2. 关键字参数
def send_message(**kwargs):在调用这个参数的时候,可以不传参数,可以传一个参数,也可以传入多个参数。传入的格式为k=v
3 位置参数,关键字参数混合使用时,需要注意
def myfunc2(name,addr='beijing',*args,**kwargs)
关键字参数后面不能使用位置参数,也就是当位置参数和关键字参数一起时,要把位置参数放在前面,最后在写关键字参数
4 解包
def connect (ip,port,username,password)
info=('196.36.23.22',‘3323’,‘root’,‘123456’)
connect(*info),
在元组,列表,集合,字符串只要数量和变量一致,就能个以一一对应。
字典的话要用connect(**dic)
5 常用的内置函数
print(max([123,423,1,2,3,45,332]))#取最大值 print(sum([123,423,1,2,3,45,332]))#求和 print(divmod(10,3))#余数 print(round(11.222222,2))#取几位小数 l = ['u1','u2','u3'] l2 = ['p1','p2','p3'] print(list(zip(l,l2)))#将两个list和为一个二维数组 print(dict(zip(l,l2)))#将两个list和为一个二维数组
l = [1,2,34,12,32,98,3221,98,34,532] print(sorted(l))#排序 print(sorted(l,reverse=True))#降序排序 print(l) l2 = [ ['xiaobai',12], ['xiaohei',11], ['lisi',98], ['wangwu',34] ] l3 = sorted(l2,key=lambda x:x[-1][-1])#二维数组排序,key是传一个函数名,是指用哪个参数来进行排序 print(l3) def user_key(x): return x[-1] #key是传一个函数名,由sorted循环排序时去调用该函数 l4 = sorted(l2,reverse=True,key=user_key) print(l4)
l = [1,2,34,12,32,98,3221,98,34,532] #循环把list的每个参数传给函数, #根据某个规则来过滤list里的参数 result = filter(lambda x:x>5,l)#输出的是大于5的数 stri = 'fdsfrewrwerwrffdsf' str_result = filter(lambda x:x!='f',stri) print(list(str_result)) print(list(result)) #保留函数返回的值,就是循环执行函数 map_result = map(lambda x:x>5,l)#返回的是True或false,返回所有 print(list(map_result)) map_result1 = map(lambda x:str(x).strip().zfill(3),l)#返回所有 print(list(map_result1)) for index,i in enumerate(l,1):#将list转为带下标的二维数组,传1是从1开始,默认从0开始 print('%s -> %s'%(index,i))
str_code = ''' l = [1,2,34,12,32,98,3221,98,34,532] map_result1 = map(lambda x:str(x).strip().zfill(3),l) print(list(map_result1)) print('hhhh') ''' #让程序自动帮你执行代码,可以执行所有的python代码 #用exec方法有风险,比如执行os.remove()把文件删除等 exec(str_code) result = eval('{"name":"xiaohei","age":"19"}')#执行python代码,只能执行简单的,定义数据类型和运算 print(result)
不常用的内置函数
print(all([1,2,3,4,5,0]))#判断可迭代对象里的值是否都为真 print(any([1,2,3,4,5,0]))#判断可迭代对象里的值是否有一个为真 print(bin(10))#10进制转2进制 print(hex(10))#10进制转成16进制 print(oct(10))#10进制转成8进制 print(chr(33))#数字对应的ascii码 print(ord('v'))#字符对应的ascii码 #python3 默认的字符集是utf-8 #python2 默认的字符集是ASCII f = open('a.txt','w') print(dir(f))#打印传入对象的可调用方法 print(locals())#返回局部变量 def fun(): name = 'abc' age = 18 print(locals()) # 返回局部变量,返回的是一个字典 fun() print(globals())#返回全局变量,返回的是一个字典
匿名函数:是个简单的函数,没有名字
f1=lamber x:x+1
print(f1(2))
Random函数:
1. 使用Random模块,需要导入 import random
2. 随机生成一个整数:random.randint(1,6):会随机生成一个1-6中的任意一个数
3. 随机生成一个小数:random.uniform(1,10):会随机生成1-10中的任意一个小数
4.random.simple("jkjkjkjk",3):会随机从给出的字符串中取,取几个由后面的数字决定。最后生成的是一个列表。然后用''.join(列表)变成一个字符串
5.random.shuffle(列表) :打乱列表的顺序。俗称洗牌
6. 随机生成小写,大写字母,特殊字符,数字,需要导入:import string
小写字母:string.ascii_lowercase
大写字母:string.ascii_uppercase
字母:string.ascii_letter
特殊字符:string.punctuation
整数数字:string.digits
随机取一个值:random.choice() 里面可以是列表,数字,字母
补充:
当字符不满的时候长度的时候可以填充用的方法是string.zfill(位数)