1 1.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 2 def new(args): 3 a = [] 4 for I in range(1,len(args),2): 5 a.append(args[I]) ### return args[0::2] 6 return a 7 8 ret = new([10,11,12,13,14,15,16]) 9 print(ret) 10 11 2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 12 13 def five(args): 14 if len(args) > 5: 15 return 'yes' 16 else: 17 return 'no' 18 19 ret = five('世上只有') 20 print(ret) 21 22 3.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 23 def two(args): 24 a = [] 25 if len(args) > 2: ### return args[0:2] 26 for I in range(2): 27 a.append(args[I]) 28 else: 29 a.append(args) 30 return a 31 32 ret = two([1,2,3]) 33 print(ret) 34 35 4.写函数,计算传入函数的字符串中,[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果 36 def jisuan(args): 37 shuzi = 0 38 alpha = 0 39 space = 0 40 qita = 0 41 for I in args: 42 if I.isdigit(): 43 shuzi += 1 44 elif I.isalpha(): 45 alpha += 1 46 elif I.isspace(): 47 space += 1 48 else: 49 qita += 1 50 return shuzi,alpha,space,qita 51 52 ret = jisuan("12345 ") 53 print(ret) 54 55 56 ### 利用字典方法来解决: 57 58 abc = "sa vw,vwv.avvv" 59 dic = { 'digit':0,'alpha':0,'space':0,'qita':0} 60 for I in abc: 61 if I.isdigit(): 62 dic['digit'] += 1 63 elif I.isalpha(): 64 dic['alpha'] += 1 65 elif I.isspace(): 66 dic['space'] += 1 67 else: 68 dic['qita'] += 1 69 print(dic) 70 71 5.写函数,接收两个数字参数,返回比较大的那个数字。 72 73 def bijiao(num1,num2): 74 return max(num1,num2) 75 num = input('请输入两个数字,逗号隔开:').split(',') 76 ret = bijiao(num[0],num[1]) 77 print(ret) 78 79 6.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 80 dic = {“k1”: “v1v1”, “k2”: [11,22,33,44]} 81 PS:字典中的value只能是字符串或列表 82 83 def two(args): 84 for k,v in args.items(): 85 if len(v) > 2: 86 args[k] = args[k][0:2] 87 return args 88 ret = two({ 'k1': 'v1v1', 'k2': [11, 22, 33, 44]}) 89 print(ret) 90 91 用字典的方法解决: 92 93 # dic = {'k1': 'v1v1', 'k2': [11, 22, 33, 44]} 94 # for k,v in dic.items(): 95 # if len(v) > 2: 96 # dic[k] = dic[k][0:2] 97 # print(dic) 98 99 100 7.写函数,此函数只接收一个参数且此参数必须是列表数据类型,101 此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。102 例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。103 104 def fan(args):105 a = {}106 for i in range(len(args)):107 a[i] = args[i]108 return a109 110 ret = fan([11,22,33])111 print(ret)112 113 8.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。114 用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。115 116 def inp(name,sex,age,xueli):117 f = open('student_msg',mode='a',encoding='utf-8')118 f.write('{}\t{}\t{}\t{} \n'.format(name,sex,age,xueli))119 print('追击成功')120 return121 122 na = input('输入名字:')123 se = input('输入性别:')124 ag = input('输入年龄:')125 xe = input('输入学历:')126 inp(na,se,ag,xe)127 128 9.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。129 130 def inp(name,age,xueli,sex = '男'):131 f = open('student_msg',mode='a',encoding='utf-8')132 f.write('{}\t\t{}\t\t{}\t\t{} \n'.format(name,age,xueli,sex))133 print('追击成功')134 return135 136 while True:137 na = input('输入名字:')138 if na.strip().lower() == 'q':139 break140 else:141 ag = input('输入年龄:')142 xe = input('输入学历:')143 se = input('输入性别:')144 if se == '女':145 inp(na,ag,xe,se)146 else:147 inp(na,ag,xe)148 149 10.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。150 151 def xiu(file,file2,qian,hou):152 with open(file,mode='r+',encoding='utf-8') as f1,open(file2,mode='w',encoding='utf-8') as f2:153 for line in f1:154 if qian in line:155 line = line.replace(qian,hou)156 f2.write(line)157 import os158 os.remove(file)159 os.rename(file2,file)160 return161 file1 = input('请输入你要修改的文件带地址:')162 file2 = input('请随意输入一个文件名,重复即可:')163 name1 = input('请输入你要替换的关键字:')164 name2 = input('请输入你想要替换的关键字:')165 xiu(file1,file2,name1,name2) 166 167 11.写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)168 169 def login():170 count = 0171 while count < 3:172 username = input('请输入用户名:')173 password = input('请输入密码:')174 if username.strip() == 'jiu' and password.strip() == '123456':175 print('登陆成功')176 break177 else:178 last = 2 - count179 print('用户或密码名错误,剩余次数',last)180 count += 1181 182 def register():183 username = input('请输入注册的用户名:')184 password = input('请输入要注册的密码:')185 with open('user_msg',mode='a',encoding='utf-8') as f1:186 f1.write('{}:{} \n'.format(username,password))187 print('注册成功用户名和密码为:'+ username+password)