Python &引用';int';“对象不可编辑”;要求输入数字时(初学者)

Python &引用';int';“对象不可编辑”;要求输入数字时(初学者),python,python-3.x,Python,Python 3.x,我计划创建一个程序,基本上列出了多达10000个斐波那契序列 我的问题是,在我编写的示例脚本中,我不断得到错误“int”对象是不可编辑的 我的目标是输入一个数字来启动函数的循环。 如果有人愿意帮忙,那就太好了 另外,我是一个不懂编码的人,所以如果你真的回答了,请像和一个五岁的孩子说话一样回答 这是我的密码: def exp(numbers): total = 0 for n in numbers: if n < 10000: tota

我计划创建一个程序,基本上列出了多达10000个斐波那契序列 我的问题是,在我编写的示例脚本中,我不断得到错误“int”对象是不可编辑的 我的目标是输入一个数字来启动函数的循环。 如果有人愿意帮忙,那就太好了 另外,我是一个不懂编码的人,所以如果你真的回答了,请像和一个五岁的孩子说话一样回答

这是我的密码:

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

x = int(input("Enter a number: "), 10)

exp(x)

print(exp)
def exp(数字):
总数=0
对于n个数字:
如果n<10000:
总计=总计+1
返回总数
x=int(输入(“输入一个数字”),10)
exp(x)
打印(exp)

如注释中所述,您需要定义一个范围——至少Python是这样做的:

def exp(numbers):
    total = 0
    for n in range(0, numbers):
        if n < 10000:
            total = total + 1
    return total
def exp(数字):
总数=0
对于范围内的n(0,数字):
如果n<10000:
总计=总计+1
返回总数

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

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

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

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

for n in range(numbers):
    ...

这将对从0到数字的数字进行迭代。

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

for n in numbers: 
应该是

for n in range(0, numbers)

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

很好,只需要一些小的修正,你就可以继续了

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)
def exp(数字):
总数=0
对于X范围内的n(数字):
如果n<10000:
总数+=1
返回总数
x=int(输入(“输入一个数字:”)
打印经验(x)

对于n个数字:您希望在这里做什么<代码>数字是单个整数,而不是序列。您是否希望将
0
中的数字一直循环到
numbers
中给定的值?对于n in numbers:应为n in range(0,numbers)@learningNew:前提是这是他们想要的。这还不清楚。是的,我确实想让它这样做,Python对循环使用了一种与您想象的不同的
。而且
print(exp)
也不会做你想做的事。您需要存储
exp(x)
的结果,或者使用
print(exp(x))
。回答得好,在这种情况下,链接到
for
循环上的文档可能是个好主意,因为OP对Python来说太新了。@VinalV检查投票点附近的绿色复选标记。欢迎来到堆栈溢出!A向OP(和其他新用户)报告:
对于范围(10)
中的n,将使用
10
作为排除的上限。也就是说,
n
将采用的最后一个值是
9
,而不是
10
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)