所以我是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只打印"未找到应用程序"即使我输入有效号码,我也不确定原因。谁能帮我这个? (请附上例子)。谢谢!
答案 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
,它将会失败。