我正在学习Python,并致力于随机掷骰子。当我运行它时,它会重复询问您是否要再次播放后第一次显示的相同数字。我需要帮助才能找到我要去哪里的地方。
我尝试过移动代码,并放置各种不同的代码。我很难过。
import sys
import random
import time
greeting = "Welcome to my Dice Game!"
roll = "Lets roll this die!"
die = random.randint(0, 6)
print(greeting)
time.sleep(2)
answer = input("Want to play?")
while answer == "yes" or answer == "y":
print(roll)
time.sleep(2)
print(die)
answer = input("Want to play again?")
print("Thanks for playing!")
这就是我得到的:
Welcome to my Dice Game!
Want to play?yes
Lets roll this die!
5
Want to play again?yes
Lets roll this die!
5
Want to play again?y
Lets roll this die!
5
答案 0 :(得分:2)
每次循环时,您都需要重新计算骰子的值,例如:
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!")
答案 1 :(得分:1)
运行命令die = random.randint(0, 6)
时,告诉Python的是“使用random.randint()
函数选择1到6之间的随机整数,然后设置名为{{1} }等于选择的整数”。完成后,其余代码将不执行任何操作来更新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()
命令中:< / p>
print