0

指示:

编写一个名为 roll_big 的函数,它接收 1 个数字参数。它生成从 1 到参数大小的随机数;将数字相加。它在掷出 1 时停止。不计算 1,但返回其余数字的总和。

我不明白为什么 for 循环对我的代码有问题。我需要解决什么问题?

import random
def roll_big(x):
    count = 0
    while True:
        for i in random.randrange(1,x):
            if i == 1:
                return count
            else:
                count += i
4

2 回答 2

3

randrange不返回序列,它只是返回一个数字:

import random

def roll_big(x):
    count = 0
    while True:
        i = random.randrange(1, x)
        if i == 1:
            return count
        else:
            count += i

randrange 的文档。

于 2013-04-03T20:00:51.767 回答
0

random.randrange(1,x)返回 1 和 x 之间的单个整数,而不是列表。您需要将代码修改为以下内容(注意:未经测试):

def roll_big(x):
    count = 0
    while True:
        i = random.randrange(1, x)
        if i == 1:
            return count
        else:
            count += i
于 2013-04-03T20:02:31.273 回答