加密练习题
#注册时输入n(不区分大小写)即可完成注册
def funs(a):
import hashlib
obj = hashlib.md5(‘hjafsdkada‘.encode(‘utf-8‘))
obj.update(a.encode(‘utf-8‘))
result = obj.hexdigest()
return(result)
user_list = []
def register():
print(‘*******用户注册*********‘)
while True:
user = input(‘请输入注册用户名:‘)
if user.lower() == ‘n‘:
return
pwd =input(‘请输入注册密码:‘)
if pwd.lower()=="n":
return
temp = {‘username‘:user,‘password‘:funs(pwd)}
user_list.append(temp)
def login():
print("*******用户登录*********")
login_name =input(‘输入登录用户名:‘)
login_pwd =input(‘输入登录密码:‘)
for item in user_list:
if login_name == item[‘username‘] and funs(login_pwd) == item[‘password‘]:
return True
register()
result=login()
if result:
print(‘登录成功‘)
else:
print(‘登录失败‘)
不显示密码登录
import getpass
pwd = getpass.getpass(‘请输入密码‘)
print(pwd)
函数闭包
#练习1
funs_list = []
for i in range(10):
funs_list.append(lambda x:x+i)
#此时因为函数并未执行,所以在列表中的是九个纯函数,但此时i的值为9
for j in range(0,len(funs_list)):
result = funs_list[j](j)
print(result)
#输出结果为:9 10 11 12...........
#练习2
funs_list = []
for i in range(10):
funs_list.append(lambda x:x+i)
#此时i的值为9
for i in range(0,len(funs_list)):#此时for循环时使i从0开始,便修改了原来为9的i
result = funs_list[i](i)
print(result)
#输出结果为:0 2 4 6 8 12...........
#练习3
def f1():
print(‘f1‘)
return f3() #此处先把f3函数执行后,再返回f3函数的返回值即None
def f2():
print(‘f2‘)
return f1
def f3():
print(‘f3‘)
func = f2()
result = func()
print(result
函数注意事项
def func():
print(‘dvge‘)
v1 = func() #此处会执行print,v1是接受返回值并执行函数不要弄混了
print(v1)
函数的嵌套
def func(name):
v = lambda x:x + name # 注意:此处为函数嵌套函数
return v
v1 = func("杨子列")
v2 = func("扬子鳄")
v3 = v1(‘金角‘)
v4 = v2 (‘银角‘)
print(v1,v2,v3,v4)
原文:https://www.cnblogs.com/yangzilaing/p/13232862.html