函数
1.对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如: f(13) = 1**2 + 3**2 = 10 f(207) = 2**2 + 0**2 + 7**2 = 53 2.定义一个函数,返回传入字符串中的【数字】、【字母】和【其他字符】的个数 a = '12f*wc%e8e^$' 3.定义一个函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 结果为 [ ('红心', 2), ('红心', 3), ... ('红心', 'A'), ('方块', 2), ('方块', 3), ... ('方块', 'A'), ('黑桃', 2), ('黑桃', 3), ... ('黑桃', 'A'), ('梅花', 2), ('梅花', 3), ... ('梅花', 'A'), ] 4.定义一个函数 f(n),传入一个参数n,返回n的阶乘 例如 f(5) => 1*2*3*4*5 f(8) => 1*2*3*4*5*6*7*8 5. 列表 li = ['alex', 'egon', 'smith', 'pizza', 'alen'], 用 lambda表达式 以列表中每个元素的 第二个字母倒序排序;提示(用列表的 sort 方法) 6、用递归函数找出最顶级的地区名 a = [ {'id':1, 'name':'广东省', 'pid':0}, {'id':2, 'name':'湖北省', 'pid':0}, {'id':3, 'name':'湖南省', 'pid':0}, {'id':4, 'name':'广州市', 'pid':1}, {'id':5, 'name':'深圳市', 'pid':1}, {'id':6, 'name':'武汉市', 'pid':2}, {'id':7, 'name':'襄阳市', 'pid':2}, {'id':8, 'name':'长沙市', 'pid':3}, {'id':10, 'name':'天河区', 'pid':4}, {'id':11, 'name':'罗湖区', 'pid':5}, {'id':12, 'name':'武昌区', 'pid':6}, {'id':13, 'name':'樊城区', 'pid':7}, {'id':14, 'name':'芙蓉区', 'pid':8}, ] 7、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来 比如键盘依次输入5,敲回车,4,敲回车,3,敲回车,2,敲回车,1。回车后输出12345
-----------------答案-------------------
一 def f(num): sum = 0 for i in str(num): sum += int(i)**2 return sum print(f(13)) 二 a = '12f*wc%e8e^$' def run(a): s = 0 z = 0 q = 0 for i in a: if i.isdigit() : s+=1 elif i.isalpha(): z+=1 else: q+=1 return s,z,q s,z,q = run(a) print(s,z,q) 三 suit = ['红心','方块', '黑桃', '梅花'] list1 = list(range(2,11)) list2 = ['J', 'Q', 'K', 'A'] list1.extend(list2) new_list = [(x,y) for x in suit for y in list1] print(new_list) 四 def f(num): if num == 1: return 1 else: return num * f(num - 1) print(f(5)) #1*2*3*4*5 list = [] def f(num): for i in range(1,num+1): list.append(str(i)) return list print(f(5)) print('*'.join(list)) 五 li = ['alex', 'egon', 'smith', 'pizza', 'alen'] li.sort(key=lambda x:x[1], reverse = True) print(li)