使用条件循环while的一种方法



我试图编程一个非常简单的代码,因为我开始在Python。我的问题是,我试图循环一段时间,如果输入没有承认的答案。我想从我的程序中得到的是,根据"是/否"回答打印一行。例如,如果您在输入中回答Yes,则打印Ok。如果你回答"不"-好吧,你说"不"。如果你用其他的答案来回答它又会回到输入。我尝试过在函数中获取while,然后在不是Yes或No的选项之后放置返回(我的意思是任何其他不是Yes或No的选项),但它不起作用,它甚至不打印第三个选项(告诉你不要使用任何其他不是Yes或No的单词的选项)。我一直试图通过阅读手册和其他帖子自己解决这个疑问,但我就是不知道我做错了什么。谢谢!
下面是我的代码:

def myFunction():
while True:
if answer == "yes":
print("Ok.")
break
elif answer == "no":
print("Ok, you said no.")
break
else:
print("Please, use yes or no.")
return answer

如果要在函数中推广这一点,则应该将获取有效响应的责任与响应的处理分开。

# Python 3.8+ for walrus operator
def ask(question,validAnswers=("yes","no")):
while (answer := input(question)) and answer not in validAnswers:
print(f"Please, answer with {validAnswers}: ")
return answer
r = ask("Do you want some tea? ")
if r == "yes":
print("We have some Earl Grey")
else:
print("No tea then.")

Return命令只能在函数中工作

根据文档:

return may only occur syntactically nested in a function definition, not within a nested class definition.

假设answer是输入的变量。var = (answer.get())是您要的线路。然后你做同样的事情,但像这样:

var = (answer.get())
while True:
if var == "yes":
print("Ok.")
break
elif var == "no":
print("Ok, you said no.")
break
else:
print("Please, use yes or no.")
return answer

我希望它能工作!

Answer没有定义,函数也没有输入,请查看对代码的修改,看看是否有帮助。

def myFunction(answer):
while True:
if answer == "yes":
print("Ok.")
break
elif answer == "no":
print("Ok, you said no.")
break
else:
print("Please, use yes or no.")
break
myFunction ("215456")

opcao = input("welcome wants to play (yes/no):")

if opcao == "yes":
print("nWelcome to the game")
print("n fill in your name to play:")
name = input("welcome to the game" + name)
print("welcome to the game" + name)
elif opcao == "no":
print("thank you and come back always")

else:
print("answer correctly with yes or no!!!")

相关内容

最新更新