fengjianyx 发表于 2022-3-24 20:31:53

新人每日一问,斐波那契数列问题

本帖最后由 fengjianyx 于 2022-3-24 20:55 编辑

求兔子的繁殖问题:
def fab ( ):
    if n < 1:
      print ("输入值有误")
    if n == 1 or n == 2:
      return 1
    else:
      return fab (n - 1) + fab (n - 2)
number = int (input ("请输入一个需计算的月份"))
result = fab (number)
if result != -1:
    print ("第{}月总共有{}对兔子产生".format (number, result))


代码报错,如下:
in <module>
    result = fab (number)
TypeError: fab() takes 0 positional arguments but 1 was given
没搞清楚哪里错了,求大佬解释

lfhuang 发表于 2022-3-24 20:36:36

学习跟进

傻眼貓咪 发表于 2022-3-24 20:45:16

你的第一行代码,def fab() 没有参数啊

柿子饼同学 发表于 2022-3-24 20:54:11

要么写fib要么写fab , 不可以混用啊def fib (n):
    if n < 1:
      print ("输入值有误")
    if n == 1 or n == 2:
      return 1
    else:
      return fib (n - 1) + fib (n - 2)
number = int (input ("请输入一个需计算的月份"))
result = fib (number)
if result != -1:
    print ("第{}月总共有{}对兔子产生".format (number, result))
自己照着写一遍

jackz007 发表于 2022-3-24 21:09:45

def fab ( ):# 函数定义不带参数
. . .
      return fab (n - 1) + fab (n - 2)# 调用的时候却使用了参数
. . .
result = fab (number) # 调用的时候却使用了参数

ba21 发表于 2022-3-24 21:26:43

def fab(n):
    if n < 1:
      print ("输入值有误")
    if n == 1 or n == 2:
      return 1
    else:
      return fab(n-1) + fab(n-2)
   
number = int (input ("请输入一个需计算的月份"))
result = fab (number)
if result != -1:
    print ("第{}月总共有{}对兔子产生".format (number, result))
页: [1]
查看完整版本: 新人每日一问,斐波那契数列问题