1493916656 发表于 2022-11-4 21:33:57

大一新生求助求助

这两个函数为什么会报错 can’t assign to function call 没有见过这种错误

cjh4312@163.com 发表于 2022-11-4 22:15:50

这不是写的很清楚吗,语法错误,这样调用函数自身是错误的写法

fcage 发表于 2022-11-4 22:20:16

你这函数都没返回值你还递归调用?甚至还想给它赋值?

1493916656 发表于 2022-11-4 23:02:07

fcage 发表于 2022-11-4 22:20
你这函数都没返回值你还递归调用?甚至还想给它赋值?

咋改呢 不懂{:10_285:}

jackz007 发表于 2022-11-4 23:09:08

本帖最后由 jackz007 于 2022-11-4 23:10 编辑

def bala():                                                # bala() 定义为无参数函数
    bala(n + 1) = (bala(n) - Monthly_payment_middle_bound)   # 你却加了参数进行调用 bala(n)、bala(n + 1) ,这个肯定通不过,还有,n 什么来历,从哪里来?作为递归函数,不检查输入参数就直接递归,你这个递归无底,会无穷递归,最终会耗尽堆栈,让程序死掉。

fcage 发表于 2022-11-4 23:13:11

1493916656 发表于 2022-11-4 23:02
咋改呢 不懂

rate = 0.05# 随便设了一个,简单点

# Python的递归函数里去网上搜一下吧,小甲鱼也有讲的
def bal(n):
    if n==0:
      return 1# 这是设定终止条件,避免无限调用(不是很理解你代码的意思,你按要求设置就好)
    else:
      return bal(n-1)*(1-rate)

print(str(round(bal(12), 2)))# 另外这个round应该写在str里面吧

1493916656 发表于 2022-11-4 23:15:21

fcage 发表于 2022-11-4 23:13


感谢感谢 刚学一个月 还搞不太清{:10_254:}

1493916656 发表于 2022-11-4 23:16:14

jackz007 发表于 2022-11-4 23:09


感谢感谢

阿奇_o 发表于 2022-11-4 23:29:48

本帖最后由 阿奇_o 于 2022-11-4 23:34 编辑

页: [1]
查看完整版本: 大一新生求助求助