我已成功制作了一个python密码系统,但密码只能是数字,而不是字母。以下是它背后的编码:
password = str(input("Please enter password to continue: "))
if password == 'dog':
print ("Welcome")
else:
print ("WRONG PASSWORD")
当密码为整数时,这不起作用。
编辑:抱歉将错误的代码添加到此网站。 我现在已经添加了对“狗”的引用。但它现在在终端
中给出了这个错误Please enter password to continue: dog
Traceback (most recent call last):
File "pass.py", line 1, in <module>
password = str(input("Please enter password to continue: "))
File "<string>", line 1, in <module>
NameError: name 'dog' is not defined
最终编辑:通过更改str(输入到str(raw_input)来修复它。这是因为我使用的是使用python 2的终端。有没有人知道如何使终端执行python 3而不是2?
答案 0 :(得分:3)
您正在尝试将string
类型传递给integer
,但这不起作用。您可以将字符串与int进行比较!
python中的字符串需要语音标记("STRING"
)。如果没有语音标记,python将假定它是整数或浮点数。
您的正确代码应为:
password = str(input("Please enter password to continue: "))
if password == "dog":
print ("Welcome")
else:
print ("WRONG PASSWORD")
编辑:
您似乎也在使用Python 2(因为您正在使用终端)。 Python 2中的input
函数尝试将输入作为python表达式而不是字符串。如果您使用的是Python 2,请尝试使用raw_input
。这将输入为字符串。
字符串语音标记仍然适用。您的代码如下:
password = str(raw_input("Please enter password to continue: "))
if password == "dog":
print ("Welcome")
else:
print ("WRONG PASSWORD")
答案 1 :(得分:0)
“类型”是这里的关键。
您将从用户(字符串)获得的输入转换为int
- 整数:
3 == '3'
那是错的! String永远不能等于整数。
我建议不要将其投放到int
,保留str
,它应该可以正常工作。
答案 2 :(得分:0)
使其不再出现:
password="dog"
password1=input("Enter password?")
if password==password1:
print("Welcome")
else:
print("Incorrect password")
但是要使其反复出现,只需执行以下操作:
condition = True
password="dog"
while condition:
password1=input("Enter password?")
if password==password1:
print("Welcome")
else:
print("Incorrect password")
答案 3 :(得分:-2)
如果您使用的是python 2,请尝试使用:
inp = str(raw_input('Please enter password to continue: '))
print("Welcome") if password == "password_here" else print ("WRONG PASSWORD")