1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
1 def func(*args): 2 list_new=[] 3 for i in args: 4 if i%2==1: 5 list_new.append(i) 6 #print(list_new) 7 return list_new 8 a=[1,2,3,4,5,6,7,8,9] 9 func(*a) 10 #ret=func() 这里函数不把传递的参数加进去,返回的值就为空。 11 ret=func(*a) 12 print(ret)
修改:直接用列表切片更简单。
1 def func(l): 2 return l[0::2] 3 func((1,2,3,4,5,6,7)) 4 #ret=func(l) 同上面的问题 5 ret=func((1,2,3,4,5,6,7)) 6 print(ret)
2、写函数,判断用户传入的值(字符串、列表、元组)长度是否大于5。
1 def func(l): 2 sum=0 3 for i in l: 4 sum+=1 5 if sum>=5: 6 print("长度大于5") 7 else: 8 print("长度小于5") 9 func((1,23,4,5,6))
3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
1 def func(l): 2 list_new=[] 3 if len(l)>=2: 4 list_new.append(l[0:2]) 5 return list_new 6 print(func([1,2,3,4])) #结果:[[1, 2]],如果将切片的结果在给新列表,就回出现这个问题 7 8 #改: 9 def func(l): 10 if len(l)>=2: 11 return l[0:2] #列表的切片 12 else: 13 return None 14 print(func([1,2,3,4,5])) #结果:[1, 2]
4、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数,并返回结果。
1 def func(l): 2 num1=0 3 num2=0 4 num3=0 5 num4=0 6 for i in l: 7 if i.isdigit(): #判断数字 8 num1+=1 9 elif i.isalpha():#判断字母 10 num2+=1 11 elif i.isspace():#判断空格 12 num3+=1 13 else: 14 num4+=1 15 return num4,num3,num2,num1 16 17 print(func('123 asd %^&* '))
5、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
1 #现在这个代码存在一个问题,无法遍历所有值 2 def func(l={}): 3 4 for i in l.keys(): #字典是无序的,不能用下标 5 if len(l[i])>2: 6 l[i]=l[i][0:2] 7 return l #{'lily': 'st', 'dengxiaol': 'pipi', 'caicai': '12345678'},这个的错误是因为retrun放错了位置,吐血!!! 8 9 10 #正确 11 def func(l): 12 for k in l: 13 if len(l[k])>2: 14 l[k]=l[k][0:2] 15 return l 16 17 print(func({"caicai":'12345678',"lily":"str",'dengxiaol':'pipi'}))
7、写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b): return max(a,b) print(func(10,5))