小象的腿 发表于 2019-7-8 21:31:22

递归中的小兔子问题求助!!

def fab(n):
        a1 = 1
        a2 = 2
        a3 = 3
        if n < 1:
                print('输入有误!')
                return -1
        while (n-2) > 0:
                a3 = a1 + a2
                a1 = a2
                a2 = a3
                n -=1
                return a3
result = fab(20)
if result != -1:
       
SyntaxError: invalid syntax

抄的是第二版书上的代码,到result=fab(20)这里,就会报错invalid syntax,是哪里不对呢?求解答{:10_249:}

jackz007 发表于 2019-7-8 23:03:27

本帖最后由 jackz007 于 2019-7-8 23:04 编辑

def fab(n):
    a1 = 1
    a2 = 2
    a3 = 3
    if n < 1:
      return -1
    while (n-2) > 0:
      a3 = a1 + a2
      a1 = a2
      a2 = a3
      n -= 1
    return a3            # 缩进位置有误,应该在完成循环后才 return

result = fab(20)
if result != -1:
    print(result)      # 新补充的语句块
else:                  # 新补充的语句块
    print('输入有误!')   # 输入错误信息挪动到此处显示

小象的腿 发表于 2019-7-24 13:05:53

感谢指点!!!!!!{:5_106:}
页: [1]
查看完整版本: 递归中的小兔子问题求助!!