内容正文:
第8课 顺序结构 分支结构
第三章│算法的程序实现
——3.2 Python语言程序设计,教材第79~85页
新课程目标
1.掌握Python常见的内建函数。 2.能够设计顺序结构的程序实现。 3.能够设计分支结构的程序实现。
目录
CONTENTS
教材整体感悟 知本与探源
01
02
命题整体感知 尝试与研析
01
教材整体感悟 知本与探源
教材整体感悟 知本与探源
1.Python常见内建函数
(1)输入输出函数
函数 功能 应用举例 输出结果
input([提示字符串]) 键盘___________ name=input
('你的名字是: ') —
print(输出值1,
输出值2,……) 程序运行结果输出 print('sum=',sum)
(其中sum=10) ____________
输入数据
sum=10
教材整体感悟 知本与探源
(2)数据类型转换函数
函数 功能 应用举例 返回值
int( ) 将其他类型数据
转换成________ float→int int(3.4) _____
str→int int('3') _____
float( ) 将其他类型数据
转换成________ int→float float(3) _______
str→float float('-7') _________
str( ) 将其他类型数据转换
成______________ int→str str(2) _______
float→str str(5.5) _________
整型
3
3
实型
3.0
-7.0
字符串型
'2'
'5.5'
教材整体感悟 知本与探源
注意:int()函数将实型数据转换成整型数据时,直接
______________________;将字符串型数据转换成整型数据时,只能针对_______________。
截取数据的整数部分
整数字符串
教材整体感悟 知本与探源
(3)常用数学函数
函数 功能 应用举例 返回值 应用举例 返回值
abs( ) 返回
___________ abs(-4) _____ abs(6) _____
round(x[,n]) 返回浮点数x的四舍五入值(四舍六入,
___________)x表示数值表达式,n表示小数点位数 round(3.5) _____ round(2.5) _____
round(2.345,1) _______ round(3.78,1) ________
绝对值
4
6
五留双
4
2
2.3
3.8
教材整体感悟 知本与探源
(4)内码字符转换函数
函数 功能 应用举例 返回值
chr( ) 将ASCII值转换成_________ chr(65) _______
chr(50) ______
ord( ) 将字符转换成___________ ord('A') ______
ord('2') _______
字符
'A'
'2'
ASCII值
65
50
教材整体感悟 知本与探源
(5)数据结构相关函数
函数 功能 应用举例 返回值
len( ) 返回对象(字符串,列表,字典)的长度,即
_____________ len('AaBbCc') _____
len([1,3,4,2,6]) _____
len({'语文':108,'数学':110}) _____
max( ) 返回序列的___________ max([1,3,4,2,6]) _____
max(['one','two','three','four']) _________
max('AaBbCc') ______
min( ) 返回序列的___________ min([1,3,4,2,6]) _____
min(['one','two','three','four']) __________
min('AaBbCc') _______
元素个数
6
5
2
最大值
6
'two'
'c'
最小值
1
'four'
'A'
教材整体感悟 知本与探源
2.顺序结构
(1)算法中各个步骤按照先后顺序依次执行的结构。
(2)交换两个变量的值的方法
序列赋值:a,b=b,a
数学法:a=a+b;b=a-b;a=a-b
第三方交换:t=a;a=b;b=t
教材整体感悟 知本与探源
3.分支结构
先进行条件判断,再根据判断结果分别执行不同处理的控制结构。算法进行程序实现时,分支结构可以用if语句来实现。
教材整体感悟 知本与探源
分支结构的算法实现
1.单分支结构
流程图走向:当表达式为真时,执行语句块;否则什么都不执行 if <条件表达式>:
<语句块>
流程图走向:当score>60时,输出“合格”;否则什么都不执行 score=float(input())
if score>60:
print('合格')
教材整体感悟 知本与探源
2.双分支结构
流程图走向:当表达式为真时,执行语句块1;否则(表达式为假),执行语句块2 if <条件表达式>:
<语句块1>
else:
<语句块2>
流程图走向:当x>0时,给变量y赋x的值;否则给变量y赋-x的值 x=float(input())
if x>0:
y=x
else:
y=-x
教材整体感悟 知本与探源
3.多分支结构
流程图走向:当<表达式1>的值为True时,执行<语句块1>, 整个if语句结束。若为假,则判断<表达式2>,以此类推。直到找到一个为真的条件时,才执行相应的语句块,整个if语句结束
if<条件表达式1>:
<语句块1>
elif<条件表达式2>:
<语句块2>
…
elif<条件表达式n>:
<语句块n>
else:
<语句块n+1>
教材整体感悟 知本与探源
(1)一个if语句可以包含多个elif子句,最后一个else子句是可选的。
(2)Python语句中的缩进:语句块缩进4个空格。
02
命题整体感知 尝试与研析
命题整体感知 尝试与研析
例1下列Python 表达式的值为98 的是( )
A.abs(-99)+1 B.ord(”b”)
C.len(”97”)+1 D.chr(98)
【解析】 选项A表达式的值为100;选项C表达式的值为3;选项D表达式的值为”98”。选项B正确。
B
命题整体感知 尝试与研析
变式1下列Python 表达式的值为数值5 的是( )
A.int(max(”5”,”11”,”100”))
B.len([1,2,3,5])
C.str(5)
D.abs(float(-5))
【解析】 选项B表达式的值为4;选项C表达式的值为”5”;选项D表达式的值为5.0,选项A正确。
A
命题整体感知 尝试与研析
变式2下列逻辑表达式中,值为True 的是( )
A.int(-5.6)==len(”Python”)
B. ”Python”[5:7]==”on”
C.6+int(”-3”)<=len(”-3”)
D.1750//100%10==7
【解析】 选项A,-5==6,值为False;选项B:”n”==”on”,值为False;选项C,3<=2, 值为False;选项D的值为True,选项正确。
D
命题整体感知 尝试与研析
变式3[2024·玉环中学检测]已知变量s=”2023abc2”,下列Python 表达式中,值最小的是( )
A.int(s[2:4]+”6”)//8 B.len(s) * 3
C.round(float(s[:3])/6,1) D.ord(min(s[3::-1]))
【解析】 选项A的值是236//8=29;选项B的值是8*3=24;选项C的值是round(202/6,1)=33.7;选项D的值是ord(min(”3202”))=ord(”0”)=48。故选项B的值最小。
B
命题整体感知 尝试与研析
例2有如下Python程序段:
n,m=9,3
n,m=m,n
a=m-3%2
b=n//2+6**n
print(a,b)
执行该程序段后,输出的结果是( )
A.2 10077700 B.8 217 C.8 19 D.2 217
B
命题整体感知 尝试与研析
【解析】 n,m=9,3
n,m=m,n 执行后 n=3;m=9
a=m-3%2 执行后a=9-1=8
b=n//2+6**n 执行后b=1+6**3=1+216=217
选项B正确。
命题整体感知 尝试与研析
变式有如下Python 程序段:
a=”1357”
list1=[”car”,”bus”,”bike”]
list1[1]=a[1:3]
print(list1)
执行该程序段后,输出的结果是( )
A.[”car”,”bus”,”bike”]
B
命题整体感知 尝试与研析
B.[”car”,”35”,”bike”]
C.[”car”,35,”bike”]
D.[”car”,”3”,”5”,”bike”]
【解析】 list1[1]=a[1:3]语句执行后,list1=[”car”, ”35”,”bike”],选项B正确。
命题整体感知 尝试与研析
例3[2024·书生中学检测]有如下Python程序段:
a=[5,2,8,14,3,11]
sum=a[1]+a[3]-a[5]
v=sum%2
if v==1:
print(1-v)
else:
命题整体感知 尝试与研析
print(-1)
执行该程序段后,输出的结果是( )
A.1 B.0
C.报错 D.1
【解析】 sum=a[1]+a[3]-a[5]=2+14-11=5,v=sum%2=1,条件v==1成立,执行print(1-v),选项B正确。
B
命题整体感知 尝试与研析
变式1现有Python程序段如下,想要测试所有分支程序代码是否正确,下列数据中最恰当的一组是( )
x=int(input('请输入整数x: '))
if x>10:
y=x**2
elif x>0:
y=10*x
B
命题整体感知 尝试与研析
else:
y=0
print(y)
A.0,10 B.11,2,-1
C.-2,2,6 D.12,100,-100
【解析】 三分支结构,分为大于10、大于0且小于或等于10、小于或等于0三种情况。选项B的三个数据分别对应三个分支的条件,符合测试要求。
命题整体感知 尝试与研析
变式2有如下Python程序段:
x=int(input(”请输入整数: ”))
if x>0:
x=x//10
elif x>5:
x=x+1
else:
命题整体感知 尝试与研析
x=x**0.5
x%=6
print(x)
若输入x的值为20,则执行该程序段后,输出的结果是( )
A.2 B.3 C.4 D.5
【解析】 x=20,条件x>0成立,执行x=x // 10=2,分支结构结束,接着执行语句x%=6,x=2,选项A正确。
A
命题整体感知 尝试与研析
变式3[2024·衢州一中检测]有如下Python 程序段:
x=25;y=20
if x>y:
y+=20
if y>50:
y=y**2
else:
命题整体感知 尝试与研析
y=y**2
y=x+y
print(y)
执行该程序段后,输出的结果是( )
A.1600 B.425
C.400 D.40
【解析】 条件x>y成立,执行if下面的语句块,y=40,条件y>50不成立,程序结束,选项D正确。
D
命题整体感知 尝试与研析
例4用Python算法控制结构描述“您所在街道25分钟后小雨,50分钟后雨停”,设t为距离天气预报发布时间的间隔(单位:分钟),下列选项正确的是( )
A.if t>50:
print(”雨停”)
elif t>25:
print(”小雨”)
A
B.if t>50:
print(”雨停”)
else:
print(”小雨”)
命题整体感知 尝试与研析
C.if t>25 and t<=50:
print(”小雨”)
else:
print(”雨停”)
【解析】 选项A,该算法描述为:距离天气预报发布时间t>50时,雨停;距离天气预报发布时间25<t≤50时,小雨,与自然语言描述算法相符。
D.if t>25:
print(”小雨”)
elif t>50:
print(”雨停”)
命题整体感知 尝试与研析
变式1最近,小蓝所在学校进行了体检,并获得了全校学生的身高和体重信息。小蓝利用该信息计算全校学生的身体质量指数BMI。公式为BMI=体重/身高2,其中身高的单位为m,体重的单位为kg。若BMI值小于18,则偏瘦;若BMI值在18到24之间,则正常;若BMI值大于24,则偏胖。已知某同学的BMI 值存储在变量X 中,小蓝编写程序判断该同学的身体状况信息,并保存到变量Y中,则下列程序段无法实现该功能的是( )
A
命题整体感知 尝试与研析
A.Y=”偏瘦”
if X>=18:
Y=”正常”
elif X>24:
Y=”偏胖”
B.Y=”偏胖”
if X<18:
Y=”偏瘦”
elif X<=24:
Y=”正常”
命题整体感知 尝试与研析
C.if X>24:
Y=”偏胖”
elif X>=18:
Y=”正常”
else:
Y=”偏瘦”
【解析】 选项A,只要变量X 的值大于或等于18,输出结果均为“偏胖”,与题干要求不符。
D.if 18<=X<=24:
Y=”正常”
else:
Y=”偏瘦”
if X>18:
Y=”偏胖”
命题整体感知 尝试与研析
变式2[2024·萧山中学检测]某款耳机有入耳检测功能,把耳机塞入耳朵后,即可自动连接手机或者电脑,从耳朵上取出耳机就自动断开连接。该功能的实现是在耳机中植入了3个传感器: 正面光线距离感应器、背面光线距离感应器、运动加速度感应器,当检测到运动加速度感应器(用A表示)为True且正面光线距离感应器(用B表示)和背面光线距离感应器(用C表示)均为False时,说明耳机已放入耳中。用Python算法控制结构描述耳机入耳,下列选项正确的是( )
B
命题整体感知 尝试与研析
A.if A:
if not B or not C:
print(”已入耳”)
else:
print(”未入耳”)
B.if A:
if not B and not C:
print(”已入耳”)
else:
print(”未入耳”)
命题整体感知 尝试与研析
C.if A or not B and not C:
print(”已入耳”)
else:
print(”未入耳”)
D.if A:
if B and C:
print(”已入耳”)
else:
print(”未入耳”)
命题整体感知 尝试与研析
【解析】 选项A, A先为True, 然后B为False或者C为False,表示入耳,否则表示未入耳,选项错误;选项C,A为True或者B、C均为False,则表示入耳,选项错误;选项D,“B and C” 表示光线距离感应均为True,则表示入耳,选项错误。
命题整体感知 尝试与研析
|随|堂|检|测|
1.下列Python表达式中, 值为True的是( )
A.round(-4.6)<int(-4.4) B.'100'>'28'
C.'Pt' in 'Python' D.16%5>24//8
【解析】 round(-4.6)=-5(四舍六入五留双),int(-4.4)=-4,表达式的值为True,选项A正确。
A
命题整体感知 尝试与研析
2.下列Python表达式中, 结果与其他三项不同的是( )
A.int(5.8//2)
B.len([”apple”,[”山东”,9.8]])
C.abs(ord(”A”)-ord(”a”))//16
D.max([7,6,5,4,3])%3
【解析】 选项A,值为2;选项B,值为2;选项C,abs(ord(”A”)-ord(”a”))=32,则值为2;选项D,值为1。故选项D符合题意。
D
命题整体感知 尝试与研析
3.有如下Python 程序段:
s=input(”请输入字符串: ”)
if len(s)<=5:
t=s
else:
t=s[0:4]
print(t)
命题整体感知 尝试与研析
若输入“中国China”,则执行该程序段后,输出的结果是( )
A.中国 B.中国C
C.中国Ch D.中国China
【解析】 len(”中国China”)=7,if语句不成立,执行else的语句块,t=s[0:4]=“中国Ch”。选项C 正确。
C
命题整体感知 尝试与研析
4.有如下Python 程序段:
x=20;y=24
if not x<y:
y+=x
if y>50:
y*=2
else:
命题整体感知 尝试与研析
if y//x>2:
y=x+y
print(y)
执行该程序段后,输出的结果为( )
A.88 B.64 C.44 D.24
【解析】 条件not x<y不成立,y不变,条件y>50不成立,执行else下面的语句块;y=24,条件y//x>2 不成立,程序结束,选项D正确。
D
命题整体感知 尝试与研析
5.[2024·柯桥中学检测]用Python算法控制结构描述“行驶速度若低于20 km/h,被定义为拥堵路段,若高于或等于20 km/h且低于或等于40 km/h则为行驶缓慢,40 km/h 以上为道路畅通”,下列选项不正确的是( )
C
A.if v<20:
print(”拥堵路段”)
elif v<=40:
print(”行驶缓慢”)
else:
print(”道路畅通”)
B.if v>40:
print(”道路畅通”)
elif v>=20:
print(”行驶缓慢”)
else:
print(”拥堵路段”)
命题整体感知 尝试与研析
【解析】 选项C,v>40时, 输出“道路畅通”,v<40时,输出“行驶缓慢”,v=40时,输出“拥堵路段”,不符合题意,选项错误。
C.if v>40:
print(”道路畅通”)
elif v<40:
print(”行驶缓慢”)
else:
print(”拥堵路段”)
D.if v>=20:
if v<=40:
print(”行驶缓慢”)
else:
print(”道路畅通”)
else:
print(”拥堵路段”)
命题整体感知 尝试与研析
6.[2023·浙江1月选考][多选]菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t 正常、偏低、偏高时,将sta的值分别设为0、1、2。下列Python 程序段中符合要求的有( )
A.if t<tmin:
sta=1
if t>tmax:
sta=2
else:
sta=0
B.if t<tmin:
sta=1
elif t>tmax:
sta=2
else:
sta=0
C.sta=0
if t<tmin:
sta=1
else:
sta=2
D.sta=0
if t<tmin:
sta=1
if t>tmax:
sta=2
BD
命题整体感知 尝试与研析
【解析】 选项A,逻辑错误,当t 值小于tmin时,最后的返回值为sta=0,与题干要求不符;选项C,温度t 值判断后,最后返回值是sta=1 或sta=2,当温度t 正常时,不会返回sta=0,与题干要求不符。选项B、D正确。
温馨提示:请完成高效作业8
感谢聆听,再见!
$$