我对“Google”,“YouTube”,“Facebook”和“Stack Overflow”进行了一些研究,但我还没找到我想要的东西。所以,我需要你的指导。 :)
我希望程序询问用户输入“PASSWORD”,每次用户输入错误的密码,程序再次询问密码,并再次,直到用户 输入正确的密码。假设密码就像“abc123”一样简单。
所以,我启动程序并要求输入:“PASSWORD:”。如果用户键入“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: ')
但是我要么输入一次或两次密码,要么我坚持无限循环。
答案 0 :(得分:2)
试试这个:
passwordInput=raw_input('PASSWORD: ')
password='abc123'
while True:
if password == passwordInput:
print('GOOD PASSWORD')
break
else:
print('BAD PASSWORD')
passwordInput=raw_input('PASSWORD: ')
答案 1 :(得分:1)
您可以在以下几行中执行以下操作。
password='abc123'
while(True):
passwordInput=input('PASSWORD: ')
if(passwordInput==password):
print("Good password")
break
else:
print("Bad password")
答案 2 :(得分:0)
这是我的解决方案:
password = 'abc123'
while True:
passwordInput = input('PASSWORD: ')
if password == passwordInput:
print('GOOD PASSWORD')
break
else:
print('BAD PASSWORD')
与您的不同之处有何不同?首先,您可以看到我只有一个input()
来电,这通常是一个好主意,因为那时您只需要在一个地方检查密码。请注意,我使用if
代替while
进行测试。
在你的第二个例子中,你有while False:
。这可能是真的吗?不,所以它不会被执行。
另请注意,我使用了更多的空格。这不会减慢程序的速度,使其更容易阅读。另请参阅PEP008
现在你有了它的工作,只是为了好玩,考虑改进。通常情况下,您不希望密码在输入时显示,但有一个模块:getpass
- 它是标准库的一部分,因此您不需要输入密码。我需要下载任何东西。
将import getpass
添加到脚本的顶部。而不是input
使用getpass.getpass
,在程序的相同位置,使用相同的参数。现在它不会回显用户输入的密码。
getpass
是模块名称,getpass
也是函数名称,因此getpass.getpass('PASSWORD: ')
表示在getpass()
模块中执行getpass
函数。我们在Python中使用了很多模块,因此值得习惯使用它们。您可以找到文档here,请注意还有getpass.getuser()
可供使用。