所以我试图使用raw_input
获取程序的输入,我有:
def Input1(time):
userInput = raw_input()
print ("Please choose either morning or night: ")
if userInput != "morning" or "night":
print ("Invalid entry. Select again")
Input1(time)
if userInput in "morning" or "night":
Input2(year)
第二个if
语句促使它进行更多编程。
当我尝试运行此程序时,它会运行一切,但它不会要求用户输入任何内容。任何想法?
虽然没有显示,但所有内容都会在def Input1(time):
答案 0 :(得分:1)
这段代码很糟糕,原因很多:
def Input1(time):
函数名称不应以大写字母开头。
userInput = raw_input()
print ("Please choose either morning or night: ")
简单地写:userInuput = raw_input(“请选择早上或晚上:”)
if userInput != "morning" or "night":
这相当于:
if userInput != "morning" or True:
总是如此......
print ("Invalid entry. Select again")
Input1(time)
在这里,你做一个递归调用,再次询问......但没有任何返回,这意味着将多次调用以下内容(实际上没有,因为你无法退出该函数)。
if userInput in "morning" or "night":
Input2(year)
同样的错误,应该是:
if userInput in ["morning", "night"]:
或
if userInput == "morning" or userInput == "night":
答案 1 :(得分:0)
查看运算符的序列。首先,您要求用户输入;之后,打印“请选择”提示。因此,在用户输入值之前,不会显示此提示。正确的方法:
userInput = raw_input("Please choose either morning or night:")
另外,据我所知,if
语句中的条件不正确。请参阅有关in
和or
运算符的Python文档。
答案 2 :(得分:0)
您可以在raw_input
来电中提示:
userInput = raw_input("Please choose either morning or night: ")
对于这个逻辑:if userInput != "morning" or "night"
你真的想要if userInput != "morning" and userInput != "night"
。编写它的另一种方法是`如果userInput不在('morning','night')。类似的逻辑适用于你的第二个if语句。
答案 3 :(得分:0)
您在运行代码时实际上是在调用Input1(时间)吗?如果你不打电话,它将无法运行。
答案 4 :(得分:-2)
raw_input()
已重命名为input()