【发布时间】:2018-03-10 08:07:55
【问题描述】:
我对“Google”、“YouTube”、“Facebook”和“Stack Overflow”进行了一些研究,但没有找到我想要的东西。所以,我需要你的指导。 :)
我希望程序要求用户输入“密码”,每次用户输入错误的密码时,程序都会一次又一次地询问密码,直到用户 键入正确的密码。假设密码就像“abc123”一样简单。
所以,我启动程序并要求输入:“密码:”。如果用户键入“abc123”,则程序会打印“GOOD PASSWORD”。如果用户键入任何不是“abc123”的内容,则程序将打印“BAD PASSWORD”。就这么简单……暂时。
我的最佳尝试:
#SECTION1_ASKING
passwordInput=input('PASSWORD: ')
password='abc123'
while password == passwordInput:
print('GOOD PASSWORD')
break
else:
print('BAD PASSWORD')
passwordInput=input('PASSWORD: ')
#SECTION2_RE-ASKING
while False:
while password == paswordInput:
print('GOOD PASSWORD')
else:
print('BAD PASSWORD')
passwordInput=input('PASSWORD: ')
但我要么让密码询问一次或两次,要么陷入无限循环。
【问题讨论】:
-
你说两个答案都有效,但一个使用
raw_input(),即 Python 2,一个使用input(),即 Python 3(input()的 Python 2 版本有不同采用)。您使用的是哪个版本的 Python? -
while和for是循环结构,您似乎将它们与if混淆了,或者至少将它们混合在一起,因为它们都可以与else结合使用。顺便说一句,一个建议:先用通俗易懂的语言写一个计划,这样即使没有任何编程知识,任何人都可以理解并遵循它。将此计划保存在代码的 cmets 中。 -
我都试过了。我正在使用 Python 3.x。我知道“raw_input()”在 Python 3.x 中是“input()”,所以我在运行代码之前更改了该部分。
-
请阅读How do I ask a good question?。您可以在调试器中观看小程序的执行,以了解哪里出了问题。有这方面的在线工具以及PythonTutor
-
嗯,对于我作为初学者的理解,
if运行一次代码,while一遍又一遍地运行代码,for运行代码一定次数,else只运行代码而不是在if、while或for代码上设置的条件。既然我有我的问题的答案,我将更深入地分析我的错误。我觉得我需要更多地练习这些(if、while、for)并在继续之前熟悉使用它们。
标签: python input while-loop