为什么我会得到' int'对象不是可迭代的错误?

时间:2013-04-03 19:57:19

标签: python python-2.7

说明:

编写一个名为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

2 个答案:

答案 0 :(得分: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

Documentation for randrange.

答案 1 :(得分: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