#写函数,计算传入字符串中【数字】、【字母】、【空格】以及【其他】的个数。
# 定义函数,输入字符串 def checkFunction(myStr): # 新建字典,准备存放各类型数据及其个数 typeNum = {} typeList = ['数字','字母','空格','其他'] typeNum = typeNum.fromkeys(typeList,0) # 将字符串中的制表符转换成空格,方便统计 myStr.expandtabs() # 遍历字符串,查找各类型数据的个数,并存入字典 for i in myStr: if i.isdecimal(): typeNum['数字'] += 1 elif i.isalpha(): typeNum['字母'] += 1 elif i is ' ': typeNum['空格'] += 1 else: typeNum['其他'] += 1 # 返回字典 return typeNum # 函数调用,测试功能 # myStr = '435hfgh35454 @$#% \nd' myStr = input('请输入字符串:\n>>>') print('字符串:{}'.format(myStr)) print('字符串中各类型数据的个数:') ret = checkFunction(myStr) for i,j in ret.items(): print('{}:{}'.format(i,j))
#写函数,判断用户传入的对象(字符串、列表、元组)的长度是否大于5.
# 定义函数,输入动态参数 def lenCheck(*args): # 判读输入的长度是否大于5 if len(args) > 5: ret = True else: ret = False # 返回结果 return ret # 调用函数,测试结果 # myStr = 'h tyi ' myStr = ('fef',343,343,34,'fdef') # myStr = ['fef',343,343,34,'fdef',3] ret = lenCheck(*myStr) print(ret)
#写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
# 定义函数,输入动态参数 def noneCheck(*args): if args: # 判读输入中是否含有空内容 for i in args: #for 循环不能遍历空内容,会报错 if i: ret = False else: ret = True break else: ret = True # 返回结果 return ret # 调用函数,测试结果 # myStr = ('fef',343,343,34,'fdef','') myStr = ['fef',343,343,34,'fdef',3] # myStr = ' ' ret = noneCheck(*myStr) print(ret)
#写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# 定义函数,输入列表 def len2(*args): # 检查列表长度 argsLen = len(args) # 如果长度大与2,保留前两个长度的内容,其余删除 if argsLen > 2: args = args[0:2] # 如果长度小于或等于2,保持不变 # 返回新列表 return args # 调用函数,测试结果 myList = ['dfd',34,34,'fe'] ret = len2(*myList) print(ret,type(ret))
#写函数,检查获取列表或元组的对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
#定义函数,输入动态参数*args def oddValues(*args): # 创建新列表,赋值奇数位索引对应的元素 ret = [] i = 1 while i < len(args): ret.append(args[i]) i += 2 # 返回新列表 return ret #调用函数,测试结果 myTuple = ('fefe',34,'fef',343,'fedfe',54) print(myTuple,type(myTuple)) ret = oddValues(*myTuple) print(ret,type(ret))
#写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
#定义函数,输入字典 def valueLen2(**kwargs): nKwargs = {} # 遍历字典,检查每一个value的长度 for i,j in kwargs.items(): # 数字保持不变 if type(j) is int: nKwargs[i] = j # 字典,函数嵌套 elif type(j) is dict: nKwargs[i] = valueLen2(**j) # 字符串,数字不变,字符取前两位 elif type(j) is str: if not j.isdigit() and len(j)>2: nKwargs[i] = j[0:2] else: nKwargs[i] = j[:] # 其它类型, else: if len(j) > 2: nKwargs[i] = j[0:2] else: nKwargs[i] = j[:] # 返回结果 return nKwargs #调用函数,测试结果 # 测试用字典 myDic = {'k1':'1234','k2':'abcd','k3':['1','2','3'],'k4':('a','b',3,4),'k5':1234,'k6':{'t1':1234,'t2':'abcd','t3':[1,'a','b']}} print('原字典为:') for i,j in myDic.items(): print('{}:{}'.format(i,j)) # 调用函数 ret = valueLen2(**myDic) print('新字典为:') for i,j in ret.items(): print('{}:{}'.format(i,j))
#写函数,利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。
'''斐波那契数列(Fibonacci sequence),又称黄金分割数列、 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”, 指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)''' # 定义斐波那契数列,输入数值表示要取第几个数 def rabitNum(num): rabitList=[0,1] temp = 2 while temp <= num: rabitList.append(rabitList[temp-1]+rabitList[temp-2]) temp += 1 return rabitList[num] #调用函数,测试结果 for i in range(1,11): print(rabitNum(i)) print('第10个数为:',rabitNum(10))
浙公网安备 33010602011771号