Python快乐编程 中学学科创意编程实例

978-7-115-54521-3
作者: 方其桂
译者:
编辑: 张天怡

图书目录:

详情

本书是一本有趣的Python入门书。全书根据中学生熟悉的美术、数学、体育、物理、化学、语文、英语、生物和音乐这9门学科设计了9个单元,每个单元以课的形式编排,共30课。每课精选一个学科知识热点作为案例,贴合学生的认知基础,并通过精巧的案例,让学生对学科知识温故知新,同时也激发学生用编程解决问题的兴趣。学科知识是明线,Python程序设计语言是技术支持的暗线。每课中的案例解读、问题分析和算法描述都图文并茂,方便读者阅读学习。本书知识结构安排合理,第1~3单元是编程的基础知识,第4~9单元的Python知识由浅入深,但是内容相互独立,读者可以根据个人兴趣跳跃阅读。 本书适合中学生阅读使用,可作为青少年编程竞赛的教材,也可作为信息技术教师教授Python语言的参考教材。

图书摘要

Python
快乐编程

中学学科创意编程实例



方其桂 / 主编

梁祥 宣国庆 / 副




人 民 邮 电 出 版 社

北 京



定价:69.80元

读者服务热线:(010)81055410 印装质量热线:(010)81055316

反盗版热线:(010)81055315

广告经营许可证:京东市监广登字20170147号

内 容 提 要

前言

一、什么是编程

二、学习编程的理由

三、为什么选择Python

四、如何学习Python

五、本书特点

六、适用读者

七、本书使用

八、本书作者

方其桂

第1单元 美术课堂

本单元由Python中的小海龟(turtle)领你进入美术课堂,你可以使用各种命令指挥小海龟绘制创意图形,初步认识Python,感受Python的神奇魅力。

学习内容

第1课 信手涂鸦很快乐——初识Python

第2课 几何图形我会画——设置小海龟属性

第3课 图文并茂也不难——设置小海龟动作

第4课 创意绘画添精彩——应用填充色

第1课 信手涂鸦很快乐——初识Python

扫一扫,看视频

子曰:“工欲善其事,必先利其器。”要做好一件事,准备工作非常重要。学习Python语言也一样,第一步就是要在计算机上下载并安装Python软件,再配置Python的环境变量。

本课让我们一起来探秘Python吧!

研究室

1.理解题意

下载与安装 Python软件之前,让我们先来认识一下关键单词。

2.开动脑筋

规划院

1.思路分析

跟其他程序设计语言一样,在应用之前需要先安装程序,并配置好环境变量。

2.算法描述

下载与安装Python软件的一般操作步骤如下图所示。

加工坊

1.下载与安装Python

打开浏览器,以关键词“python官网”搜索Python官方网站,也可以直接输入网址打开Python官方网站,然后下载Python软件。

(1)打开Python官方网站 打开浏览器,按下页图所示的操作,搜索并打开Python官方网站。

(2)下载Python软件 在Python官方网站的首页,按下页图所示的操作,下载安装程序。

下载时要注意选择与自己的计算机操作系统相匹配的 Python版本,这里以32位操作系统为例进行介绍。

(3)安装Python软件 双击下载好的Python-3.7.3.exe文件,按照提示安装Python软件。

(4)查看 安装结果 安装结束后,可在“开始”菜单中查看Python软件。

(5)认识单行编辑界面 按下页图所示的操作,打开单行编辑界面,出现命令提示符“>>>”,在这里一次只能输入一条Python指令。

(6)认识多行程序编辑器 选择“File”→“New File”命令,打开多行程序编辑器,在这里可以一次输入多条Python指令。保存后,系统可一次性执行指令。

2.创建与运行程序

(1)创建程序文件 按下图所示的操作,打开多行程序编辑器,输入程序代码。

(2)保存Python程序文件 输入完程序代码后,按下图所示的操作保存文件。

(3)运行程序 按下图所示的操作运行程序,查看程序的运行结果。

