作业

1.简述普通参数、指定参数、默认参数、动态参数的区别。
普通参数:普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值。
1 def a1(a): 2 print(a) 3 return True 4 b=a1(3) 5 print(b)
指定参数:
1 def a1(a,b,c): 2 d = a+b+c 3 return d 4 e=a1(1,2,3)#分别把1,2,3 按顺序传给a,b,c 5 print(e) 6 f=a1(b=1,a=2,c=3)#指定a,b,c 的值,传给def a1 7 print(f)
默认参数
1 def a1(a=123):#a=123设置默认值、 2 return a 3 b = a1("把我传过去")#有值传过去时,则使用传过去的值。 4 print(b) 5 6 d = a1()#没有值,传过去则使用默认值 a=123。 7 print(d)
动态参数
1 def a1(*args): #动态参数,传多个值时,不用在括号里制定多个参数。 2 print(args,type(args)) #args元组类型。 3 a1(1,2)
1 def a1(**kwargs): #动态参数,传入键值对时前面两个*号。 2 print(kwargs,type(kwargs)) #args字典类型。 3 a1(k=456) #不传入键值对,则会报错。
1 def a1(a,*args,**kwargs): #传任何值都不会报错。 2 print(kwargs,type(kwargs)) 3 a1(k=456)
2.写函数,计算字符串中 字母、数字、空格和其他的个数
1 def aa(a): 2 al_num = 0 #储存数字 3 al_trip = 0 #储存空格 4 al_lpha = 0 #储存字母 5 al_other = 0#储存其他 6 for i in a: 7 #判断是否为数字 8 if i.isdigit()==True: 9 al_num = al_num +1 10 #判断是否为空格 11 elif i.isspace()==True: 12 al_trip = al_trip +1 13 #判断是否为字母 14 elif i.isalpha()==True: 15 al_lpha = al_lpha +1 16 #其他 17 else: 18 al_other = al_other +1 19 print(al_num ) 20 print(al_trip) 21 print(al_lpha) 22 print(al_other) 23 24 aa('ssssdf @#!sdf435')
3.写函数,判断字符串、列表、字典的长度是否大于5
1 def aa(a,*args,**kwargs): 2 num = 0 3 if len(a)>=5: 4 print(len(a),'长度大于5') 5 else: 6 print(len(a), '长度小于5') 7 aa([11,22,33,44,55]) 8 aa({'key1':11,'key2':22})
#老师的方法 def aa(arg): if isinstance(arg,str) or isinstance(arg,list) or isinstance( arg,type): if len(arg)>5: return True else: return False return None temp = 'sadfasdfafdadfsa' a1 = aa(temp) print(a1)
4.写函数,判断字符串、列表、字典判断是否有空内容。
1 def aa(a,*args,**kwargs): 2 j=str() 3 for i in a: 4 j=str(i) 5 if j.isspace() == True : 6 print(a + '中元素有空格') 7 break 8 else: 9 pass 10 11 #aa('dfaffds sdg sdf') 12 li = ['sdsf sdfs',11,'asfda a adf'] 13 aa(li)
#;老师的方法 def aa(args): ret = True for c in args: if c.isspace(): ret = False break return ret li2 = aa('sdfsfsdfs sdf sd') print(li2)
5.写函数,传入列表大于长度大于2时,将内容保存到新列表,返回给调用者。
1 def aa(a): 2 if len(a) > 2: 3 return a[0:2] 4 else: 5 return a 6 li = ["sdfs",'sdfs','sdfds'] 7 li2=aa(li) 8 print(li2)
6.写函数,传入元组或列表,并将元组或列表的奇数位 添加到一个新列表,然后返回值给调用者。
1 ef aa(a,*args,**kwargs): 2 j = 0 3 li3 = [] 4 for i in a: 5 if j % 2 == 1 : 6 li3.append(i) 7 j = j + 1 8 return li3 9 10 li = ["sdfs0",'sdfs1','sdfds3'] 11 li2=aa(li) 12 print(li2) 13 li5 = ('sdfs0','asdas1','asdas3') 14 li6=aa(li5) 15 print(li6)
#老师的方法 def aa(a): li3 = [] for i in range(len(a)): if i % 2 == 1 : li3.append(a[i]) else: pass return li3 li = ["sdfs0",'sdfs1','sdfds3',22,5456] li2=aa(li) print(li2) li5 = ('sdfs0','asdas1','asdas3') li6=aa(li5) print(li6)
7.写函数,检查每个字典的values值长度,大于2的值,仅保留2位值,并将值返回给调用者
1 def aa(a,*args,**kwargs): 2 li1 =[] 3 li2 = [] 4 for i in a.values(): 5 if len(i) >2: 6 li1.append(i[0:2]) 7 8 return li1 9 dic = {'key1':'dd','key2 ':'12345','key3':'sadfa'} 10 li=aa(dic) 11 print(li)
#老师的方法 def f5(arg): ret = {} for key, value in arg.items(): if len(value) > 2 : ret[key]=value[0:2] else: ret[key]=value return ret dic = {'k1':'vlvl','k2':[11,22,33],'k3':'12'} r = f5(dic) print(r)


浙公网安备 33010602011771号