2 回答
TA贡献1818条经验 获得超7个赞
您需要在每次循环中重新计算骰子的值,例如:
import sys
import random
import time
greeting = "Welcome to my Dice Game!"
roll = "Lets roll this die!"
print(greeting)
time.sleep(2)
answer = input("Want to play?")
while answer == "yes" or answer == "y":
print(roll)
time.sleep(2)
die = random.randint(0, 6) # recompute it here instead
print(die)
answer = input("Want to play again?")
print("Thanks for playing!")
TA贡献1827条经验 获得超4个赞
当您运行该命令时die = random.randint(0, 6),您告诉 Python 的是“使用该random.randint()函数在 1 到 6 之间选择一个随机整数,然后将名为的变量设置为die等于选择的整数”。完成后,您的其余代码不会执行任何操作来更新 的值die。这意味着print(die)在循环中将继续打印最初给出的任何值。换句话说,该命令die = random.randint(0, 6) 并不意味着“random.randint(0, 6)每次我提到时重新运行该命令并获得另一个随机数die”。相反,die它只是一些具有特定常量值的变量。
由于random.randint()实际数字生成是什么,保持更新的一种方法die是简单地将您在循环外的命令移动到循环内:
while answer == "yes" or answer == "y":
print(roll)
die = random.randint(0, 6) # Generate a new random number, then assign it to 'die'
time.sleep(2)
print(die)
answer = input("Want to play again?")
事实上,如果你除了打印数字之外没有真正对数字做任何事情,你可以完全忘记使用一个变量,只需将random.randint()命令粘贴在你的print命令中:
while answer == "yes" or answer == "y":
print(roll)
time.sleep(2)
print(random.randint(0, 6))
answer = input("Want to play again?")
添加回答
举报