python学习——while True的用法
在学习过程中,经常能遇到采用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
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- Windows Server 2012中安装Active Directory域服务
- Linux开机后 systemd 自动启动 ceph osd mon进程
- 初识 MySQL 5.6 新特性、功能
- HDU 5813 Elegant Construction (贪心)
- startActivityForResult
- Python入门100例题
- BMP彩色转成黑色二值图
- 安装zookeeper集群
- IOS GCD图片数据异步下载,下载完成后合成显示
- Hibernate的映射文件中基于主键的双向1对1的关联
- [转]ObjectARX二次开发vs编译器版本ARX版本对应说明
- JS学习笔记——JavaScript继承的6种方法(原型链、借用构造函数、组合、原型式、寄生式、寄生组合式)
- mysql也有complex view merging 这个特性(5.6 , 5.7)
- Spring Framework学习要点摘抄
- jmeter的安装和配置
- tar命令加密压缩
- Python全栈之路----函数进阶----生成器
- Luogu P1546 最短网络 Agri-Net
- linux下WEB服务器安装、配置VSFTP
- Gym .101933 Nordic Collegiate Programming Contest (NCPC 2018) (寒假gym自训第四场)
热门文章
- $.extend和$.fn.extend详解
- (转)centos7安装telnet服务
- fidder监控请求响应时间和请求IP
- Flutter移动电商实战 --(47)详细页_Flutter_html插件的使用
- uploadify HTTP 302 错误如何解决?
- python动态赋值-把字符串转为变量名
- ubuntu 12.04 以固定 IP 地址连接网络并配置DNS
- Qt编写控件属性设计器2-拖曳控件
- 123457123456---com.threeObj3.BabyShizi02--- 宝宝识字02
- Java点滴-List<;Integer>; list; 中尖括号的意思