zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    常用设计模式
    文件上传相关报错: The current request is not a multipart request或is a MultipartResolver configured?
    Intellij IDEA 与 Gitlab 实现代码上传与下载
    Oracle两表关联,只取B表的第一条记录
    notepad++ 调整行间距
    Ubuntu18.04直接安装python3.7或者升级自带的python3.6版本之后导致终端无法打开的解决办法
    黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统
    Windows Ping | Tracert 's Bat 脚本并行测试
    centos 7 修改 sshd | 禁止 root 登录及 sshd 端口脚本定义
    C语言中malloc函数的理解
  • 原文地址:https://www.cnblogs.com/huigebj/p/11298332.html
Copyright © 2011-2022 走看看