在询问数字输入时,“'int'对象不可迭代”(初学者)

时间:2015-09-01 11:55:56

标签: python python-3.x

我打算创建一个程序,基本上列出了高达10,000的Fibbonacci sequnce 我的问题是,在我编写的示例脚本中,我一直得到错误'int'对象不可迭代 我的目标是输入一个数字来启动函数的循环。 如果有人愿意帮助那将是伟大的 P.S我是一个编码菜鸟,所以如果你回答,请这样做,好像你和一个五岁的孩子说话一样。

这是我的代码:

/* ADD 2 BEGIN */
  sassckeditor: {
   files: 'ckeditor/*.scss',
   tasks: ['sass'],
   options: {        
    livereload:true,    
   }
  },
/* ADD 2 END */

4 个答案:

答案 0 :(得分:2)

numbers是一个int。例如,当您输入数字10时,exp()中会发生以下情况:

for n in 10:
    ...

for循环遍历序列中的每个元素,但10不是序列。

range会生成一系列数字,因此您应该在for循环中使用range(numbers),如下所示:

for n in range(numbers):
    ...

这将迭代从0到数字的数字。

答案 1 :(得分:0)

正如在评论中已经提到的,你需要定义一个范围 - 至少这是Python这样做的方式:

def exp(numbers):
    total = 0
    for n in range(0, numbers):
        if n < 10000:
            total = total + 1
    return total

您可以稍微调整范围的行为,例如间隔正在使用。但这是另一个话题。

答案 2 :(得分:0)

您的代码是正确的,您只需要更改:

for n in numbers: 

应该是

for n in range(0, numbers)

因为你可以迭代序列而不是int值。

答案 3 :(得分:0)

好的,只有一些小的修正,你会很高兴。

def exp(numbers):
    total = 0
    for n in xrange(numbers):
        if n < 10000:
            total += 1
    return total

x = int(input("Enter a number: "))
print exp(x)