3.答疑解惑

(1)p rint 意为打印、印刷、发表,程序设计语言中一般用print()命令将程序结果输出到某个设备。

(2)print() 在Python中,print()命令可以输出数值或者字符串。

print与( )之间可以加空格,如print ( );也可以不加空格,如print( )。二者输出的结果都是一样的,可根据个人编程习惯选用。

4.拓展应用

● 利用 print()命令输出字符串。

● 利用print()命令输出算术表达式的结果。

● 利用print()命令输出变量。

阅览室

1.配置Python环境变量

安装Python时,如果没有勾选“Add Python 3.7 to PATH”复选框,那么在Windows操作系统中配置好Python环境变量后也可正常使用。

(1)判断是否需要配置环境变量 按下页图进行操作,如果出现图中所示的界面,说明Python安装成功,否则需要配置环境变量。

(2)查找安装目录 按下图所示的操作,查找并复制Python安装目录。

(3)打开“高级系统设置”窗口 按下图所示的操作,打开计算机的“高级系统设置”窗口。

(4)配置环境变量 按下图所示的操作,将复制的Python安装目录粘贴到“变量值”文本框中。

2.调试程序

输入指令后,如果出现红色英文提示,则说明给Python下达了错误的指令,Python不能识别你下达的指令,这是反馈给你的提示信息。

创新园

1.阅读程序写结果

>>>print("3+5=",3+5)

输出结果:_____________。

2.编写程序

利用print()命令编写一段程序,输出下图所示的图案。

第2课 几何图形我会画——设置小海龟属性

扫一扫,看视频

还记得动画片《聪明的一休》里的晴天娃娃吗?它是一种悬挂在屋檐上祈求晴天的布偶,任务是扫去阴霾,迎来晴天。怎么样,很可爱吧?让我们指挥小海龟画一个吧!

研究室

1.理解题意

本课案例由两个几何图形组成:一个圆形、一个等边三角形。将这两个图形拼接在一起,就组成了可爱的晴天娃娃。

2.开动脑筋

仔细观察上页图,我们需要指挥小海龟绘制出两个几何图形。那么小海龟应从哪里出发,先绘制哪个图形呢?请开动脑筋,思考并回答下面的问题。

规划院

1.思路分析

turtle库是Python语言中用于绘制图形的函数库。调用它后就会出现一个小海龟,你可以指挥这只小海龟绘图。小海龟一开始在坐标系原点(0, 0)的位置,程序指令可以控制小海龟移动,让它在平面坐标系中绘制出图形。

通过对图形的分析,小海龟先从坐标系原点出发,沿逆时针方向绘制一个圆。接着小海龟改变前进方向和画笔颜色,再绘制一个等边三角形。我们需要对小海龟画圆的半径及三角形的边长、旋转的角度、画笔的颜色等参数进行分析,才能编写出具体的程序。

2.算法描述

要想完成案例图形的绘制,首先要导入小海龟模块,然后设置画笔的粗细与画笔的颜色等参数,再编写程序代码,使小海龟绘制线条,最后组成图形。

在Python语言中,我们可以用下面的算法流程图来表示以上思路分析。

加工坊

1.编 程实现

2.测试程序

3.答疑解惑

在程序中设置小海龟的属性参数时,要注意下图所示的易错点。

4.优化程序

小海龟绘图没有规定路线,你可以按照自己的作图习惯来指挥它。所以你也可以让小海龟先转向绘制等边三角形,然后再转向画圆,同样能绘制出本案例的图形。

为避免多次出现的特定关键词turtle输入出错,我们可以创建一个新的画布,并定义小海龟的小名为t。这样在后面的语句中,就不用反复输入turtle,而可以直接用t来代替了。加之turtle模块中的部分指令可以用简写的形式,这样程序代码看上去就更简洁明了了。优化后的程序代码如下图所示。

阅览室

1. turtl e小海龟绘图模块

