在学习过程中,经常能遇到采用while True的用法。下面以一个例子进行说明:

建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统。

1、我自己最开始的写法:

d = {} #数据库字典,所有用户的用户名密码存储在此

name = input("请输入您的用户名:")
if name in d:
password = input("请输入您的密码")
if d[name] == password:
print('进入系统')
else:
print('您输入的密码错误,请重新输入')
else:
print('您输入的用户名不正确,请重新输入')

这个自己写的程序逻辑上貌似是对的:
——先让用户输入用户名,如果存在该用户名,就继续让用户输入密码,如果密码正确就进入系统。如果密码不正确就重新输入。
——如果不存在该用户名,提示“您输入的用户名不正确,请重新输入”

但是在实际运行过程中,如果用户输入的用户名和密码都正确,那自然是没有问题的。但是如果有一个输入不正确,那系统只会显示“您输入的用户名不正确,请重新输入”或“您输入的密码错误,请重新输入”。也就是说,如果出现错误,没有返回到原来的地方,请求继续输入。

2、采用while True循环语句:

采用该语句的核心思想是如果出现错误的话,可以继续循环。

d = {}

while Ture:
name = input('请输入您的用户名:')
if name in d:
break
else:
print('您输入的用户名不存在,请重新输入')
continue

while True:
password = input('请输入您的密码:')
if d[name] == password:
print('进入系统')
break
else:
print('您输入的密码不正确,请重新输入')
continue

以上程序就可以达到所需目的:在输入用户名或密码错误的情况下返回到开始部分,请求继续输入。

while True 语句中一定要有结束该循环的break语句,否则会一直循环下去的。

当然,我们遇见过如果密码错误的话,提示您还有几次输入密码的机会。可以这样实现:

count = 5
while count:
password = input('请输入您的密码:')
if d[name] == password:
print('进入系统')
break
else:
count -= 1
print('您输入的密码不正确,还有{}次输入机会'.format(count))
continue
---------------------
作者:geerniya
来源:CSDN
原文:https://blog.csdn.net/geerniya/article/details/77524173
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. Windows Server 2012中安装Active Directory域服务
  2. Linux开机后 systemd 自动启动 ceph osd mon进程
  3. 初识 MySQL 5.6 新特性、功能
  4. HDU 5813 Elegant Construction (贪心)
  5. startActivityForResult
  6. Python入门100例题
  7. BMP彩色转成黑色二值图
  8. 安装zookeeper集群
  9. IOS GCD图片数据异步下载,下载完成后合成显示
  10. Hibernate的映射文件中基于主键的双向1对1的关联
  11. [转]ObjectARX二次开发vs编译器版本ARX版本对应说明
  12. JS学习笔记——JavaScript继承的6种方法(原型链、借用构造函数、组合、原型式、寄生式、寄生组合式)
  13. mysql也有complex view merging 这个特性(5.6 , 5.7)
  14. Spring Framework学习要点摘抄
  15. jmeter的安装和配置
  16. tar命令加密压缩
  17. Python全栈之路----函数进阶----生成器
  18. Luogu P1546 最短网络 Agri-Net
  19. linux下WEB服务器安装、配置VSFTP
  20. Gym .101933 Nordic Collegiate Programming Contest (NCPC 2018) (寒假gym自训第四场)

热门文章

  1. $.extend和$.fn.extend详解
  2. (转)centos7安装telnet服务
  3. fidder监控请求响应时间和请求IP
  4. Flutter移动电商实战 --(47)详细页_Flutter_html插件的使用
  5. uploadify HTTP 302 错误如何解决?
  6. python动态赋值-把字符串转为变量名
  7. ubuntu 12.04 以固定 IP 地址连接网络并配置DNS
  8. Qt编写控件属性设计器2-拖曳控件
  9. 123457123456---com.threeObj3.BabyShizi02--- 宝宝识字02
  10. Java点滴-List<Integer> list; 中尖括号的意思