在我意识到教授解释它的方式是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)
答案 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))