为什么只有输入数字才能输入?

时间:2016-10-27 08:06:07

标签: python passwords python-2.x

我已成功制作了一个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?

4 个答案:

答案 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")