将代码从2.7.10转换为3.4.3

时间:2015-09-14 19:25:45

标签: python python-3.x

在我意识到教授解释它的方式是2.7并且我们应该使用python 3时,我终于能够得到打印的递归。所以当我将IDE更改为3.4.3时,代码不再的工作原理。

任何有关将语法更改为3工作的帮助都将非常感激,我只是没有运气搞清楚。

def fibonacci(n):
    if n <= 2:
        return 1
    else:
        print("Computing fibonacci(%d) + fibonacci(%d)") % (n-1 , n-2)
        return fibonacci(n-1)+fibonacci(n-2)

1 个答案:

答案 0 :(得分:5)

    print("Computing fibonacci(%d) + fibonacci(%d)") % (n-1 , n-2)

这相当于(whatever print returns) % (n-1 , n-2)print返回None,不支持百分比运算符。这解释了TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'错误。

百分比运算符需要在字符串旁边,而不是在打印函数旁边。最外面的括号对需要包含你的参数。

    print("Computing fibonacci(%d) + fibonacci(%d)" % (n-1 , n-2))