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 a
109
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 return
121
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 return
135
136 while True:
137 na = input('输入名字:')
138 if na.strip().lower() == 'q':
139 break
140 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 os
158 os.remove(file)
159 os.rename(file2,file)
160 return
161 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 = 0
171 while count < 3:
172 username = input('请输入用户名:')
173 password = input('请输入密码:')
174 if username.strip() == 'jiu' and password.strip() == '123456':
175 print('登陆成功')
176 break
177 else:
178 last = 2 - count
179 print('用户或密码名错误,剩余次数',last)
180 count += 1
181
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)