我打算创建一个程序,基本上列出了高达10,000的Fibbonacci sequnce 我的问题是,在我编写的示例脚本中,我一直得到错误'int'对象不可迭代 我的目标是输入一个数字来启动函数的循环。 如果有人愿意帮助那将是伟大的 P.S我是一个编码菜鸟,所以如果你回答,请这样做,好像你和一个五岁的孩子说话一样。
这是我的代码:
/* ADD 2 BEGIN */
sassckeditor: {
files: 'ckeditor/*.scss',
tasks: ['sass'],
options: {
livereload:true,
}
},
/* ADD 2 END */
答案 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)