Python练习题
Python热爱者 人气:01.写函数计算传入数字参数的和(动态传参)
def func_sum(x, y): return x + y #或 lambda x,y:x+y
2.写函数用户传入修改的文件名
用户传入修改的文件名且与要修改的内容,执行函数,完成整个文件的批量修改操作
import os def modify_file(file_name,content,newstr): new_file_name = '%sfile_name' %'new.' f_new = open(new_file_name, 'w') if os.path.exists(file_name): with open(file_name,'r+') as f: for line in f: if content in line: line = line.replace(content, newstr) f_new.write(line) f_new.close() os.rename(new_file_name, file_name) else: exit('file is not exist !!!')
3.写函数检查用户传入的对象
用户对象:(字符串、列表、元组)的每一个元素是否含有空内容。
def isNull(p_obj): for item in p_obj: if item.strip() == '': return True else: return False a = [' ','1','2'] b = ['5','1','2'] c = 'ab c' print(isNull(a)) print(isNull(c)) print(isNull(b))
4.写函数检查传入字典的每一个value的长度
例:如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def two_len(**kwargs): for k, v in kwargs.items(): if len(v) > 2: kwargs[k] = v[:2] return kwargs print(two_len(x='12', y='345', c='byw'))
5.闭包
内部函数包含对外部作用域而非全局作用域变量的引用,该内部函数称为闭包函数
6.写函数返回一个扑克牌列表
返回的这个扑克牌列表里面有52项,每一项是一个元组
例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃A’)]
def cards(): type_li = ['红心', '草花', '黑桃','梅花'] num = list(range(2, 11)) num.extend('JQKA') return [(x, y) for x in type_li for y in num ] print(len(cards()), cards())
7.写函数传入n个数且返回字典
字典{‘max’:最大值,’min’:最小值}
def max_min_dic(*args): min_v = min(args) max_v = max(args) return {'max':max_v,'min':min_v} print(max_min_dic(2,3,6,7,9))
8.写函数传入一个参数n且返回n的阶乘
from functools import reduce def factorial(n): if n == 0: return 0 elif n == 1: return 1 else: return reduce(lambda x, y: x*y ,list(range(1, n))) print(factorial(5))
9.编写装饰器
为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
user_dic={ 'user':None, 'is_authenticate':False } def read_file(): with open('USER.TXT','r') as f: s = f.read().strip(',') user_info = eval(s) return user_info def auth(user_info): username = input("account:").strip() password = input("password:").strip() print(user_info) if username in user_info['name'] and password in user_info['password']: print("success") user_dic['user'] = username user_dic['is_authenticate'] = True return user_dic else: print("Failure") return '' def login_required(func): def inner(*args, **kwargs): if args[0].get('is_authenticate'): ret = func(*args, **kwargs) else: exit('need authenticate') return ret return inner @login_required def print_info(acc_data): print('进入') user_info = read_file() user_data = auth(user_info) print(user_data) print_info(user_data)
加载全部内容