2 回答

TA貢獻1818條經(jīng)驗 獲得超7個贊
您需要在每次循環(huán)中重新計算骰子的值,例如:
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條經(jīng)驗 獲得超4個贊
當(dāng)您運行該命令時die = random.randint(0, 6),您告訴 Python 的是“使用該random.randint()函數(shù)在 1 到 6 之間選擇一個隨機整數(shù),然后將名為的變量設(shè)置為die等于選擇的整數(shù)”。完成后,您的其余代碼不會執(zhí)行任何操作來更新 的值die。這意味著print(die)在循環(huán)中將繼續(xù)打印最初給出的任何值。換句話說,該命令die = random.randint(0, 6) 并不意味著“random.randint(0, 6)每次我提到時重新運行該命令并獲得另一個隨機數(shù)die”。相反,die它只是一些具有特定常量值的變量。
由于random.randint()實際數(shù)字生成是什么,保持更新的一種方法die是簡單地將您在循環(huán)外的命令移動到循環(huán)內(nèi):
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?")
事實上,如果你除了打印數(shù)字之外沒有真正對數(shù)字做任何事情,你可以完全忘記使用一個變量,只需將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?")
添加回答
舉報