在Python语言中,可以调用turtle模块快速绘制出图形。根据函数指令的控制,小海龟从一个横轴为x轴、纵轴为y轴的坐标系原点—(0,0)的位置开始,在这个平面坐标系中移动,它爬行的路径即绘制的图形。

2.turtle小海龟模块指令

Python小海龟模块提供了很多指令,这些指令的作用与其名字的意思基本相同,跟Logo语言中的小海龟模块指令非常相似,所以很好理解。常用的Python小海龟模块指令及其作用如下表所示。

续表

创新园

1.阅读程序写结果

根据所给的程序,在下方的平面坐标系中绘制出相应的图形。

2.修改程序

下图所示为绘制一个五角星的程序,其中标号处有错误,请改正。

第3课 图文并茂也不难——设置小海龟动作

扫一扫,看视频

同学们,日常生活中你们注意过各类指示牌吗?商场内的禁止吸烟标志、繁忙路段的禁止停车标志、高速公路上的限速标志……小小指示牌,已经融入生活中的各个角落,处处发挥着它们的重要作用。Python中的小海龟不仅擅长绘制各种图案,在图文编排上也很专业。一起来指挥小海龟绘制“禁止泊车”指示牌吧!

研究室

1.理解题意

本课案例由4个部分组成,分别是一个圆环、一个大写的英文字母“P”、一个代表禁止的“\”和“禁止泊车”4个汉字。

2.开动脑筋

本案例要求我们指挥小海龟绘制出图文并茂的指示牌,那么小海龟应先从哪个部分开始绘制,又应该怎样去绘制呢?请开动脑筋,思考并回答下面的问题。

规划院

1.思路分析

通过对案例的分析,我们首先要设置小海龟画笔的粗细,沿逆时针方向绘制一个圆环。接下来需要改变3次画笔的颜色及坐标,依次绘制出大写英文字母“P”、符号“\”及汉字“禁止泊车”。要合理安排好4个部分的先后顺序,以达到图文的叠放效果。

本案例最重要的是在绘制4个部分的过程中,控制好小海龟的运动轨迹,在需要的时候显示路线,在不需要的时候隐藏路线,并结合坐标系对小海龟每次的绘制起点进行分析。这样才能编写出具体的程序。

小海龟每次绘制起点不是一成不变的,我们可以根据美工设计的需要,调整小海龟的绘制起点。

2.算法描述

要想完成案例图形的绘制,要先设置小海龟画笔的粗细与画笔的颜色等参数,然后通过控制运动轨迹,改变画笔的坐标,最后绘制出相应的图文内容。

在Python语言中,我们可以用下面的算法流程图来表示以上的思路分析。

加工坊

1.编程实现

2.测试程序

3.答疑解惑

在程 序中设置小海龟的状态参数时,要注意下页图所示的易错点。

语句中font =("KaiTi",200,"bold")命令是对要书写的内容进行属性设置。例如,设置案例中要书写的英文字母“P”的字体属性为“楷体”“200”“加粗”,其中用字符串表示的“KaiTi”和“bold”都要用英文状态下的双引号引起来;而作为“字号”的数值“200”可以直接输入,不需要用双引号引起来。font()命令与要书写的内容“P”之间用英文状态下的逗号隔开。

4.优化程序

只要把握好准确的坐标值,利用小海龟的抬笔、落笔和移动坐标等命令,就可以轻松绘制出不同的指示牌。例如,在高速公路上经常看到的限速标志,在Python中用16行代码就可以实现。具体的程序代码及运行结果如下图所示。

阅览室

1.turtle小 海龟模块指令

指挥小海龟进行绘图的指令有很多,上一课中详细介绍了小海龟的属性设置指令,本课则着重介绍小海龟的运动状态指令。常用的运动状态指令及其作用如下表所示。

2.常用字体的中英文对照表

