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)