Python 3 中的骰子模拟器项目
Dice Simulator project in Python 3
我的代码可以为我的 'elif' 和 'else' 语句退出程序,但是当我输入 'yes' 时,我陷入了这个输入循环,我输入的任何内容仍然存在掷骰子。已经输入'yes'进入循环后,如何输入'no'跳出程序?
import random
min = 1
max = 6
prompt = "Roll dice? Type yes or no. "
roll_dice = input(prompt)
while roll_dice:
if roll_dice == "yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
input(prompt)
elif roll_dice == "no":
print ("see you later!")
break
else:
print ("invalid answer")
break
而不只是做:
input(prompt)
这对给定的输入没有任何作用,这意味着
roll_dice
将始终等于 yes 并且您将陷入无限循环。
你应该使用:
roll_dice = input(prompt)
这会将 roll_dice
设置为新值,从而让您退出循环。
您可以这样修改代码:
while roll_dice =="yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
roll_dice = input(prompt)
您必须包含 roll_dice 以从输入函数获取 return 值并验证响应是“是”、“否”还是无效。
在您的代码中,输入 returns 一个值,但在 if 语句执行一次后,该值永远不会被检查。
while roll_dice =="yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
input(prompt)
我的代码可以为我的 'elif' 和 'else' 语句退出程序,但是当我输入 'yes' 时,我陷入了这个输入循环,我输入的任何内容仍然存在掷骰子。已经输入'yes'进入循环后,如何输入'no'跳出程序?
import random
min = 1
max = 6
prompt = "Roll dice? Type yes or no. "
roll_dice = input(prompt)
while roll_dice:
if roll_dice == "yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
input(prompt)
elif roll_dice == "no":
print ("see you later!")
break
else:
print ("invalid answer")
break
而不只是做:
input(prompt)
这对给定的输入没有任何作用,这意味着
roll_dice
将始终等于 yes 并且您将陷入无限循环。
你应该使用:
roll_dice = input(prompt)
这会将 roll_dice
设置为新值,从而让您退出循环。
您可以这样修改代码:
while roll_dice =="yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
roll_dice = input(prompt)
您必须包含 roll_dice 以从输入函数获取 return 值并验证响应是“是”、“否”还是无效。
在您的代码中,输入 returns 一个值,但在 if 语句执行一次后,该值永远不会被检查。
while roll_dice =="yes":
print ("you rolled", random.randint(min, max), random.randint(min, max))
input(prompt)