利用turtle.write()命令书写文本字符串时,经常需要设置文本字符串的字体,但turtle模块只能识别字体的英文名称。为了使绘制效果更加美观,现提供Windows操作系统中常用的字体的中英文对照表,以供读者在绘图时参考。

续表

创新园

1.完善程序

根据下图所示的图形,请补充下面程序中的下画线处的代码,完善程序。

2.改写程序

若想让下图所示的小鱼再吐出2个泡泡,应在上题程序代码段中添加代码:___________。

第4课 创意绘画添精彩——应用填充色

扫一扫,看视频

金字塔建造于沙漠之中,结构精巧,外形宏伟,是古埃及高度文明的象征,是人类悠久历史的见证。其因独特的四棱锥构造酷似汉字的“金”字,故被称为金字塔。本课就让我们以探索金字塔结构为契机,解锁小海龟绘制立体图形的新技能吧!

研究室

1.理解题意

本课案例是一个立体图形,需要读者有一定的空间思维能力,在绘制前应仔细分析四棱锥由几个面组成。

2.开动脑筋

仔细观察案例,我们需要指挥小海龟绘制出4个三角形从而组成一个四棱锥。最下面的四边形由4个三角形的底边组成,所以不需要绘制。那么小海龟应从哪里出发,需要绘制哪几种三角形呢?请开动脑筋,思考并回答下面的问题。

规划院

1.思路分析

通过对案例的分析,我们首先要设定好小海龟的起点位置,再依次绘制出标记为红色的等边三角形、标记为绿色的等腰三角形、标记为蓝色的直角三角形和标记为紫色的直角三角形。重复的边则可以抬起画笔,不显示小海龟的运动轨迹。

本案例最重要的是,在绘制过程中要根据三角形的边长,利用三角形的勾股定理准确地计算出各顶点的坐标,并对各三角形填充相应的颜色以达到立体的效果。

2.算法描述

要想完成案例图形的绘制,要先设置画布的大小和背景颜色,再改变画笔的颜色,根据各顶点的坐标绘制出相应的三角形,最后对三角形进行颜色填充。

在Python语言中,我们可以用右边的算法流程图来表示以上的思路分析。

加工坊

1. 编程实现

2.测试程序

3.答疑解惑

在程序中设置三角形填充颜色的参数时,要注意下图所示的易错点。

仔细观察程序,我 们不难发现,设置颜色填充的语句是有一定规律的,一般按照设置填充颜色“fillcolor()” → 开始填充“begin_fill() ”→ 绘制需要填充的图形 → 完成填充“end_ fill()”这样的过程进行。

4.优化程序

掌握了四棱锥的画法后,我们还可以尝试绘制出正方体或长方体。为了让小海龟更直观地显示立体图形中每个平面的绘制过程,还可以添加speed()命令,让小海龟放慢移动的速度,具体的程序代码如下图所示。

程序运行结果如下图 所示。

阅览室

1.turtle小海龟模块指令

通过绘制立体图形,我们又学习到了一些新的小海龟操作指令,快来记录吧!常用的指令及作用如下表所示。

续表

2.RGB色彩拾取器

当现有表示颜色的命令已经不能准确表达我们所需的颜色时,可以使用RGB色彩拾取器。RGB色彩拾取器是一款方便直观的按色相拾取颜色的工具,每一个颜色代码由“#”以及6个字符组成。先在垂直的颜色条上单击选择出大致的色块,然后在左边的颜色区域中选取所要呈现的颜色;也可以在“插入您的色彩代码”文本框中输入颜色代码,调配出特有的颜色。

创新园

1.完善程序

请在下面程序中的下画线处填写正确的内容,完善程序,绘制一个红色的五角星。

2.编写程序

根据所给的图形,编写相应的程序,并填写在右边的蓝色文本框中。

(思考:小海龟从哪里出发,绘制过程最为简单?)

第2单元 数学课堂

在数学课堂中,我们将数学知识与信息技术相融合,借助Python语言编写程序,掌握计算机编程中最基础的顺序结构、选择结构与循环结构。在学习数学的过程中,尝试用程序来解决实际问题。

