【问题标题】:Stop a while loop from running a certain amount of times停止 while 循环运行一定次数
【发布时间】:2014-11-20 14:38:52
【问题描述】:

我几乎整个上午都在寻找可以帮助我的代码,但很难找到类似的代码! 我必须创建一个要求用户输入用户名和密码的银行系统。 如果输入 3 次,系统将关闭。 到目前为止,我已经让我的程序知道密码/用户名是否正确。 现在我只需要弄清楚如何在 3 次错误尝试后让它运行和停止。 非常感谢对此提供的任何帮助!谢谢

代码:

username = "bank_admin"
password = "Hytu76E"

usernameGuess = raw_input("Please enter your username: ")
passwordGuess = raw_input("Please enter the password: ")


while (username != usernameGuess or password != passwordGuess):
    print ("Please try again.")

    usernameGuess = raw_input("Please enter your username: ")
    passwordGuess = raw_input("Please enter your password: ")

print ("Password accepted. Access Authorized.")

【问题讨论】:

  • 第一:永远不要以纯文本形式存储密码,使用哈希。第二:退出while循环是最基本的问题之一,所以如果你搜索了一上午,你要么撒谎,要么需要提高搜索技巧。
  • 如果我将您问题的确切标题粘贴到 Google 中,第二次点击是 the answer to your question, on SO, in Python(当然,第一次点击是您的问题本身)。很难相信你在谷歌上付出了半心半意的努力。
  • 我刚刚做了同样的事情,并且我已经访问了大多数返回的网站!我已经编辑了我的代码,就像我得到的答案一样,只是不断地出错!我不是最擅长编程,仍然在努力掌握它的窍门对不起

标签: python loops


【解决方案1】:

您可以添加一个计数器来查看他们猜错密码的次数。然后将其用作while 循环中的另一个条件。

incorrectGuesses = 0
correct = False
while (not correct and incorrectGuesses < 4):
    usernameGuess = raw_input("Please enter your username: ")
    passwordGuess = raw_input("Please enter your password: ")
    correct = ((username == usernameGuess) and (password == passwordGuess))
    if not correct:
        print ("Please try again.")
        incorrectGuesses += 1

【讨论】:

  • 正确 = false 行导致错误,更改为 False 仍会产生错误!
  • @YvonneHiggins 我的错误,在 Python 中应该是 False,我通常用 C++ 编程,其中文字是 false。只需大写 F。
猜你喜欢
  • 2021-07-13
  • 2014-12-18
  • 2015-05-17
  • 2011-11-02
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
相关资源
最近更新 更多