我正在尝试使用while循环而不是for循环滚动骰子.我认为elif不对,但我无法弄清楚如何while在此范围内使用循环.这是我到目前为止:
import random
def rolldiewhileloop():
number = 10
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
while number > 0:
flip = int(random.random() * 6)
if(flip == 1):
one = one + 1
elif flip == 2:
two = two + 1
elif flip == 3:
three = three + 1
elif flip == 4:
four = four + 1
elif flip == 5:
five = five + 1
elif flip == 6:
six = six + 1
return [one, two, three, four, five, six]
Run Code Online (Sandbox Code Playgroud)
在你当前的while循环中你没有改变它的值number,所以这将是一个无限循环.由于您从10开始并循环直到number小于或等于零,因此您应该在每次迭代时减1:
number = 10
while number > 0:
number -= 1
# the rest of the loop
Run Code Online (Sandbox Code Playgroud)
注意number -= 1相当于number = number - 1.
作为旁注,random.random()使用它会更好,而不是乘以它的结果random.randint(1, 6).此外,由于您已经返回一个数组,因此创建结果列表并修改它会更加Pythonic,而不是为每种可能性创建单独的变量.例如:
def rolldiewhileloop():
results = [0] * 6
number = 10
while number > 0:
number -= 1
flip = random.randint(1, 6)
results[flip-1] += 1
return results
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |