生成器与for循环的纠葛
Posted cnhk1949
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器与for循环的纠葛相关的知识,希望对你有一定的参考价值。
我先放例题了
v = [lambda :x for x in range(10)] print(v) print(v[0]) print(v[0]())
lambda 参数 :返回值
拆解:
f = lambda :x for x in range(10)
现在我们称 f 这个函数 参数为零 返回值是 x for x in range(10)
print(lambda :x for x in range(10)) #结果 <generator object <genexpr> at 0x037B6900>
上面这个是一个已经循环完了的生成器
例题
登陆注册
在读取文件内容时,可以用生成器
# import hashlib # import os # def open_file(): # with open(‘info‘,encoding=‘utf-8‘) as f1: # for line in f1: # v1,v2 = line.split(‘ ‘) # yield v1,v2 这里 # def md5(password): # md5 = hashlib.md5(‘*‘.encode(‘utf-8‘)) # md5.update(password.encode(‘utf-8‘)) # return md5.hexdigest() # def register(): # user = input(‘user‘) # psw = input(‘password‘) # for username,password in open_file(): 这里 # if user == username: # print(‘用户名已经存在‘) # break # else: # with open(‘info‘,‘a‘,encoding=‘utf-8‘) as f2: # f2.write(user+‘ ‘) # f2.write(md5(psw)) # print(‘注册成功‘) # def login(): # user = input(‘user‘) # psw = input(‘password‘) # for username,password in open_file(): 这里 # if user == username and md5(psw) == password: # print(‘登陆成功‘) # break # else: # print(‘登陆错误,没有找到用户名‘) # register() # login()
以上是关于生成器与for循环的纠葛的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围
如何使用 .join 和 for 循环制作随机十六进制代码生成器?