学习内容

第5课 图形面积容易算——顺序结构

第6课 判断在第几象限——选择结构

第7课 高斯求和咱也会——for循环

第8课 妙算最大公约数——while循环

第5课 图形面积容易算——顺序结构

扫一扫,看视频

在初中数学几何类题目中,常需要计算图形的面积。求解图形面积的题目主要包含两类图形:一类是基本图形,另一类是不规则图形。我们除了可以使用数学方法来计算图形的面积外,还可以利用Python语言编写程序快速、轻松计算图形的面积。下图所示为一块由许多扇形和不规则图形组成的瓷砖,只要知道扇形半径r的具体值,就可以求出对应的蓝色部分图形的面积。怎么样?很神奇吧,我们快来学习吧!

研究室

1.理解题意

本例所要求解的蓝色部分是不规则的图形,无法直接求解,但可以采取移动、拼接、割补等方法将该图形转化为基本图形,再根据基本图形面积的和、差关系,就可以求出面积了。

2.开动脑筋

本课案例中,需要求解蓝色部分的面积,但蓝色部分的图形是不规则的几何图形,如何求解这种不规则图形的面积呢?请开动脑筋,思考并回答下面的问题。

规划院

1.思路分析

对于本课案例的不规则图形面积的求解,需掌握初中几何图形面积求解过程中的两种常用方法:一种是重新组合法,另一种是相减法。

重新组合法,即将不规则图形拆开,重新组合成一个新的图形,再设法求出这个新图形的面积。例如,下图中,图1经过3次变化为图4,此时要求蓝色部分图形的面积,只需先求出正方形面积和圆面积,然后两者相减即可。

2.算法描述

根据上述思路分析,求解步骤如下。

第1步:输入半径r的值。

第2步:求出正方形的面积。由题意可知正方形的面积计算表达式为s1=(2*r)*(2*r)。

第3步:求出圆形的面积。由题意可知圆形的面积计算表达式为s2=π*r*r。

第4步:使用相减法求出蓝色部分图形的面积。由题意可知蓝色部分图形的面积计算表达式为s3=s1- s2。

第5步:输出蓝色部分图形的面积s3。

以上的求解过程是一步接着一步的,在计算机编程中,我们将这种按步骤执行的代码编写过程称为顺序结构。本案例的算法流程图如下图所示。

加工坊

1.编程实现

2.测试程 序

3.答疑解惑

在编写程序过程中,在输入正方形的面积计算表达式与输出蓝色部分图形的面积的语句时,要注意下图所示的易错点。

%6.2f的作 用是格式化输出%s3,即按总长度为6、保留2位小数的格式输出结果。

4.优化程序

上述程序输出的只是s3的结果,如果能分别输出过程中的正方形面积s1与圆面积s2,则更能体现编程求解的高效性。优化后的程序代码与运行效果如下页图所示。这种按照步骤求解的代码结构,就是顺序结构。编写的程序应条理清晰,便于理解。

阅览室

1.算术运算符与表达式

算术运算符与表达式用于执行普通数学运算,Python中的算术运算符和表达式与数学中的有相同之处,也有不同之处。下面以变量a =6、变量b = 3为例,说明算术运算符和表达式的应用方法。

2.将数学公式转换为程序表达式

用Python求解正方形、长方形、圆、三角形、平行四边形、梯形等图形的面积时,需将这些图形的面积计算公式转换成计算机能识别的表达式。

例如,将平行四边形与梯形的数学面积计算公式转换为计算机语言表达式,如下图所示。

3.求解不规则图形

对手一些不规则图形,可以采取割补、剪拼等方法将它们转化为基本图形的和、差关系,从而求解出面积。

创新园

1.修改程序

下图所示的程序用于求除黄色三角形以外的蓝色部分的图形面积,其中标号处有错误,请改正。

2.完善程序

