需要帮助固定随机数

时间:2019-03-26 23:50:36

标签: python random while-loop dice

我正在学习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

2 个答案:

答案 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