1、整理函数相关知识点,写博客
2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func1(argv): li = [] for i in range(len(argv)):#循环取奇数 if i %2 == 1: li.append(argv[i]) return li print(func1([1,2,3,4]))
def func(argv):return argv[1::2]#切片方法 print(func([1,2,3,4]))
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def func(argv): if len(argv) > 5: return True else:return False print(func('sjfjkskjf'))
def func(argv): return True if len(argv) > 5 else False print(func('jsajdjsaka'))
def func(argv): return len(argv) > 5 print(func('adajjadj'))
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def func(argv): li = [] if len(argv) > 2: li = argv[:2] else: li = argv return li print(func([2,4,4,3,2]))
def func(argv): return argv[:2] if len(argv) > 2 else argv print(func([1,3,4,5]))
def func(argv): return argv[:2] print(func([1,2,3,4]))
5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
def func(argv): dic = {'digit':0,'alpha':0,'space':0,'other':0} for i in argv: if i.isdigit(): dic['digit'] += 1 elif i.isalpha(): dic['alpha'] += 1 elif i.isspace(): dic['space'] += 1 else: dic['other'] += 1 return '数字%d,字母%d,空格%d,其他%d'%(dic['digit'],dic['alpha'],dic['space'],dic['other']) print(func('ajdj2384234 大家安静**&&'))
7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func(argv): for i in argv: if len(argv[i]) > 2: argv[i] = argv[i][:2] return argv print(func({"k1": "v1v1", "k2": [11,22,33,44]}))
def func(argv): for i in argv: argv[i] = argv[i][:2] return argv print(func({"k1": "v1v1", "k2": [11,22,33,44]}))
8、写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b): if a>b: return a else: return b print(func(11,33))
def func(a,b): z=a if a>b else b return z print(func(22,444))
def max_min(a,b): return a if a>b else b print(max_min(444,55))
9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。
import os def File_modification(path,old,new): with open(path,encoding='utf-8')as f1,\ open(path+'.bak',encoding='utf-8',mode='w') as f2: for i in f1: new_i = i.replace(old,new) f2.write(new_i) os.remove(path) os.rename(path+'.bak',path) return True print(File_modification('a.txt','alex','SB'))
10、写一个函数完成三次登陆功能,再写一个函数完成注册功能(进阶)
def register(): while True: flag = True username = input('请输入用户名:') with open('register_msg',encoding='utf-8')as f1: for i in f1: li = i.strip().split() if username == li[0] or username == ' ': print('用户名已存在,请重新输入') break else: password = input('请输入密码:') with open('register_msg',encoding='utf-8',mode='a')as f2: f2.write('\n{}\t{}'.format(username,password)) print('注册成功') return login() def login(): i = 0 while i <3: i += 1 username = input('请输入用户名:') password = input('请输入密码:') with open('register_msg',encoding='utf-8') as f2: for line in f2: line = line.strip() line_list = line.split(' ') if username == line_list[0] and password == line_list[1]: return True def func1(*args,**kwargs): print('欢迎登录') flag = True while flag: choice = input('1,登录,2,注册,Q,退出') if choice == '1': is_login = login() if is_login: print('登录成功') else: print('登录失败') flag = False if choice == "2": register() flag = False elif choice == 'Q': exit('bye') flag = False func1()