下图所示的程序用于求蓝色部分的图形面积,请在下画线处填写正确的内容,完善程序。

3.编写程序

使用Python编写求下页图所示蓝色部分的图形面积的程序。

【提示】使用割补法,即把右上角的黄色部分图形切割下来补在左上角,将左上角的蓝色部分图形移到右上角,这样蓝色部分图形成为小正方形的一半,从而可以通过基本图形求出蓝色部分图形的面积。

第6课 判断在第几象限——选择结构

扫一扫,看视频

坐标轴的横轴和纵轴将平面分为4个区域,即4个象限。象限以原点为中心,x轴和y轴为分界线,右上方的区域叫第一象限,左上方的区域叫第二象限,左下方的区域叫第三象限,右下方的区域叫第四象限。坐标轴上的点不属于任何象限。如果输入的两个数代表一个点的坐标(x,y),请编写程序判断该点(x,y)属于哪一个象限。

研究室

1.理解题意

平面直角坐标系又称为笛卡儿坐标系,由一个原点[坐标为(0,0)]和两个通过原点的、相互垂直的坐标轴构成。其中,水平方向的坐标轴为x轴,以向右为其正方向;垂直方向的坐标轴为y轴,以向上为其正方向。平面上任何一点P都可以由x轴和y轴的坐标来定义,即可以用坐标值(x,y)来定位一个点。

2.开动脑筋

本课案例中,需要根据输入的一个点的坐标(x,y)的值来判断点(x,y)在哪一个象限。请开动脑筋,思考并回答下面的问题。

规划院

1.思路分析

根据下图,(x,y)的位置有5种情况,即位于第一象限(x>0且y>0)、位于第二象限(x<0且y>0)、位于第三象限(x<0且y<0)、位于叫第四象限(x>0且y<0)、位于坐标轴上x=0或y=0。

2.算法描述

根据上述的思路分析,求解步骤如下。

第1步:输入x、y的数值;

第2步:如果x>0且y>0,输出该点在第一象限。

第3步:如果x<0且y>0,输出该点在第二象限。

第4步:如果x<0且y<0,输出该点在第三象限。

第5步:如果x>0且y<0,输出该点在第四象限。

第6步:如果x=0或y=0,输出该点不在任何象限。

以上的求解过程是需要进行选择判断的,我们将这种结构称为选择结构,其算法流程图如下图所示。

加工坊

1. 编程实现

2.测试程序

输入不同的数值,分别测试其对应的象限,以及x轴、y轴、原点的数据是否正确。

3.答疑解惑

在编写程序时,要注意下图所示的易错点。

if 条件语句中 包含的语句是从属关系,故在语法上要进行缩进,即不能顶格写。在描述条件时,如果要表述x等于0,一定要用x==0来表示。

4.优化程序

上述程序使用的是单分支选择判断语句。在Python中,还有双分支和多分支选择判断语句。对于本案例,还可使用多分支语句来表示,这样编写出来的程序条理更清晰,也更便于理解。

阅览室

1.逻辑运算符

2.关系运算符

3.Python运算符优先级

下页表中列出的运算符的优先级从上到下依次是从最高到最低。

4.if条件语句

对应的语句格式如下。

5.if…else条件语句

对应的语句格式如下。

6.if…elif…else条件语句

对应的语句格式如下。

创新园

1.阅读程序写结果

2.完善程序

请补充下面程序段的下画线处的内容,完善程序。

3.编写程序

编写一个程序,实现如下功能。输入性别,如果是“男”,显示“请参与1000米跑”;如果是“女”,显示“请参与800米跑”。

【提示】if xb=="男":print("请参与1000米跑")

if xb=="女":print("请参与800米跑")

第7课 高斯求和咱也会——for循环

扫一扫,看视频

大数学家高斯10岁时,老师在数学课上出了一道难题:把 1到 100之间的所有整数加起来!老师话音刚落,高斯就报出了答案:5050。在数学中,对于这类有规律的数列,我们可以使用等差数列的求和公式进行快速求和。使用计算机编写程序时,我们还可以使用循环累加的方法进行求和,同样也能与高斯一样又快又准确。

