小学Python系列少儿编程课程《第3章 神奇的分支和循环》课件(共41张PPT)

资源下载
  1. 二一教育资源

小学Python系列少儿编程课程《第3章 神奇的分支和循环》课件(共41张PPT)

资源简介

(共41张PPT)
Python少儿编程
第三章 神奇的分支和循环
目录
1.1
前进的向导
1.2
选择不同的道路
1.3
摆脱重复的任务
PART 01
前进的向导
什么是流程图
1.1
流程图是对某一个问题的定义、分析或解法的图形表示,图中用各种符号来表示操作、数据、流向及装置等。
程序流程图则表示程序的运行顺序,是一种常用的表示算法的图形化工具。换言之,程序流程图就是通过画图的方式表达程序运行的所有路径,通过使用箭头和框图把程序运行的方向与步骤展示出来。
程序流程图的基本符号
1.2
图3-1 程序流程图中常用的符号
程序流程图的基本符号
1.2
(1)端点符表示算法的起始或结束。
(2)判断符用于对给定的条件进行判断,根据判断的结果来选择流程方向。它只有一个入口,可以有若干个出口,但有且仅有一个出口被激活。
(3)处理符表示算法中的具体处理步骤。
(4)流线符表示数据流,箭头指示流向。
(5)连接符用于连接因页面写不下而断开的流程线,对应的连接符应有同一标记。
(6)注解符用来标识注解内容,它不是程序流程图的必要部分,不反应流程和操作,只是为了对流程图中某些符号的操作进行必要的补充说明,以帮助读者更好的理解。
(7)数据符表示未指定媒体的数据,可用于输入和输出,比较通用。程序流程图还包括一些特殊的数据符,常用的有文件符、显示符和人工输入符。
程序流程图的基本符号
1.2
在程序设计中,包含了3种基本结构,即顺序结构、分支结构和循环结构,其流程图如图3-2所示。
图3-2 3种基本结构的流程图
扫地机器人的工作流程图
1.3
扫地机器人工作时传感器会检测前方、左边和右边是否有障碍物,并将检测结果传给扫地机器人进行判断。扫地机器人根据判断结果规划路径,具体如下。
(1)判断前方是否有障碍物,如果没有,
则机器人前行;如果有,则进行下一步判断。
(2)判断左边是否有障碍物,如果没有,
则机器人左转;如果有,则进行下一步判断。
(3)判断右边是否有障碍物,如果没有,
则机器人右转;如果有,则后退。
(4)循环执行(1)~(3),直到机器人停止工作。
扫地机器人的工作流程图
1.3
图3-3 扫地机器人的工作流程图
PART 02
选择不同的道路
简单的if语句
2.1
if语句允许程序通过判断条件是否成立而选择是否执行指定的语句。if语句的基本语法格式如下。
if 判断条件:
语句块
if语句的执行过程是:如果判断条件为True,执行语句块,否则直接执行if语句后的语句。例如:
weather = '晴' #创建变量weather代表天气,赋值为“晴”
if weather == '晴': #如果天气为晴
print('去公园玩') #输出“去公园玩”
if-else语句
2.2
if语句只允许在条件为True时执行指定的语句,而if-else语句还可在条件为False时执行指定的语句,其基本语法格式如下。
if 判断条件:
语句块1
else:
语句块2
上述语句的执行过程是:当判断条件为True时,执行语句块1,否则执行语句块2。
if-else语句
2.2
【例3-1】 根据输入的天气选择是否出门游玩。
【参考代码】
weather = input('请输入天气情况:') #输入变量weather的值
if weather == '晴' or weather == '多云': #如果天气为晴或多云
print('去公园玩') #输出“去公园玩”
else: #如果不是
print('在家玩') #输出“在家玩”
【问题分析】 本例题可使用if-else语句进行条件判断,如果输入天气为“晴”或“多云”,输出“去公园玩”,否则输出“在家玩”。
if-else语句
2.2
【运行结果】 程序运行结果如图3-4所示。
图3-4 例3-1程序运行结果
if-elif-else语句
2.3
编程时常常需要判定一系列的条件,一旦其中某一个条件为True就立刻停止。此时,可采用if-elif-else语句(elif是else if的简写),其基本语法格式如下。
if 判断条件1:
语句块1
elif 判断条件2:
语句块2
……
elif 判断条件n:
语句块n
else:
语句块n+1
if-elif-else语句
2.3
表3-1 温度和穿衣建议对照关系
【例3-2】 根据输入的温度temperature给出穿衣建议,温度和穿衣建议对照关系如表3-1所示。
if-elif-else语句
2.3
【参考代码】
#输入温度temperature的值并将其转化为浮点数
temperature = float(input('请输入温度(℃):'))
if temperature >= 28.0: #如果温度大于等于28.0
print('穿衣建议:轻棉织物制作的短衣、短裙、短裤等') #输出穿衣建议
elif temperature >= 24.0: #如果温度大于等于24.0小于28.0
print('穿衣建议:棉麻面料的衬衫、薄长裙、薄T恤等') #输出穿衣建议
elif temperature >= 21.0: #如果温度大于等于21.0小于24.0
print('穿衣建议:单层棉麻面料的T恤衫、长裤、薄牛仔裤等') #输出穿衣建议
elif temperature >= 18.0: #如果温度大于等于18.0小于21.0
print('穿衣建议:薄外套、风衣、薄毛衣等') #输出穿衣建议
elif temperature >= 15.0: #如果温度大于等于15.0小于18.0
print('穿衣建议:风衣、外套、毛衣等') #输出穿衣建议
elif temperature >= 11.0: #如果温度大于等于11.0小于15.0
print('穿衣建议:毛衣、风衣、大衣等') #输出穿衣建议
elif temperature >= 6.0: #如果温度大于等于6.0小于11.0
print('穿衣建议:棉衣、冬大衣、薄羽绒服等') #输出穿衣建议
else: #以上条件都不满足
print('穿衣建议:羽绒服、厚棉衣、冬大衣等') #输出穿衣建议
if-elif-else语句
2.3
【运行结果】 程序运行结果如图3-5所示。
图3-5 例3-2程序运行结果
【程序说明】 每个else本身都隐含了一个条件,如第1个elif实质上表示条件24.0≤temperature<28.0成立,此隐含条件与对应的if所给出的条件完全相反。在编程时要善于利用隐含条件,使程序代码清晰简洁。
嵌套的if语句
2.4
在if语句中又包含一个或多个if语句时,称为if语句的嵌套,其基本语法格式如下。
if 判断条件1:
if 判断条件2:
语句块1
else:
语句块2
else:
if 判断条件3:
语句块3
else:
语句块4
嵌套的if语句
2.4
【例3-3】 分配任务。在社会实践活动中有三项任务,分别是:种树、采茶、打扫街道。依据小组人数及男生、女生人数决定小组的任务,人数小于5的小组负责打扫街道,人数大于等于5且男生多于女生的小组负责种树,人数大于等于5且男生不多于女生的小组负责采茶。输入小组男生、女生人数,输出小组接受的任务。
【问题分析】 本例题可使用嵌套的if语句实现,程序流程图如图3-6所示。
嵌套的if语句
2.4
图3-6 分配任务流程图
嵌套的if语句
2.4
【参考代码】
boy = int(input('请输入男生人数:')) #输入男生人数并转化为整数
girl = int(input('请输入女生人数:')) #输入女生人数并转化为整数
total = boy + girl #计算总人数
if total < 5: #如果总人数小于5
print('打扫街道') #输出“打扫街道”
else: #如果总人数大于等于5
if boy > girl: #如果男生人数大于女生人数
print('种树') #输出“种树”
else: #如果男生人数小于等于女生人数
print('采茶') #输出“采茶”
嵌套的if语句
2.4
【运行结果】 程序运行结果如图3-7所示。
图3-7 例3-3程序运行结果
PART 03
摆脱重复的任务
while语句
3.1
while循环语句的基本语法格式如下。
while 判断条件:
语句块 #循环体
上述语句的执行过程是:当判断条件为True时,执行循环体;接着再次判断条件,如果为True,继续执行循环体;如此反复,直到判断条件为False时结束循环,执行while语句后的语句。
while语句
3.1
【例3-4】 输入一个整数n,求S=1+2+3+…+n的值。
【问题分析】 本例题可使用循环结构来实现。重复执行循环体n次,每次加一个数。继续分析发现,每次累加的数是有规律的,后一个数是前一个数加1。因此,只需在加完上一个数i后,使i加1就可得到下一个数。
【参考代码】
n = int(input('请输入一个整数:')) #输入n的值,并转化为整数
i = 1 #创建变量i,赋值为1
S = 0 #创建变量S,赋值为0
while i <= n: #循环,当i>n时结束
S += i #求和,将结果赋给S
i += 1 #变量i加1
print('S=1+2+3+…+n=', S) #输出S的值
while语句
3.1
【运行结果】 程序运行结果如图3-8所示。
图3-8 例3-4程序运行结果
在使用while语句时,需要注意以下两点。
(1)变量初始化描述要完整、准确。
(2)在循环体中应有使循环趋于结束的语句。
for语句
3.2
1.基本语法格式
for语句的基本语法格式如下。
for 变量in 序列:
语句块 #循环体
上述语句的执行过程是:如果序列中包含表达式,则先进行求值计算;然后,序列中的第一个元素赋给变量,执行循环体;接着序列中的第二个元素赋给变量,执行循环体;依此类推,直到序列中最后一个元素赋给变量,执行循1环体后for循环结束,执行for语句后的语句。
for语句
3.2
1.基本语法格式
例如,使用for循环输出字符串“python”中的每一个字符,可使用下面代码实现。
for x in 'python':
print(x)
上述代码运行结果如图3-9所示。
图3-9 for循环输出字符串“python”中的每一个字符
for语句
3.2
2. range()函数
for语句经常与range()函数一起使用,range()函数是Python的内置函数,可创建一个整数列表。range()函数的语法格式如下。
range([start,]stop[,step])
(1)start:计数从start开始,默认为0。例如,range(5)等价于range(0,5)。
(2)stop:计数到stop结束,但不包括stop。例如,range(0,5)是[0,1,2,3,4]。
(3)step:步长,默认为1。例如,range(0,5)等价于range(0,5,1)。
for语句
3.2
2. range()函数
【例3-5】 鸡兔同笼。大约在1500年前,《孙子算经》中记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”编程计算鸡和兔的数量并输出。
【问题分析】 根据题意设鸡和兔的数量分别为cock和rabbit,如果笼中全部是鸡,鸡的最大数量为35,所以cock在0~35取值,且rabbit=35 cock。确定了鸡的范围后进行穷举并判断,由于鸡有两只脚,兔有4只脚,所以判断条件为鸡和兔的脚的总数量为94。
【参考代码】
for cock in range(0, 35 + 1): #循环范围为0~35,cock表示鸡的数量
rabbit = 35 - cock #计算兔的数量
if cock * 2 + rabbit * 4 == 94: #如果鸡和兔的脚的总数为94
print('鸡有', cock, '只') #输出鸡的数量
print('兔有', rabbit, '只') #输出兔的数量
for语句
3.2
2. range()函数
【运行结果】 程序运行结果如图3-10所示。
图3-10 例3-5程序运行结果
嵌套的循环语句
3.3
一个循环语句的循环体内包含另一个完整的循环结构,称为循环的嵌套。嵌套在循环体内的循环称为内循环,嵌套有内循环的循环称为外循环。内循环中还可以嵌套循环,这就是多重循环。
while语句和for语句可以互相嵌套,自由组合。外层循环体中可以包含一个或多个内层循环结构,但要注意的是,各循环必须完整包含,相互之间不允许有交叉现象。
嵌套的循环语句
3.3
【例3-6】 输出下面九九乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
…… …… …… …… ……
1*9=9 2*9=18 3*9=27 4*9=36 …… 9*9=81
【问题分析】 该问题可使用for语句的循环嵌套来实现,外循环控制行,内循环控制列。
嵌套的循环语句
3.3
【参考代码】
for x in range(1, 10): #循环变量x从1到9
for y in range(1, x + 1): #循环变量y从1到x
print(y, '*', x, '=', x * y, '', end='') #输出乘法表达式
print('') #输出空字符串,换行
【运行结果】 程序运行结果如图3-11所示。
图3-11 例3-6程序运行结果
break和continue语句
3.4
【例3-7】 身份验证。循环判断用户输入的账号和密码是否正确,如果正确则退出。
1. break语句
【问题分析】 首先设定用户的正确账号和密码;然后使用while循环,在循环中,输入账号和密码,如果都正确则输出登录成功并跳出循环,否则输出账号或密码输入有误,继续循环。
break和continue语句
3.4
1. break语句
【参考代码】
name = 'python' #创建变量name表示正确账号
password = '12345678' #创建变量password表示正确密码
while True: #循环
name_input = input('请输入账号:') #输入账号
password_input = input('请输入密码:') #输入密码
if name != name_input : #如果账号不正确
print('输入的账号有误!') #输出账号有误
elif password != password_input: #如果密码不正确
print('输入的密码有误!') #输出密码有误
else: #如果账号和密码都正确
print('登录成功!') #输出登录成功
break #跳出循环
break和continue语句
3.4
1. break语句
【运行结果】 程序运行结果如图3-12所示。
图3-12 例3-7程序运行结果
break和continue语句
3.4
【例3-8】 学生休息询问。班级组织徒步,全程5公里,每1公里询问学生是否需要休息,如果需要则休息10分钟,否则继续徒步。
2. continue语句
【问题分析】 使用for循环语句,并使用range(1, 6)生成循环变量。在循环中输出已徒步的公里数,然后输入“y”或“n”回答是否需要休息,如果输入为“n”则使用continue语句结束本次循环,不输出后面的休息10分钟。结束循环后,输出到达终点。
【参考代码】
for i in range(1, 6): #循环变量i从1到5
print('已徒步', i, '公里') #输出已徒步的公里数
if i != 5:
answer = input('是否需要休息?(y/n):') #输入回复
if answer == 'n': #如果回复为“n”
continue #结束本次循环
print('休息10分钟') #输出休息10分钟
print('到达终点') #输出到达终点
break和continue语句
3.4
【运行结果】 程序运行结果如图3-13所示。
2. continue语句
图3-13 例3-8程序运行结果
【程序说明】 若把程序中的continue语句换成break语句,则输入第一个“n”后将会终止程序。
感谢观看

展开更多......

收起↑

资源预览