1.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def func(dic):
for k in dic:
if len(dic[k]) > 2:
dic[k] = dic[k][:2]
return dic
dic = {"name": "风光无极", "adress": "3435", "s": "erre34", "s": [2, 3, 4, 5], "s": "3"}
print(func(dic))
2.写函数,接收两个数字参数,并返回比较大的那个数字。
def func(x, y):
return x if x > y else y
print(func(5, 8))
3.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码。
FLAG = False
def login(func):
def inner(*args, **kwargs):
global FLAG
if FLAG:
ret = func(*args, **kwargs)
return ret
else:
username = input('请输入用户名:')
password = input('请输入密码:')
if username == '林彬' and password == '123':
FLAG = True
ret = func(*args, **kwargs)
return ret
else:
print("用户名或密码错误")
return inner
@login
def name():
print("赖玉英")
@login
def love():
print('大狗屎')
name()
love()
4.编写装饰器,为多个函数加上记录调用功能,要求每次调用函数都将被调用的函数名写入文件。
def log(func):
def inner(*args, **kwargs):
ret = func(*args, **kwargs)
with open('log', 'a', encoding='utf-8') as f:
f.write(func.__name__ + '
')
return ret
return inner
@log
def love():
print('赖狗屎我爱你')
@log
def love2():
print('赖狗屎吃狗屎')
@log
def love3():
print('赖美女我爱你')
love3()
love2()
love()
love3()
5.监听文件输入的列子。
def func(filename):
with open(filename, encoding='utf-8') as f:
while 1:
line = f.readline()
if line.strip():
yield line.strip()
g = func('file')
for i in g:
print(i)