1.写函数,计算传入字符串中【数字】、【字母】、【空格】以及【其他】的个数
2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5
3.写函数,检查用户传入的对像(字符串、列表、元组)的每一个元素是否含有空内容
4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
5.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
6.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
解答:
1.
def func1(a): count1 = 0 count2 = 0 count3 = 0 count4 = 0 for i in a: if i.isdigit():#数字 count1+=1 elif i.isalpha():#字母 count2+=1 elif i.isspace():#空格 count3+=1 else:#其他 count4+=1 print("数字有%d个:" % count1) print("字母有%d个:" % count2) print("空格有%d个:" % count3) print("其他有%d个:" % count4) return (count1, count2, count3, count4) str_num = input("输入:") func1(str_num)
2.
def func1(args): if isinstance(args,str) or (args,list) or(args,tuple): if len(args)>5: print("该字符串长度大于5") else: print("该字符串长度不大于5") else: return None string = "123abc" li = [11,22,33,44,55,99] tu = {"apple","orange"} func1(string) func1(li) func1(tu)
3.
def func1(args): ret = True for i in args: if i.isspace(): ret = False break return ret string = "123 abc" result = func1(string) print(result)
4.
#函数传参,传引用 def fun1(args): if len(args)>2: return args[0:2] else: return args li = [11,22,33,44] ret = fun1(li) print(ret)
注意:
def f2(arg): if len(arg)>2: del arg[2:] li = [11,22,33,44] f2(li) print(li)
def f3(arg): arg = 123 li = [11,22,33,44] f3(li) print(li)
总结:一旦变量遇到等号,name=xxx,
如果xxx是真实值,则创建新内存,
如果xxx是变量,则不创建内存,共同指向一个
5.
def f5(arg): new_li = [] for i in range(len(arg)): print(i) if i%2 == 1: new_li.append(arg[i]) return new_li li = [11,22,33,44,55] ret = f5(li) print(ret)
6.
def f6(arg): new_dic = {} for key,value in arg.items(): if len(value)>2: new_dic[key] = value[0:2] else: new_dic[key]= value return new_dic dic = {"k1":"aaa","k2":"bb","k3":"ccc"} ret = f6(dic) print(ret)