鱼C论坛

 找回密码
 立即注册
查看: 1709|回复: 1

[已解决]可以这段代码的报错的内容和原因吗?

[复制链接]
发表于 2023-9-5 16:58:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码的目的是实现一个斐波那契数列

def fib():
    x = 0
    y = 1
    def fib_():
        nonlocal x , y
        x = y
        y = x + y
        return x
    return fib_()

f = fib()
f()
Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    f()
TypeError: 'int' object is not callable
最佳答案
2023-9-5 16:58:37
错误内容:TypeError: 'int' object is not callable
错误原因:在代码的最后一行,f是一个整数类型的变量,而不是一个可调用的函数。在之前的代码中,我们将fib_()函数的返回值赋值给了f,但是fib_()函数返回的是一个整数,而不是一个函数。因此,当我们尝试调用f()时,就会出现TypeError错误。要解决这个问题,我们需要将f的赋值语句修改为f = fib,这样f就是一个函数,可以被调用。修改后的代码如下:

def fib():
    x = 0
    y = 1
    def fib_():
        nonlocal x , y
        x = y
        y = x + y
        return x
    return fib_

f = fib()
f()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-5 16:58:37 | 显示全部楼层    本楼为最佳答案   
错误内容:TypeError: 'int' object is not callable
错误原因:在代码的最后一行,f是一个整数类型的变量,而不是一个可调用的函数。在之前的代码中,我们将fib_()函数的返回值赋值给了f,但是fib_()函数返回的是一个整数,而不是一个函数。因此,当我们尝试调用f()时,就会出现TypeError错误。要解决这个问题,我们需要将f的赋值语句修改为f = fib,这样f就是一个函数,可以被调用。修改后的代码如下:

def fib():
    x = 0
    y = 1
    def fib_():
        nonlocal x , y
        x = y
        y = x + y
        return x
    return fib_

f = fib()
f()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表