研究室

1.理解题意

数学思维方式:如果一个数列从第2项起,每一项与它前一项的差等于同一个常数,那么这个数列就叫作等差数列。例如,求1+2+3+…+99+100的和,使用等差数列求和的公式,可得1+2+3+…+99+100=100×(100+1)÷2=5050。

计算机思维方式:求1+2+3+…+99+100,需循环100次,每次循环让变量x=x+1,即可实现变量x从1到100的变化;再设置一个求和的变量sum,每次循环让sum=sum+x,这样就实现了每循环一次,就进行一次累加;循环100次,即可计算出结果。

2.开动脑筋

使用等差数列求和公式进行求和,从数学的角度大家都比较好理解。在计算机中也可以使用此方式进行求和,但在很多种情况下,类似此类的编程过程使用的是循环方式。在从数学思维向计算机思维转换的过程中,需要思考以下两个问题。

规划院

1.思 路分析

计算机编程中的赋值语句“=”不等同于数学中的“=”。循环计数变量x的初始值为1,以后每次循环都要让x累加1。循环累加求和变量sum的初始值为0,以后每次循环都要让sum累加x。

在Python中,设置循环语句时需要考虑循环变量的初始值、终止值以及循环次数之间的关系。以1+2+3+…+99+100为例,各数值如下图所示。

2.算法描述

根据上述思路分析,求解步骤如下。

第1步:设置sum的初始值为0。

第2步:设置循环变量x,初始值为1,终止值为101,步长为1。

第3步:设置循环体内的语句,即sum=sum+x。

第4步:输出最终的循环累加结果sum。

在以上的求解过程中,需要循环100次,我们将这种结构称为循环结构,其算法流程图如下图所示。

加工坊

1.编程实现

2.测试程序

3.答疑解惑

在编写程序时,要注意下图所示的易错点。

在循环语句for x in range(1,101,1):中,最为重要的是循环范围的设置。在调试程序时,要注意测试循环的边界值。

4.优化程序

本案例中的循环语句还可以进一步优化为for x in range(101):,即可以省略初始值1与步长1,结果是一样的。这是因为range()中默认的初始值是1,步长也是1。

阅览室

1.循环结构

循环结构是指 程序重复执行循环语句中的一行或多行代码,其3个要素为循环变量、循环体和循环终止条件。

2.循环结构的优点

使用循环结构可 以提高程序运行效率。例如,如果要求1+2+3+…+9999+10000的和,只需将原循环代码中的101改为10001即可。

同理,如果要分别求1+3+5+…+97+99和2+4+6+…+98+100的和,只需修改原物质代码中的步长为2,以及相应的初始值即可。

3.for循环中range()作用

在for i in range(1,4,1):语句中,i是一个自定义变量,i的初始值为1,每次循环自加1,直到等于3时,循环结束。例如,for i in range(0,10,1):的意思就是把数值0、1、2、3、4、5、6、7、8、9依次赋给i,每循环一次,i就自动增加1。其他应用如下表所示。

创新园

1.阅读程序写结果

2.完善程序

请在下面程序中的下画线处填写正确的代码,完善程序,使程序运行后输出由五角星排列组成的直角三角形。

3.编写程序

编写一个程序,求1×2×3×4×5×6×7×8×9的积。

【提示】设置用于保存阶乘值的变量sum初始值为1,使用for循环,定义循环变量x初始值为1,让x从1变化到9,循环9次,在循环体中设置代码sum=sum*x。

第8课 妙算最大公约数——while循环

扫一扫,看视频

最大公约数,也称最大公因数,是指两个或多个整数共有约数中最大的一个。a和b的最大公约数记为(a,b)。编写一个Python程序,求任意两个正整数的最大公约数并输出该最大公约数。

研究室

1.理解题意

