专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

编程教学入门教程,编程教学方法

来源:小易整编  作者:小易  发布时间:2023-03-22 04:25
摘要:编程教学入门教程,编程教学方法自信息技术新课标以Python语言作为核心编程语言推荐以来,Python编程与算法教学成为落实新课标课程目标的基础。如何在中小学Python编程与算法教学中,落实课标精神,围绕“算法以及基于算法的问题求解”这一...

1.构建问题场景

斐波那契数列从0和1开始,之后的斐波那契数列系数就由之前的两数相加。高中数学必修五在讲解数列前n项和的课后资料中提到了斐波那契数列,作为数学知识生活化、发展学生抽象思维能力的拓展。

斐波那契数列(Fibonacci sequence)因为相邻两项的比无限趋近于黄金比等性质,又称黄金分割数列。它是意大利数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。假设一对刚出生的小兔子一个月后能长成大兔子,再过一个月便能生下一对小兔子,此后每个月生一对小兔子。如果不发生死亡,一年内逐月的小兔子对数是一组非常特殊的数字:1,1,2,3,5,8,13,21,34,55,89,144,……不难发现,从第三个数起,每个数都是前两个数之和,这个数列称为斐波那契数列。

在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,斐波那契数列的通项公式表示如下图所示的公式(1)。

编程教学入门教程,编程教学方法

在算法教学中,斐波那契数列是最简单的递归定义函数,因此非常适合用来说明实现基本递归算法的方法。

2.简单递归实现算法

斐波那契数列的Python实现所需基本知识包括:使用if 语句实现简单迭代/循环、自定义函数、函数的递归定义。

斐波那契数列本身就是用递归形式定义的,Python是函数式编程语言,支持函数的递归定义,即函数体的内部包含对函数本身的调用。因此,公式(1)可以转换为一个合法定义的Python函数,并尝试让学生输出一些可很快通过人工验证的值(不要太大)(如下图)。

编程教学入门教程,编程教学方法

可以注意到,在计算最后一个值时是需要一点时间的。在上述的递归调用中,很多中间值要重复计算。如下图所示,在计算fib_1(4)时,fib_1(2)就重复计算了2次。显然,n的值越大,在计算fi b_1(n)的过程中,需要重复计算fib_1(k)(k<n)的次数就越多。

编程教学入门教程,编程教学方法

3.动态规划优化递归算法

为了优化斐波那契数列的递归实现,一个最简单的方法就是在每次计算中,将前面已经计算过的值“记忆”下来,不再重复计算。这种在计算过程中使用记忆的机制可以有效避免重复及浪费资源,是所谓动态规划方法的一个最简单的例子,动态规划就是指资源的动态再分配。动态规划实现需要涉及如下Python知识:Python字典、Python的Dict内建对象(一种特殊的Python字典)、对迭代器使用if语句。下图所示代码是一个带有记忆的版本。

编程教学入门教程,编程教学方法

作为对比,计算fib_2(20)会产生fib_2()的39次自调用;而若使用fib_1(),则计算fib_1(20)会产生21891次调用。

在Python中,任意对象只要定义了某种_next _()方法,就是一个迭代器。因此,Python中的容器类数据类型,如列表、元组、字典、集合、字符串等,都可以用于创建迭代器。有了迭代器的概念,迭代的概念就比较容易理解了:迭代就是从迭代器中依次抽取元素的过程。

4.装饰器优化递归算法

Python有一个内建的“装饰器”(decorator),可用于自动记忆任何函数。通过使用这个装饰器,计算斐波那契数列的函数可以更加简化。

以下实现使用Python的高级特性——Python装饰器语句。简单地讲,装饰器就是在不改变原来函数代码的情况下,给其增加一些附加功能,如上面记忆函数中间值的功能。

下图代码实现的函数fib_3()与fib_1()几乎完全相同,但使用了装饰器@functools.1ru_cache(),其中maxsize属性用来指示在函数的最近调用中应该缓冲多少次,设置maxsize=None表示对次数不做限制。

编程教学入门教程,编程教学方法

5.使用元组拆包优化递归算法


本文地址:百科问答频道 https://www.neebe.cn/wenda/936278_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 安卓手机怎么刷机教程

    安卓手机怎么刷机教程

    对于大部分安卓手机用户来讲,刷机是不可避免的。可是我们都知道刷机是有一定的风险的,有些用户还是不敢随意的刷机。我们先来了解一下安卓手机怎么刷机?操作方法01先关机,然后按住音量减键,再同时按开机键,即...

  • 代码编程是什么意思?

    代码编程是什么意思?

    代码编程是把一些有意义的指令(称为程序代码),以一种特定的语言编写成,让机器能够理解并执行的一种过程。程序代码被输入到计算机(或特定的计算设备)中,按照用户编写的指令执行操作,从而实现特定的功能。代码编程具有很多好处,因为它可以使我们有效...

  • 编程框架是什么意思?

    编程框架是什么意思?

    编程框架是一种软件开发工具,它提供标准的、灵活的编程架构,帮助开发者更快的开发软件系统。它提供了一系列可以用于构建应用程序的组件,它们之间具有良好的耦合性,能够帮助应用程序达到最优状态。通常来说,编程框架会集成很多开发工具,如:语言、数据...

  • creo4.0完全自学教程

    creo4.0完全自学教程

    在机械零件设计的众多软件中,PRO/ECREO4.0可以说是很典型的一款设计软件,为设计工程师的工作省了很多的事情,让设计师在设计时更高效。下面一起来看看自觉的基础教程。操作方法01打开CREO4....

  • CEBX电子书制作图文教程

    CEBX电子书制作图文教程

    今天小编在这里介绍一下CEBX的特点和优点,以及怎样制作CEBX的电子书吧~ApabiReaderforiOS是一款新发布的,支持CEBX、PDF及TXT格式图书的电子书阅读器。这款软件有很多独特的功能是针对CEBX格式的图书所特有...

  • 网页编程是什么意思?

    网页编程是什么意思?

    网页编程是一种通过使用编程语言创建网页的过程。它可以用来开发功能强大的网站,为用户提供完美的用户体验。通常使用编程语言的一个原因是它能够通过在浏览器之间传递指令来控制界面上的更新和数据变化,并更有效地构建网页。网页编程主要涉及到诸如HTM...

  • 酷我音乐直播在哪里? 酷我音乐观看直播的教程

    酷我音乐直播在哪里? 酷我音乐观看直播的教程

    酷我音乐想要看看直播,今天我们就来看看酷我手机端和电脑端看直播的教程。一、手机端酷我音乐观看直播的方法1、首先手机上要有酷我的软件,点击进入酷我音乐,之后手机页面如图所示2、酷我最上面有“直播”两字,然后点击&ldq...

  • ai海报怎么做(ai海报制作教程图文)

    ai海报怎么做(ai海报制作教程图文)

    阅前叨逼叨hello大家早上好我是大家的好朋友,我叫天天,昨晚翻阅超久才看到野鹿志这个教程,本次教程是用ai结合ps做的,说难不难(貌似很多会psai的人都这样说吧哈哈)说简单吧,其实细节调整也是需要花一点心思的。本次教程的图片多...

  • 周排行
  • 月排行
  • 年排行

精彩推荐