本笔记为阿里云天池龙珠计划Python训练营的学习内容,链接为:AI训练营Python-阿里云天池 (aliyun.com)
Task 1:Python基础入门 - [循环语句学习笔记]
Task 1:Python基础入门 - [for - else 循环语句学习笔记]
Task 1:Python基础入门 - [while - else 循环语句学习笔记]
Task 1:Python基础入门 - [continue和break学习笔记]
回顾
本次任务首先学习函数,包括定义、调用、参数、返回值、变量作用域等。示例中分别使用for循环和函数展示了斐波那契数列的实现方式(官方培训教程关于函数的首个示例即是斐波那契数列)。
在此,笔者拟分别使用for循环、while循环、函数的相关知识,尝试编写可能不同的代码,来实现斐波那契数列。
斐波那契数列是这样一个数列:0,1,1,2,3,5,8,13,21,34,55,89……从第三项开始,每一项等于前两项之和。在数学上,斐波那契数列被定义为:
实践for循环代码:
n = 0
m = 1
for i in range(20):
if i <= 1:
print(i)
else:
i = n + m
print(i)
n = m
m = i
练习结果:
打印结果是正确的,只是代码差强人意,在编写过程中总是想到示例代码。最后的差别可能在于if条件语句的应用。关键是计算公式并没有找到其它的表示方法,仍然是基于前一次的和以及前一次求和的第二个数,来计算后一次的和。
示例代码:
i = 0 j = 1 lst = list([i, j]) for k in range(2, 11): k = i + j lst.append(k) i = j j = k print(lst) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
while循环代码:
i = 0
n = 0
m = 1
while i <= 4000:
if i <= 1:
print(i)
else:
i = n + m
print(i)
n = m
m = i
i += 1
练习结果:
略加修改for循环语句的练习代码,就得出while循环语句的练习代码,不过这种方式过于取巧,后续需要与前述计算公式的表示问题一起,寻找其它不同的方法或者途径。
函数代码:
def fibo(i):
fibo_list = [0, 1]
n = 0
m = 1
for x in range(i):
x = n + m
fibo_list.append(x)
n = m
m = x
print(fibo_list)
练习结果:
不过对比示例代码,明显没有理解递归的用法,在这点上需要继续学习。
示例代码:
def recur_fibo(n): if n <= 1: return n return recur_fibo(n - 1) + recur_fibo(n - 2) lst = list() for k in range(11): lst.append(recur_fibo(k)) print(lst) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]


![Task 3:Python基础练习 - [函数学习笔记] Task 3:Python基础练习 - [函数学习笔记]](http://www.mshxw.com/aiimages/31/754103.png)
