边滚边圈

2024-04-24 16:41:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在掷骰子时使用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]

Tags: 函数importnumberfordefrandomonethree
2条回答

在当前while循环中,不会更改number的值,因此这将是一个无限循环。由于您从10开始循环,直到number小于或等于零,您可能应该在每次迭代中递减一:

number = 10
while number > 0:
    number -= 1
    # the rest of the loop

注意,number -= 1等同于number = number - 1。在

作为补充说明,与其乘以random.random()的结果,不如使用random.randint(1, 6)。另外,由于您已经返回了一个数组,所以创建一个结果列表并对其进行修改,而不是为每个可能的情况创建一个单独的变量,这将更像python。例如:

^{pr2}$

每次执行while循环时,都需要减少这个数。将number -= 1作为while循环中的最后一行。在

相关问题 更多 >