我希望这个骰子程序每次使用forloop十次滚动六面骰子时都模拟六面骰子的滚动。
正如我所说,我编写了一个for循环并指定了我希望六面模滚动的次数。
import random
class Die():
def __init__(self):
self.sides=6
def roll_die(self):
dice=random.randint(1,self.sides)
for dice in range(11):
print("Rolling "+str(dice))
dice_roll=Die()
print("=========================================================")
dice_roll.roll_die()
输出:
=========================================================
Rolling 0
Rolling 1
Rolling 2
Rolling 3
Rolling 4
Rolling 5
Rolling 6
Rolling 7
Rolling 8
Rolling 9
Rolling 10
我希望模拟中的for循环可以打印一堆从1到6十次的随机数。相反,它按顺序打印数字,而不仅打印范围从1到6的数字。
答案 0 :(得分:1)
写你这样循环:
for _ in range(10):
dice=random.randint(1,self.sides)
print("Rolling "+str(dice))
如果您只希望循环一定次数而无需根据迭代次数更改过程,则不需要在for循环中使用变量。
为了在每个循环上获得不同的骰子值,您需要在循环内进行计算。你在外面通过在for循环中使用相同的变量名称,您还将覆盖放置在dice变量中的随机值。
答案 1 :(得分:1)
第一次分配骰子dice = random.randint(1, self.sides)
之后,请在下一行重新分配它。要解决此错误,只需将for dice in range(11):
更改为for i in range(11):
答案 2 :(得分:0)
首先,您将骰子滚动11次(0,1,2,...,10)。如果只需要10次,则应使用range(10)
接下来,您将相同的变量骰子用于两件事。
您可以更改为dice_val = random.randint(1, self.sides)
和print("Rolling "+str(dice_val))
或
将for dice in range(11):
更改为for roll_count in range(10):