同时滚动骰子循环

0 python while-loop

我正在尝试使用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)

And*_*ark 6

在你当前的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)