我的Python代码中的输入存在问题

时间:2017-12-05 00:11:52

标签: python

所以我是python的初学者,我试图让输入功能起作用。在我看来,Python并不是在接受我提供的数据,就像它没有正确读取用户输入一样。这是我的代码:

var = input
    input("press ENTER to choose an app")
    if var==1:
        clock() 
    elif var==2:
        oshelp()
    elif var==3:
        ebooks()
    elif var==4:
        what_is_new()
    else:
        print("Application Not Found.")

现在,IDLE只打印"未找到应用程序"即使我输入有效号码,我也不确定原因。谁能帮我这个? (请附上例子)。谢谢!

4 个答案:

答案 0 :(得分:2)

您的问题出现在第一行

var = input

您将var设置为等于函数input,而不是返回值。

你如何拥有它,如果你写x = var("Enter: "),这将与x = input("Enter: ")一样。

您确实需要执行var = input("Enter: "),但这会返回string类型的值,因此当您将此值与1进行比较时,即使用户输入{{1}它将返回false,因为它们是不同的数据类型。

您可以将输入转换为1值,或将输入的值与integer进行比较。

strings

var = input("Enter: ")
if var == "1":

我个人会使用前一个,因为如果输入非int值,程序不会崩溃。

希望这有帮助!

答案 1 :(得分:0)

python输入返回一个字符串,你正在比较int。如果您想比较整数,那么:

inputInt = int(input("please ENTER"))

或者你可以使用eval

inputInt = eval(input("please ENTER"))

小心eval,因为它可能会导致问题,但它会为你处理数字和浮点数。

答案 2 :(得分:0)

输入将是一个字符串而不是整数。您可以将条件从检查var == 1更改为var == "1"等。或者您可以使用int(input())从输入中创建一个int。但是要注意输入不能转换为int的情况,在这种情况下会抛出异常。

答案 3 :(得分:0)

input会返回string,但您需要针对ints进行检查。一种方法是检查输入,如here所述。您也可以将它与字符串进行比较:

if var == '1':

或直接将输入转换为int

var = int(input(...))

小心使用最后一个,因为如果用户没有输入有效的int,它将会失败。