栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Task 3:Python基础练习 - [函数学习笔记]

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Task 3:Python基础练习 - [函数学习笔记]

本笔记为阿里云天池龙珠计划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]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号