函数搞定的 Fibonacci 数列,写起来清爽又好懂,真是练手的好选择。python 的函数用来做递归计算,代码短小精悍。新手练习逻辑思维、老手热热手都挺合适。递归调用是重点,不过要小心栈溢出,数字大了建议用循环或者记忆化递归。
简单例子像这样:
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10))
嗯,代码一看就懂,输出结果也是整整齐齐。如果你想进阶,可以试试优化方法,比如加上缓存或改成迭代方式。
顺带一提,Python 的 reversed()也挺有意思的,尤其列表反转的时候用起来比较方便,配合函数写起来还挺优雅。你感兴趣可以顺手看看这个:
另外像Python 魔法学院: 解锁自定义函数和过程也挺不错,对函数理解再深一点。
如果你想对函数结构、调用优化更有感觉,推荐你看看Spark Python API 函数调用技巧,不过内容稍微进阶一点。
写完建议你多测几个边界值,比如fibonacci(0)
、fibonacci(1)
,还有输入负数的情况,代码健壮点,用起来更安心。