python中的while True
建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统。
1、我自己最开始的写法:
1 d = {} #数据库字典,所有用户的用户名密码存储在此 2 5 name = input("请输入您的用户名:") 6 7 if name in d: 8 9 password = input("请输入您的密码") 10 11 if d[name] == password: 12 13 print('进入系统') 14 15 else: 16 17 print('您输入的密码错误,请重新输入') 18 19 else: 20 21 print('您输入的用户名不正确,请重新输入')
这个自己写的程序逻辑上貌似是对的:
——先让用户输入用户名,如果存在该用户名,就继续让用户输入密码,如果密码正确就进入系统。如果密码不正确就重新输入。
——如果不存在该用户名,提示“您输入的用户名不正确,请重新输入”
但是在实际运行过程中,如果用户输入的用户名和密码都正确,那自然是没有问题的。但是如果有一个输入不正确,那系统只会显示“您输入的用户名不正确,请重新输入”或“您输入的密码错误,请重新输入”。
也就是说,如果出现错误,没有返回到原来的地方,请求继续输入。
2、采用while True循环语句:
采用该语句的核心思想是如果出现错误的话,可以继续循环。
1 d = {} 2 3 4 while True: 5 6 name = input('请输入您的用户名:') 7 8 if name in d: 9 10 break 11 12 else: 13 14 print('您输入的用户名不存在,请重新输入') 15 16 continue 17 18 19 20 while True: 21 22 password = input('请输入您的密码:') 23 24 if d[name] == password: 25 26 print('进入系统') 27 28 break 29 30 else: 31 32 print('您输入的密码不正确,请重新输入') 33 34 continue
以上程序就可以达到所需目的:在输入用户名或密码错误的情况下返回到开始部分,请求继续输入。
while True 语句中一定要有结束该循环的break语句,否则会一直循环下去的。
当然,我们遇见过如果密码错误的话,提示您还有几次输入密码的机会。可以这样实现:
1 count = 5 2 3 while count: 4 5 password = input('请输入您的密码:') 6 7 if d[name] == password: 8 9 print('进入系统') 10 11 break 12 13 else: 14 15 count -= 1 16 17 print('您输入的密码不正确,还有{}次输入机会'.format(count)) 18 19 continue
我是一个小小的搬运工,让米粒变成仓廪