英文:
Input question being asked multiple times because of multiple IF statements - Loop never closes(edited)
问题
我是新手学习Python,试图理解所有部分如何协同工作。我尝试编写一个脚本,根据用户的输入打印不同的消息。因为我将问题定义在一个函数中,我发现它会在每个if语句中打印,直到找到正确的答案。我想知道如何只打印一次问题,然后根据用户的输入显示正确的行。
使用变量,如果我输入“4”,循环永远不会关闭。
def quest2():
q2 = input("\n你喜欢什么饮料? \n\t1. 啤酒 \n\t2. 葡萄酒 \n\t3. 伏特加 \n\t4. 我不喝酒(回答:1、2、3或4)")
return q2
variable1 = quest2()
while True:
if variable1 == "1":
print("\n你选择了安全路线")
break
if variable1 == "2":
print("\n有人有很好的品味")
break
if variable1 == "3":
print("\n你喜欢自己调制饮料")
break
else:
print("\n别撒谎,每个人都喝酒,我会给你另一次机会改变你的答案")
continue
英文:
I'm new into python and I'm trying to understand how everything works together. I'm trying to write a script that prints different messages depending on the user input. because I defined the question in a function, I figured that it gets printed for each if statement until it reaches the correct answer. I was wondering how can I do this to print the question only once and then, based on the user input, to show the correct line.
Using the variable, the loop never closes if I input "4"
def quest2():
q2 = input("\nWhat's your prefered beverage? \n\t1. Beer \n\t2. Wine \n\t3. Vodka \n\t4. I don't drink alcohool (Answer with: 1, 2, 3 or 4)")
return q2
variable1 = quest2()
while True:
if variable1 == "1":
print("\nYou went the safe route")
break
if variable1 == "2":
print("\nSomeone has some fine taste")
break
if variable1 == "3":
print("\nYou build your own stuff")
break
else:
print("\nStop lying, everyone drinks, I'll give you another chance to change your answer")
continue
答案1
得分: 0
def quest2():
q2 = input(
"\n你喜欢什么饮料?\n\t1. 啤酒\n\t2. 葡萄酒\n\t3. 伏特加\n\t4. 我不喝酒(请用数字 1、2、3 或 4 回答)")
return q2
while True:
question = quest2() # 在这里调用一次问题并为以后检查分配结果。
if question == "1": # 无需再调用另一个问题。
print("\n你选择了安全的路线")
break
if question == "2": # 无需再调用另一个问题。
print("\n有人品味不错")
break
if question == "3": # 无需再调用另一个问题。
print("\n你自己调制饮料")
break
if question == "4":
print("\n好的")
break
else:
print("\n别撒谎,每个人都喝酒,我会给你改变答案的机会")
continue
英文:
You just have to assign value for the question, then use that value.
def quest2():
q2 = input(
"\nWhat's your prefered beverage? \n\t1. Beer \n\t2. Wine \n\t3. Vodka \n\t4. I don't drink alcohool (Answer with: 1, 2, 3 or 4)")
return q2
while True:
question = quest2() # Call question once here and assign result for it for later check.
if question == "1": # No need to call another question.
print("\nYou went the safe route")
break
if question == "2": # No need to call another question.
print("\nSomeone has some fine taste")
break
if question == "3": # No need to call another question.
print("\nYou build your own stuff")
break
if question == "4":
print("\nOk")
break
else:
print("\nStop lying, everyone drinks, I'll give you another chance to change your answer")
continue
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论