求最大公约数有多种方法,常见的有辗转相除法、质因数分解法、短除法和更相减损法。本案例重点介绍欧几里得算法,即计算机编程中与while循环有关的辗转相除法。

辗转相除法就是用较小数除以较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止,此时最后的除数就是这两个数的最大公约数。例如,使用辗转相除法求319与377这两个数的最大公约数的过程如下。

2. 开动脑筋

根据上面求319与377这两个数的最大公约数的示例,思考并回答下面的问题。

规划院

1.思路分析

Python中的循环方式有两种,其中for循环是在知道循环次数的情况下使用的,而while循环是在不清楚最终要循环多少次,只需给出符合循环结束的条件的情况下使用的。

要让两个数相互交换,需引入第3个数。以交换两杯水为例,要想让a和b这两个杯子的水进行交换,先要将a杯子中的水倒入c杯子中,再将b杯子中的水倒入a杯子中,最后将c杯子中的水倒入b杯子中,即可完成两杯水的交换,如下图所示。

2.算法描述

根据上述的思路分析,求解步骤如下。

第1步:输入任意两个正整数a和b。

第2步:判断两个正整数a和b的大小,若a<b,则两个数交换。

第3步:将两整数相除的余数赋给x,即x= a%b。

第4步:设置while循环,循环执行条件x != 0。

第5步:设置while循环体代码,如果余数不等于 0,则进行辗转相除,即a=b,b=x,x=a%b。

第6步:如果余数不等于0,即while循环一直循环执行第5步。

第7步:如果余数等于0,则停止while循环。

第8步:输出最终b的值。

根据以上的求解过程,其算法流程图如下页图所示。

加工坊

1.编程 实现

2.测试程序

3.答疑解惑

在编写辗转相除法程序时,特别是在两个数进行互相交换时,要注意交换表达式的先后顺序,顺序不可以错。常见的几个易错点如下图所示。

在循环语句while (x!= 0):中,最为重要的是while循环结束条件的设置。在调试程序时,要注意测试循环的边界值。

4.优化程序

除了可以使用while循环的辗转相除法求最大公约数外,也可以使用for循环的逐一列举法求出两个数的最大公约数,其程序代码如下图所示。

阅览室

1.for循环

f or循环可以用来遍历某一对象。遍历,通俗点来说,就是把这个循环中的第一个元素到最后一个元素依次访问一次,类似老师上课点名时把每个同学的姓名逐一点一次。

2.while循环

while循环是在循环条件不成立时结束循环。

创新园

1.阅读程序写结果

2.修改程序

下列程序的功能是输出20以内的奇数之和。其中标号处有错误,请改正。

3.编写程序

有这样一个印度传说,舍罕王打算重赏象棋发明人—宰相西萨·班·达依尔,便问他想要什么。达依尔说:“陛下,请您在这张棋盘的第1个小格内,赏给我1粒麦子,在第2个小格内给2粒,在第3个小格内给4粒,这样下去,每一小格的麦子都比前一小格多一倍。请将棋盘上64格摆满的麦粒都赏给我吧。”国王慷慨地答应了。但当把一袋又一袋的麦子搬来开始计数时,国王才发现,即使将全国的小麦都拿来,也无法兑现对达依尔的诺言。那么达依尔到底要求国王赏赐他多少粒麦子呢?

你可以使用计算机编程告诉国王达依尔要的麦子数吗?

【提示】可以使用while循环,求1+2+22+23+24+…+263的和。

相关图书

中学生C++创意编程
中学生C++创意编程
青少年编程魔法课堂 Python图形化创意编程
青少年编程魔法课堂 Python图形化创意编程
写给 青少年的人工智能 实践
写给 青少年的人工智能 实践
青少年编程魔法课堂 C++图形化创意编程
青少年编程魔法课堂 C++图形化创意编程
青少年Python趣味编程
青少年Python趣味编程
趣味掌控板编程
趣味掌控板编程

相关文章

相关课程