第三章 课时4 分支结构及程序实现 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

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

第三章 课时4 分支结构及程序实现 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

资源简介

课时4 分支结构及程序实现
课时目标
1.理解分支结构的执行过程。2.掌握分支结构的三种if语句格式的使用。3.能根据实际问题选用合适的分支结构来解决。
1.选择结构通过判断某些特定条件是否满足来决定下一步的执行流程,常见的有单分支选择结构、双分支选择结构、多分支选择结构。
2.一个选择结构是一个语句块,块内的语句一般缩进4个空格。在Python中对缩进有严格要求,可以根据缩进来判断语句的从属关系。
3.选择语句条件表达式结果的数据类型是逻辑型,值只有True和False两个。
4.算法进行程序实现时,分支结构可用if语句来实现。
if语句一般格式是:
(1)单分支选择结构
if <条件>:
<语句块1>
(2)双分支选择结构
if<条件>:
<语句块1>
else:
<语句块2>
(3)多分支选择结构
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>

elif <条件N>:
<语句块N>
else:
<语句块N+1>
①语句块是一行或放在一起的多行语句,一般通过行缩进来标识if、else、elif下方的语句块必须采用相同的缩进。
②分支结构的条件只判断一次,符合条件的语句块也只执行一次。
               
例1 调查发现人们更倾向于选择数字对称的车牌号,如车牌号“浙H64M46”。于是小石编写了一个判断车牌号是否对称的代码,Python程序如下:
cp=input("请输入车牌号(格式如“浙H64M46”):")
s1=cp[2:4]
s2=① 
if②  :
  print("不是对称车牌")
else:
  print("是对称车牌")
为实现功能,划线处代码应为 (  )
A.①cp[6:5:-1]   ②s1==s2
B.①cp[5:] ②s1!=s2
C.①cp[5:6] ②s1==s2
D.①cp[:-3:-1] ②s1!=s2
答案 D
解析 本题考查字符串的切片。语句s1=cp[2:4]取字符串中索引位置2和3的字符。若要对称,则对应取cp索引位置为6和5的值。A选项索引位置5取不到。B选项不能正向取。C选项只能取一个字符。D选项当步长为负值时,第一个参数默认为-1,即字符串cp中最后一个索引位置,-3是取不到的,只能取了倒数第2个。
变式训练1 有下列Python程序段:
import random
s=input("请输入字符串:")
x=random.randint(3,6) #产生一个[3,6]之间的随机整数
n=len(s)
if len(s[0:x])  r=s[x:n]+s[0:x]
else:
  r=s[0:x]+s[x:n]
print(r)
执行该程序段,若输入“helloworld”(不包含双引号),则输出的结果不可能的是 (  )
A.loworldhel B.oworldhell
C.helloworld D.worldhello
答案 D
解析 本题综合考查了random模块函数的应用及分支结构及字符串的切片。x为采用random模块产生的[3,6]之间的随机整数,按照题意输入helloworld后n的值为10,带入if的条件表达式可得,执行第一个分支(将索引值x前面的字符后置)的条件为x<5,推得执行第二个分支(不改变字符顺序)的条件为x>=5,通过对选项的处理可知A选项中hel后置,x的值为3,可行;B选项hell后置,x的值为4,符合条件,可行;C选项不改变顺序,x>=5,可行;D选项hello后置,可得x=5,而x=5时应执行第二个分支的语句。
例2 用Python算法控制结构描述“您所在街道25分钟后小雨,50分钟后雨停”,设t为距离天气预报发布时间的间隔(单位:分钟),下列选项正确的是 (  )
答案 A
解析 本题考查选择结构。根据时间t,分成三个阶段。t<=25没有任何操作,25和50之间是小雨,50之后是雨停。B选项只能表示两种情况。C选项把t<=25归结为雨停。D选项若t>50,肯定满足条件t>25,因此只能表示一种情况。
变式训练2 某市“一户一表”水费单价标准如下:第一档次:每户每月不超过17立方米的用水量,供水价格为2.4元/立方米;第二档次:每户每月17立方米(不含)到30立方米(含)的用水量,供水价格比第一档提高0.5倍;第三档次:每户每月超过30立方米的用水量,供水价格比第一档提高2倍。根据水费单价标准,用Python算法控制结构描述“第二、三档次的供水价格”。设volumn为某个月的用水量,price为供水价格初始值为2.4(单位;元/立方米),下列选项正确的是 (  )
A.if volumn<=30:
  price=price*1.5
 else:
  price=price*3
B.if volumn>30:
  price=price*3
elif volumn>17:
   price=price*1.5
C.if volumn<30:
   price=price*1.5
 else:
 price=price*3
D.if volumn>=30:
   price=price*3
elif volumn>=17:
 price=price*1.5
答案 B
解析 本题考查选择算法结构。根据题目含义,将水价分为三个档次,其中第一个档次是原价。A选项不能区分第一档次和第二档次。B选项price为供水价格初始值为2.4,选择结构中有两种情况,符合题意。C选项当volumn小于30,包含第一二档。D选项的临界值不成立。
例3 象限是平面直角坐标系(笛卡尔坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y 轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,以下实现该分类的 Python 程序段中正确的是 (  )
A.if x==0 and y==0: result="原点"
if x==0 or y==0: result="数轴"
if x!=0 and y!=0:
  result="象限"
B.if x==0 or y==0: result="数轴"
if x==0 and y==0:
  result="原点"
else: 
  result="象限"
C.if x!=0 and y!=0:  
  result="象限"
if x==0 or y==0:
  result="数轴"
else:
  result="原点"
D.if x!=0 and y!=0: result="象限"
if x==0 or y==0: result="数轴"
if x==0 and y==0:
  result="原点"
答案 D
解析 本题考查Python基本控制结构。 (0,0)是原点,即 if x==0 and y==0 表示原点;(0,y)或者(x,0)分别表示 y 轴与 x 轴。A 选项,x==y==0 时,第 1 个和第 2 个 if 均成立。B选项if x==0 or y==0 且 x 与 y 不同时为 0 表示数轴,在第2个分支语句中,再次判断为"象限"。C选项条件x!=0 and y!=0成立,判断为"象限",在第2个分支语句中,再次判断为"原点",因此原点的判断需在数轴之前。 D选项分三种情况,用3条分支语句来表达这种情况。
变式训练3 BMI与身体状况关系如图所示
BMI<18 18≤BMI≤24 BMI>24
偏瘦 正常 偏胖
已知某同学的BMI值存储在变量X中,小蓝编写程序判断该同学的身体状况信息,并保存到变量Y中,则下列程序段无法实现该功能的是 (  )
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 = "偏瘦"
D.if 18<=X<=24:
    Y = "正常"
 else:
    Y = "偏瘦"
  if X>18:
    Y = "偏胖"
答案 A
解析 本题考查 Python分支结构基本语法。A 选项只要变量 X 的值大于等于 18,输出结果均为“偏胖”,与题干要求不符。
例4 正整数n若是它平方数的尾部部分若与该正整数n相等,则称n为同构数。判断一个两位数n是否是同构数。为实现上述功能,请在划线处填入合适的语句。
n=int(input("输入一个正整数"))
if    :
  print('是同构数')
else:
  print('不是同构数')
答案 n**2%100==n
解析 本题考查的是选择结构的条件和取余运算符的应用。选择结构要选择合适的条件判断,n是它平方数的尾部,n平方数的后两位数为n**2%100。
变式训练4 判断当前计算得到验证码变量yzm(整型)与商品识别条码s(字符串型)第13位是否相等,为实现上述功能,请在程序划线处填入合适的语句。
s="3203225155569"
if      :
  print("验证通过")
else:
  print("验证不通过")
答案 yzm==int(s[12])
解析 条件为计算结果与最后一位字符相同。但要注意类型的匹配,前者是数字,后者是字符串。
例5 输入一个身份证号码s(字符串型),如果他的第17位是奇数,表示该公民的性别为男性,否则为女性。为实现上述功能,请在程序划线处填入合适的语句。
s="330522********5115"
if    :
  print("女性")
else:
  print("男性")
答案 int(s[16])%2==0或int(s[16])%2!=1
解析 取出身份证号码s的第17位的值为文本,不能用于算术运算。判断是否是奇数的条件是除以2后的余数是否为0。
变式训练5 输入一个正整数n,判断它是否是一个完全平方数,若是则输出“Yes”,否则输出“No”。为实现上述功能,请在划线处填入合适的语句。
n=int(input('please input n:'))
if    :
  print('Yes')
else:
  print('No')
答案 int(pow(n,0.5))**2==n或int(n**0.5)**2==n
解析 如果n的算术平方根取整后再平方等于原数n,则n为完全平方数,否则不是。求算术平方根可用pow函数或**运算实现,因此,判断条件可写为int(pow(n,0.5))**2==n或int(n**0.5)**2==n。
例6 若三条线段的长度分别为a、b、c,判断他们是否能构成三角形(任意两边之和大于第三边)。为实现上述功能,请在程序划线处填入合适的语句。
a=float(input('please input a:'))
b=float(input('please input b:'))
c=float(input('please input c:'))
if        :
  print('能构成三角形')
else:
  print('不能构成三角形')
答案 (a+b)>c and (b+c)>a and (a+c)>b或a+b>c and a+c>b and b+c>a
解析 本题考查的知识点是选择结构的多条件表达式。需注意的是:任意两边有几种可能性,他们之间是且还是或的关系。
变式训练6 输入一个密码psd,若密码的长度小于6位,则提示“密码长度不能少于6位!”,否则提示“OK!”。为实现上述功能,请在程序划线处填入合适的代码。
psd=input('Please input password:')
if      :
  print("OK!")
else:
  print("密码长度不能少于6位!")
答案 len(psd)>=6
解析 本题考查的知识点是选择结构的条件和Len函数的应用。条件是密码长度大于等于6,因此填入的代码为len(psd)>=6。
例7 用计算机模拟一个猜商品价格的游戏,首先计算机随机产生一个[20,60]之间的整数x作为商品的价格,用户输入价格,若猜中了,提示“恭喜你猜中了!”,所猜价格与x的差值在5元之内,提示“加油,答案很接近!”,高于5元,提示“你猜得太高或太低了!”。程序代码如下所示,请在程序划线处填入合适的代码:
# 计算机随机产生一个[20,60]之间的整数x,并赋于变量shpjg,代码省略
jg=int(input("输入你猜的价格:"))
if①      :
  print("恭喜你猜中了!")
elif②      :
  print("你猜得太高或太低了!")
else:
  print("加油,答案很接近!")
答案 ①jg==shpjg ②abs(jg-shpjg)>=5
解析 本题考查的是多分支if语句。根据题意与代码可知,①处的判断条件是输入价格与原来价格是否相等,因此,①处代码为jg==shpjg;②处为所猜价格与真实价格的距离在5元以外,因此,②处代码为abs(jg-shpjg)>=5。
变式训练7 某旅游景点规定,身高在1.2米以下的儿童免费,身高在1.2及米上,但不超过1.5米的儿童购买半价票,身高超过1.5米的游客购买全价票。实现上述功能的程序如下,请在程序划线处填入合适的代码。
h=float(input('请输入身高(单位米):'))
if①      :
  print('免费')
elif②      :
  print('请购买半价票')
else:
  print('请购买全价票')
答案 ①h<1.2 ②h<=1.5
解析 本题考查的是多分支if语句。根据题意可知,本题的分支结构条件分别是:h<1.2,1.2<=h<=1.5。因此,①处应填入的代码为h<1.2;②处条件为1.2<=h<=1.5,但elif条件隐含着h>=1.2的条件,因此②处应填入的代码为h<=1.5。
变式训练8 用Python语言编写一个程序,实现如下功能:
输入某一学生的性别、身高和体重,计算该生的BMI指数并分析其体型情况,得到其体重指数分数,然后输出。
体质指数(BMI)=体重(kg)÷身高(m)2(如:70kg÷(1.75m)2=22.86)
等级 体重指数分数 男 女
偏瘦 80 ≤16.4 ≤16.4
标准 100 16.5~23.2 16.5~22.7
超重 80 23.3~26.3 22.8~25.2
肥胖 60 ≥26.4 ≥25.3
编写的程序代码如下,将划线处填写完整。
xb=input("输入性别:")
sg=float(input("输入身高(单位:m):"))
tz=float(input("输入体重(单位:kg):"))
①     #计算BMI的值,并四舍五入保留两位小数
print("bmi值为:",bmi)
if bmi<=16.4:
  bmizx= 1
elif xb=="男" and bmi<=23.2 or xb=="女" and bmi<=22.7:
  bmizx= 2
elif xb=="男" and bmi<=26.3 or xb=="女" and bmi<=25.2:
  bmizx= 3
②    :
  bmizx= 4
bz={1:"偏瘦",2:"标准",3:"超重",4:"肥胖"}
print("你的体型属于",③    )
答案 ①bmi=round(tz/sg**2,2) ②else ③bz[bmizx]
解析 本题考查多分支选择结构。①根据体质指数(BMI)的计算公式并用round函数保留小数。②除了以上条件外,其余均为肥胖,因此为else。③体型的标准和情况保存在字典bz中,因此按键查找值。
               
1.有如下Python程序段:
a=[2,3,5,6,9]
x=min(a);y=max(a);ans=a[1]
if x**2>y:
  ans=ans+x**2
  ans=ans∥2
else:
  ans=ans+y
  ans=ans%y
print(ans)
执行该程序段后,输出的内容是 (  )
A.6 B.5 C.4 D.3
答案 D
2.有如下 Python 程序段:
# 输入 3 个整数分别存储到变量 a、b、c 中,代码略
if a > b and a > c:  
  maxn = a
elif b > a and b > c:
  maxn = b
elif c > a and c > b:
  maxn = c
print("a,b,c 的最大值为:", maxn)
执行该程序段,输入下列 4 组测试数据,无法正确输出 a、b、c 的最大值的是
A.10,20,30 B.20,30,10
C.30,10,10 D.10,10,10
答案 D
3.以下程序实现与计算机玩“石头剪刀布”的游戏(分别用0,1,2代表石头、剪刀、布),游戏规则为:石头赢剪刀、剪刀赢布、布赢石头。代码如下:
import random
pc=random.randint(0,2)
player=int(input("请输入石头(0)、剪刀(1)、布(2):"))
if① 
  print("你赢了,恭喜!")
elif player==pc:
  print("平手")
else:
  print("你输了,再接再厉!")
解决该问题,上述程序①处填入语句正确的是 (  )
A.pc>player
B.pcC.pc-player==1 and player-pc==2
D.pc-player==1 or player-pc==2
答案 D
解析 本题考查多分支选择结构。你赢的可能性有3种,一是石头对剪刀,二是布对石头,三是剪刀对布,其中前2种可能中,pc-player==1,第3种可能性中,player-pc==2。
4.某Python代码如下,执行后输出的结果是 (  )
L=['pear','apple','orange']
n=len(L[2])
ans=3
if n%2==0:
  ans*=n
else:
  ans+=n
ans-=5
print(ans)
A.13 B.3 C.18 D.8
答案 A
解析 本题考查Python列表的切片和分支结构。L[2]为'orange',因此n=len(L[2])值为6,符合分支语句的第一个条件,执行if对应的语句块,此时ans的值为18,再执行ans-=5后ans的值为13,并且输出。
5.用Python 算法描述鱼缸水温预警功能:当水温高于32度时, LED灯呈现“红色”;低于27度时,LED灯呈现“蓝色”;其余情况LED灯呈现“绿色”。
# 通过传感器获取鱼缸内水温值,并存储到变量 t 中LED="绿色"
LED="绿色"
if        :
  if t>32:
    LED="红色"
  else:
    LED="蓝色"
print("LED 灯颜色显示:",LED)
为实现上述功能,划线处正确的 Python 表达式是 (  )
A.not(27C.t<27 or t>32 D.t<27 and t>32
答案 C
6.下列选项中,对变量flag的赋值与其它三项不等价的是 (  )
A.if a>b:
   flag=True
 flag=False
B.flag=a>b
C.if a>b:
   flag=True
 else:
   flag=False
D.flag=False
 if a>b:
   flag=True
答案 A
7.有如下程序段:
list1=["an","alpha","around","bee","back","cake"]
leng=len(list1)
if leng>6:
  z=list1[0]
else:
  z=list1[leng-1]
print(z)
执行后,输出的结果为    。
答案 cake
解析 本题主要考查的是分支结构。len(list1)返回的是列表list1的长度,即leng=6,条件leng>6不满足,因此执行语句z=list1[leng-1],即取出列表中的最后一个元素,因此z="cake",print命令输出字符串内容时,不显示引号,因此输出的结果为cake,而非"cake"。
8.如图所示的流程图的功能是根据用水量求水费。回答下列问题:
v=①     
if②      :
  s=2.4*v
elif v<=30:
  ③     
else:
  s=4.3*v
print(s)
(1)请在程序划线处填入合适的语句。
(2)结合算法和流程图分析,若输入用水量为28吨,则输出的s值将为    ,若输入用水量为100吨,则输出的s值为    。
答案 (1)①float(input("输入用水量:"))或float(input()) ②v<=17 ③s=3.35*v (2)93.8 430
解析 本题主要考查的是多分支结构的程序实现。(1)v表示的是输入的用水量,水费等于用水量乘以相应的单价,因此要将输入的数转换为实数类型,因此①处语句为float(input("输入用水量:"))或float(input());根据s=2.4*v并对照流程图可知,②处条件为v<=17;根据elif v<=30可知,③处代码为s=3.35*v。(2)用水量为28吨,条件1730,因此s=4.3*100=430。
9.下列选项的语句中,与“若 x 小于 0,则 y=-1,否则,y=1”功能相同的是 (  )
A.if x<0:
   y=-1
 y=1
B.y=1
 if x<0
   y=-1
C.if x<0:
   y=-1
 if x>0:
  y=1
D.if x>0:
   y=1
 else:
   y=-1
答案 B
10.用Python算法控制结构描述“小李起床后20分钟后去锻炼,50分钟后锻炼结束去学校”,设t为起床后经过的时间,下列选项正确的是 (  )
A.if t>50:
 print("去学校")
 else:
 print("去锻炼")
B.if t>50:
 print("去学校")
 elif t>20:
 print("去锻炼")
C.if t>20 and t<50:
 print("去锻炼")
 else:
 print("去学校")
D.if t>20:
 print("去锻炼")
 elif t>50:
   print("去学校")
答案 B
11.用Python算法控制结构描述:若水位高于10(不含)或者排水速度小于0.05(不含),发出警告。实时监测到的水位用h表示,排水速度用v表示,下列代码正确的是 (  )
A.if h>10:
 if v<0.05:
   print("警告!")
 else:
   print("正常!")
B.if h<=10 or v>=0.05:
   print("正常!")
 else:
   print("警告!")
C.if h<=10:
   print("正常!")
 elif v>=0.05:
   print("正常!")
 else:
   print("警告!")
D.if h>10:
   print("警告!")
 elif v<0.05:
   print("警告!")
 else:
   print("正常!")
答案 D
一、基础巩固
                
1.使用Python编写一个输出门票价格的程序,代码如下:
h=int(input("请输入您的身高:"))
if h <=120:
  p=0
elif h>140:
  p=100
else:
  p=50
print("您需要支付的门票价格是:",p)
要测试所有分支程序代码是否正确。以下测试数据中,最恰当的一组是 (  )
A.120,140 B.130,150
C.100,130,140 D.100,130,150
答案 D
解析 本题主要考查Python分支结构的基础概念,要测试所有分支程序代码是否正确,因为有三个分支,故三个值的取值必须在[0,120],(120,140],(140,+∞),故答案应选D。
2.以下选项中,与其他三项功能不同的是 (  )
A.maxv=a
 if b>maxv:
   maxv=b
 if c>maxv:
   maxv=c
B.if a>b and a>c
   maxv=a
 elif b>c:
   maxv=b
 else:
   maxv=c
C.if a>b
   maxv=a
 else:
   maxv=b
 if c>maxv:
   maxv=c
D.if a>b and a>c:
   maxv=a
 if b>a and b>c;
   maxv=b
 if c>a and c>b:
   maxv=c
答案 D
解析 本题考查分支语句if elif的相关知识。ABC选项的功能是求最大值。A选项默认a是最大值,还有两个选择结构,分别与b和c比较。B选项是多分支选择结构,如果不满足条件a>b and a>c,则a不是最大值,最大值可能是b和c。C选项是两个选择结构,先在a和b是找出最大值,接着最大值与c比较。D选项用3个选择结构来实现,但有一种情况,即a=b=c时,或最大值有2个时,不能实现找出最大值的功能。
3.下列Python语句中,能体现“若a大于0则b=a,和否则b=-1”表述并实现其功能的是 (  )
A.if a>0:
   b=a
 else:
   b=-1
B.if a>0:
   b=a
 if a<0:
   b=-1
C.b=-1
 if a>0:
   b=a
D.if a>0:
   b=a
 elif:
   b=-1
答案 A
4.有如下Python程序段:
a=[3,6,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
答案 B
5.有如下Python程序:
import math
total=float(input("请输入金额:"))
if total<=500:
  total*=0.9
elif total<=1500:
  total*=0.85
else:
  total*=0.75
print(math.floor(total))
运行程序,输入"1024"后回车,程序的输出结果是   
答案 870
6.若一个四位数,各个位数上的数字的4次幂之和等于它本身,则称这个数为四叶玫瑰数。编写Python程序,判断输入一个数是否为四叶玫瑰数。
(1)四位数4326    (选填:是/不是)四叶玫瑰数。
(2)实现上述功能的Python 程序如下,请在划线处填入合适代码。
number=int(input("请输入一个四位数:"))
a = number∥1000
b =①   
c = number%100∥10
d = number%10
if ②    :
  print(number, "是四叶玫瑰数")
else:
  print(number, "不是四叶玫瑰数")
答案 (1)不是 (2)① number%1000∥100或number∥100%10 ②a**4+b**4+c**4+d**4==number:
7.判断一个三位数i是否是水仙花数的条件是:它的各个位数字a、b、c的立方和与它本身是否相等,若相等为水仙花数,请把下列语句补充完整。
a,b,c=1,5,3
if    :
  print("是水仙花数")
else:
  print("不是水仙花数")
答案 a**3+b**3+c**3==a*100+b*10+c
解析 掌握数字的表达,掌握条件的表达。条件是各个数字的立方和与他本身相等,那么各个数字的立方和又该如何表达。
8.输出某个温度范围内(从低温t1到高温t2)气体的密度变化情况,输入温度t1和t2,要保证温度t1低于温度t2,把下列语句补充完整。
t1,t2=4,3
if    :
  t=t1;t1=t2;t2=t
答案 t1>t2
解析 本题考查的知识点是选择结构的条件和交换语句的应用。从三条语句t=t1;t1=t2;t2=t来看,是要交换t1和t2的值,根据题目的要求,从低温t1到高温t2,因此若t1比t2大时,需要交换两者。
9.每周星期一,杭州本地牌照尾号为1和9的汽车是限行的,在汽车牌照本中取得最后一个数字ch(字符串型),判断该车星期一是否限行,请把下列语句补充完整。
pz="浙APW559"
if    :
  print("限行")
else:
  print("不限行")
答案 pz[-1]=="1" or pz[-1]=="9"或者
int(pz[-1])==1 or int(pz[-1])==9
解析 两个条件满足一个就可以了,但要注意数据类型。
10.输入一元二次方程系数a、b、c,输出方程根的情况。请把下列语句补充完整。
a=int(input("a="))
b=int(input("b="))
c=int(input("c="))
d=①     
if a==0:
  print("一元二次方程a不能为零!")
elif②      :
  print("方程有一个根")
elif d>0:
  print("方程有两个根")
else:
  print("方程没有根")
答案 ①b**2-4*a*c ②d==0
解析 根据d的值来判断是否有根,执行语句中已经提示“a不能为零”和“方程有一个根”。
11.输入一个字符串s,判断字符串s中第i个字符的类型,类型分为4种:大写字母、小写字母、阿拉伯数字、其他字符。请回答下列问题。
s=input("please string:")
i=3
①     
tot=['其他字符','大写字母','小写字母','阿拉伯数字']
t=0
if ch>='A' and ch<="Z":
  t=1
elif ch>='a' and ch<="z":
  t=2
elif ②      :#如果是数字
  t=3
print('当前字符的类型为:',③      )
(1)请在程序划线处填入合适的代码。
(2)运行当前程序,输入s的内容为“Lm@”,则所属类型对应的列表元素为    。
答案 (1)①ch=s[i-1] 或ch=s[2]
②ch>='0' and ch<='9'或'9'>=ch>='0'
③tot[t]
(2)tot[0]
解析 本题考查的是多分支语句。字符串中第i个字符,则在字符串中的索引号为i-1,因此①中代码为ch=s[i-1],因为i=3,因此也可以写为ch=s[2];②处语句的功能是判断当前字符是否为数字,因此代码为ch>='0' and ch<='9',也可写为'9'>=ch>='0';变量t对应当前字符所属的类型,因此,③处代码为tot[t]。(2)运行当前程序,输入s的内容为“Lm@”,则第3个字符为“@”,属于其他字符类,因此对应的列表元素为tot[0]。
12.设计一个程序,根据输入的劳务报酬收入计算劳务报酬所得税。解决此问题的流程图如图所示。
编写的Python程序代码如下所示,请在划线处填入合适的代码。
x=int(input("请输入劳务费"))
if x<0 or x>1000000:
  print("请检查输入的数据")
else:
  if x<=800:
    y=0
  elif①      :
    y=(x-800)*0.2
  else:
     ②     
print("应交税收"+③      )
答案 ①x<=4000 ②y=x*0.16 ③str(y)
解析 在多分支选择结构中,每个分支逐一匹配,在第二个分支中,已经不满足x<=800,即所有的x均大于800,因此只需要说明他小于4000即可。
二、能力提升
13.COD(化学需氧量)是衡量水质污染程度的重要指标之一,污水处理时根据污水的COD指标来计算COD去除剂的投放量。当COD指标x小于50时,剂量为10,指标大于等于50且小于等于500时,剂量为1.2x/5,指标超过500时,剂量为1.5x/4。运行程序后,输入COD指标,输出计算结果。为实现上述功能,请在划线处填入合适的代码。
x=int(input("请输入COD指标x"))
if x<50:
  y=10
①      :
  y=1.2*x/5
else:
  ②     
print("所需剂量为"+str(y))
答案 ①elif x<=500 ②y=1.5*x/4
解析 注意多分支选择结构的书写格式。
14.模拟一个简单计算器,输入两个数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,先后输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符不是加、减、乘、除四种运算符时,则输出“运算符不正确”;当进行除法运算时,如果除数为0,提示输出“除数不能为零”。为实现上述功能,请在划线处填入合适的代码。
x=int(input("请输入第1个数"))
ch=input("请输入运算符")
y=int(input("请输入第2个数"))
flag=False
s="+-*/"
if ch in s:
  flag=True
  if ch=="+":
    z=x+y
  elif ch=="-":
    z=x-y
  elif ch=="*":
    z=x*y
  else:
    if①      :
      print("除数不能为0!")
      flag=False
    else:
      z=x/y
if②      :
  print("运算的结果为:"+str(z))
else:
  print("运算符不正确")
答案 ①y==0 ②flag或flag==True
解析 提示"除数不能为0!",因此应填写当y等于0时的情况。由于y=0时,已经输出了内容,此时flag=False,因此只有当flag==True时才有输出。
15.编写Python程序,实现如下功能:输入AQI指数,输出该AQI值所对应的空气质量等级及空气状况。程序运行效果如图所示。
请输入AQI指数值:220空气质量等级为:V 空气状况为:重度污染
AQI指数所对应的空气质量等级及空气状况如表所示:
AQI指数 0-50 51-100 101-150 151-200 201-300 >300
等级 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ
空气状况 优 良 轻度污染 中度污染 重度污染 严重污染
实现上述功能的程序如下。
st="Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ"
aqi=float(input("请输入AQI指数值:"))
if aqi<=50:
  ss="优"
  dj=1
elif aqi<=100:
  ss="良"
  dj=2
elif①      :
  ss="轻度污染"
  dj=3
elif aqi<=200:
  ss="中度污染"
  dj=4
elif aqi<=300:
  ss="重度污染"
  dj=5
else:
  ss="严重污染"
  dj=6
②     
print("空气质量等级为:"+skydd,"空气状况为:"+ss)
(1)程序运行时,输入200,则屏幕上显示的内容为    。
(2)请在程序划线处填入合适的代码。
答案 (1)空气质量等级为:Ⅳ,空气状况为:中度污染 (2)①aqi<=150 ②skydd=st[dj-1]
解析 本题主要考查的是多分支结构。(1)aqi=200时,对应的等级为Ⅳ,属于中度污染,因此屏幕上显示的内容为“空气质量等级为:Ⅳ,空气状况为:中度污染”。
(2)①处空气状况为“轻度污染”,因此条件为aqi<=150;空气质量等级存储在字符串skydd中,字符串的第一个字符的索引号为0,因此②处代码为skydd=st[dj-1]。
16.现有编号为"Xs001"、"Xs002"的两位学生,分别输入他们的性别和身高,按一定的规则进行排列,输出排列后的座位信息,实现该功能的程序代码如下:
xm1="Xs001"
xm2="Xs002"
xb1=input("请输入第1位学生性别:")
sg1=float(input("请输入第1位学生身高(米):"))
xb2=input("请输入第2位学生性别:")
sg2=float(input("请输入第2位学生身高(米):"))
if xb1==xb2 and sg1>sg2:  s=xm1+" "+xm2elif xb1==xb2 and sg1<=sg2:  s=xm2+" "+xm1elif xb1=="女":  s=xm1+" "+xm2else:  s=xm2+" "+xm1
print("两位同学座位依次是:",s)
根据上述算法实现的功能,用嵌套的选择结构描述的流程图如图所示,
(1)将流程图中①②处补充完整。
①__________________________________________________________
②__________________________________________________________
(2)根据流程图,将方框内代码用嵌套的选择结构实现相应功能,并写出Python语句块。
答案 (1)①sg1>sg2  ②xb1=="女"
(2) if xb1==xb2:
    if sg1>sg2:
      s=xm1+" "+xm2
   else:
      s=xm2+" "+xm1
  else:
   if xb1=="女":
     s=xm1+" "+xm2
   else:
     s=xm2+" "+xm1
解析 (1)程序功能:相同性别按身高从高到低排列,不同性别女生排在前面,男生排在后面。当条件xb1==xb2成立时,表示是相同性别,则进行身高的比较,因此①处为sg1>sg2 当条件不成立时,女生优先,因此②处为xb1=="女"
(2)先用一个判断结构来区分是否相同的性别,在一个分支中嵌套另一个分支。(共86张PPT)
课时4 分支结构及程序实现
第三章 算法的程序实现
1.理解分支结构的执行过程。
2.掌握分支结构的三种if语句格式的使用。
3.能根据实际问题选用合适的分支结构来解决。
目 录
CONTENTS
知识梳理
01
例题精析
02
随堂检测
03
巩固与提升
04
知识梳理
1
1.选择结构通过判断某些特定条件是否满足来决定下一步的执行流程,常见的有单分支选择结构、双分支选择结构、________选择结构。
2.一个选择结构是一个语句块,块内的语句一般缩进4个空格。在Python中对缩进有严格要求,可以根据缩进来判断语句的从属关系。
3.选择语句条件表达式结果的数据类型是________,值只有__________和____________两个。
多分支
逻辑型
True
False
4.算法进行程序实现时,分支结构可用if语句来实现。
if语句一般格式是:
(1)单分支选择结构
if <条件>:
<语句块1>
(2)双分支选择结构
if<条件>:
<语句块1>
else:
<语句块2>
(3)多分支选择结构
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>

elif <条件N>:
<语句块N>
else:
<语句块N+1>
①语句块是一行或放在一起的多行语句,一般通过行缩进来标识if、else、elif下方的语句块必须采用相同的缩进。
②分支结构的条件只判断一次,符合条件的语句块也只执行一次。
例题精析
2
例1 调查发现人们更倾向于选择数字对称的车牌号,如车牌号“浙H64M46”。于是小石编写了一个判断车牌号是否对称的代码,Python程序如下:
cp=input("请输入车牌号(格式如“浙H64M46”):")
s1=cp[2:4]
s2=① 
if②  :
  print("不是对称车牌")
else:
  print("是对称车牌")
D
为实现功能,划线处代码应为 (  )
A.①cp[6:5:-1]   ②s1==s2
B.①cp[5:] ②s1!=s2
C.①cp[5:6] ②s1==s2
D.①cp[:-3:-1] ②s1!=s2
解析 本题考查字符串的切片。语句s1=cp[2:4]取字符串中索引位置2和3的字符。若要对称,则对应取cp索引位置为6和5的值。A选项索引位置5取不到。B选项不能正向取。C选项只能取一个字符。D选项当步长为负值时,第一个参数默认为-1,即字符串cp中最后一个索引位置,-3是取不到的,只能取了倒数第2个。
变式训练1 有下列Python程序段:
import random
s=input("请输入字符串:")
x=random.randint(3,6) #产生一个[3,6]之间的随机整数
n=len(s)
if len(s[0:x])  r=s[x:n]+s[0:x]
else:
  r=s[0:x]+s[x:n]
print(r)
解析 本题综合考查了random模块函数的应用及分支结构及字符串的切片。x为采用random模块产生的[3,6]之间的随机整数,按照题意输入helloworld后n的值为10,带入if的条件表达式可得,执行第一个分支(将索引值x前面的字符后置)的条件为x<5,推得执行第二个分支(不改变字符顺序)的条件为x>=5,通过对选项的处理可知A选项中hel后置,x的值为3,可行;B选项hell后置,x的值为4,符合条件,可行;C选项不改变顺序,x>=5,可行;D选项hello后置,可得x=5,而x=5时应执行第二个分支的语句。
D
例2 用Python算法控制结构描述“您所在街道25分钟后小雨,50分钟后雨停”,设t为距离天气预报发布时间的间隔(单位:分钟),下列选项正确的是 (  )
A
解析 本题考查选择结构。根据时间t,分成三个阶段。t<=25没有任何操作,25和50之间是小雨,50之后是雨停。B选项只能表示两种情况。C选项把t<=25归结为雨停。D选项若t>50,肯定满足条件t>25,因此只能表示一种情况。
变式训练2 某市“一户一表”水费单价标准如下:第一档次:每户每月不超过17立方米的用水量,供水价格为2.4元/立方米;第二档次:每户每月17立方米(不含)到30立方米(含)的用水量,供水价格比第一档提高0.5倍;第三档次:每户每月超过30立方米的用水量,供水价格比第一档提高2倍。根据水费单价标准,用Python算法控制结构描述“第二、三档次的供水价格”。设volumn为某个月的用水量,price为供水价格初始值为2.4(单位;元/立方米),下列选项正确的是 (  )
B
A.if volumn<=30:
  price=price*1.5
 else:
  price=price*3
B.if volumn>30:
  price=price*3
elif volumn>17:
   price=price*1.5
C.if volumn<30:
   price=price*1.5
 else:
 price=price*3
D.if volumn>=30:
   price=price*3
elif volumn>=17:
 price=price*1.5
解析 本题考查选择算法结构。根据题目含义,将水价分为三个档次,其中第一个档次是原价。A选项不能区分第一档次和第二档次。B选项price为供水价格初始值为2.4,选择结构中有两种情况,符合题意。C选项当volumn小于30,包含第一二档。D选项的临界值不成立。
例3 象限是平面直角坐标系(笛卡尔坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y 轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,以下实现该分类的 Python 程序段中正确的是 (  )
A.if x==0 and y==0: result="原点"
if x==0 or y==0: result="数轴"
if x!=0 and y!=0:
  result="象限"
D
B.if x==0 or y==0: result="数轴"
if x==0 and y==0:
  result="原点"
else: 
  result="象限"
C.if x!=0 and y!=0:  
  result="象限"
if x==0 or y==0:
  result="数轴"
else:
  result="原点"
D.if x!=0 and y!=0: result="象限"
if x==0 or y==0: result="数轴"
if x==0 and y==0:
  result="原点"
解析 本题考查Python基本控制结构。 (0,0)是原点,即 if x==0 and y==0 表示原点;(0,y)或者(x,0)分别表示 y 轴与 x 轴。A 选项,x==y==0 时,第 1 个和第 2 个 if 均成立。B选项if x==0 or y==0 且 x 与 y 不同时为 0 表示数轴,在第2个分支语句中,再次判断为"象限"。C选项条件x!=0 and y!=0成立,判断为"象限",在第2个分支语句中,再次判断为"原点",因此原点的判断需在数轴之前。 D选项分三种情况,用3条分支语句来表达这种情况。
变式训练3 BMI与身体状况关系如图所示
A
BMI<18 18≤BMI≤24 BMI>24
偏瘦 正常 偏胖
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 = "偏瘦"
D.if 18<=X<=24:
    Y = "正常"
 else:
    Y = "偏瘦"
  if X>18:
    Y = "偏胖"
解析 本题考查 Python分支结构基本语法。A 选项只要变量 X 的值大于等于 18,输出结果均为“偏胖”,与题干要求不符。
例4 正整数n若是它平方数的尾部部分若与该正整数n相等,则称n为同构数。判断一个两位数n是否是同构数。为实现上述功能,请在划线处填入合适的语句。
n=int(input("输入一个正整数"))
if    :
  print('是同构数')
else:
  print('不是同构数')
答案 n**2%100==n
解析 本题考查的是选择结构的条件和取余运算符的应用。选择结构要选择合适的条件判断,n是它平方数的尾部,n平方数的后两位数为n**2%100。
变式训练4 判断当前计算得到验证码变量yzm(整型)与商品识别条码s(字符串型)第13位是否相等,为实现上述功能,请在程序划线处填入合适的语句。
s="3203225155569"
if      :
  print("验证通过")
else:
  print("验证不通过")
答案 yzm==int(s[12])
解析 条件为计算结果与最后一位字符相同。但要注意类型的匹配,前者是数字,后者是字符串。
例5 输入一个身份证号码s(字符串型),如果他的第17位是奇数,表示该公民的性别为男性,否则为女性。为实现上述功能,请在程序划线处填入合适的语句。
s="330522********5115"
if    :
  print("女性")
else:
  print("男性")
答案 int(s[16])%2==0或int(s[16])%2 !=1
解析 取出身份证号码s的第17位的值为文本,不能用于算术运算。判断是否是奇数的条件是除以2后的余数是否为0。
变式训练5 输入一个正整数n,判断它是否是一个完全平方数,若是则输出“Yes”,否则输出“No”。为实现上述功能,请在划线处填入合适的语句。
n=int(input('please input n:'))
if    :
  print('Yes')
else:
  print('No')
答案 int(pow(n,0.5))**2==n或int(n**0.5)**2==n
解析 如果n的算术平方根取整后再平方等于原数n,则n为完全平方数,否则不是。求算术平方根可用pow函数或**运算实现,因此,判断条件可写为int(pow(n,0.5))**2==n或int(n**0.5)**2==n。
例6 若三条线段的长度分别为a、b、c,判断他们是否能构成三角形(任意两边之和大于第三边)。为实现上述功能,请在程序划线处填入合适的语句。
a=float(input('please input a:'))
b=float(input('please input b:'))
c=float(input('please input c:'))
if        :
  print('能构成三角形')
else:
  print('不能构成三角形')
答案 (a+b)>c and (b+c)>a and (a+c)>b或a+b>c and a+c>b and b+c>a
解析 本题考查的知识点是选择结构的多条件表达式。需注意的是:任意两边有几种可能性,他们之间是且还是或的关系。
变式训练6 输入一个密码psd,若密码的长度小于6位,则提示“密码长度不能少于6位!”,否则提示“OK!”。为实现上述功能,请在程序划线处填入合适的代码。
psd=input('Please input password:')
if      :
  print("OK!")
else:
  print("密码长度不能少于6位!")
答案 len(psd)>=6
解析 本题考查的知识点是选择结构的条件和Len函数的应用。条件是密码长度大于等于6,因此填入的代码为len(psd)>=6。
例7 用计算机模拟一个猜商品价格的游戏,首先计算机随机产生一个[20,60]之间的整数x作为商品的价格,用户输入价格,若猜中了,提示“恭喜你猜中了!”,所猜价格与x的差值在5元之内,提示“加油,答案很接近!”,高于5元,提示“你猜得太高或太低了!”。程序代码如下所示,请在程序划线处填入合适的代码:
# 计算机随机产生一个[20,60]之间的整数x,并赋于变量shpjg,代码省略
jg=int(input("输入你猜的价格:"))
if ①      :
  print("恭喜你猜中了!")
elif ②      :
  print("你猜得太高或太低了!")
else:
  print("加油,答案很接近!")
答案 ①jg==shpjg ②abs(jg-shpjg)>=5
解析 本题考查的是多分支if语句。根据题意与代码可知,①处的判断条件是输入价格与原来价格是否相等,因此,①处代码为jg==shpjg;②处为所猜价格与真实价格的距离在5元以外,因此,②处代码为abs(jg-shpjg)>=5。
变式训练7 某旅游景点规定,身高在1.2米以下的儿童免费,身高在1.2及米上,但不超过1.5米的儿童购买半价票,身高超过1.5米的游客购买全价票。实现上述功能的程序如下,请在程序划线处填入合适的代码。
h=float(input('请输入身高(单位米):'))
if①      :
  print('免费')
elif②      :
  print('请购买半价票')
else:
  print('请购买全价票')
答案 ①h<1.2 ②h<=1.5
解析 本题考查的是多分支if语句。根据题意可知,本题的分支结构条件分别是:h<1.2,1.2<=h<=1.5。因此,①处应填入的代码为h<1.2;②处条件为1.2<=h<=1.5,但elif条件隐含着h>=1.2的条件,因此②处应填入的代码为h<=1.5。
变式训练8 用Python语言编写一个程序,实现如下功能:
输入某一学生的性别、身高和体重,计算该生的BMI指数并分析其体型情况,得到其体重指数分数,然后输出。
体质指数(BMI)=体重(kg)÷身高(m)2(如:70kg÷(1.75m)2=22.86)
等级 体重指数分数 男 女
偏瘦 80 ≤16.4 ≤16.4
标准 100 16.5~23.2 16.5~22.7
超重 80 23.3~26.3 22.8~25.2
肥胖 60 ≥26.4 ≥25.3
编写的程序代码如下,将划线处填写完整。
xb=input("输入性别:")
sg=float(input("输入身高(单位:m):"))
tz=float(input("输入体重(单位:kg):"))
①     #计算BMI的值,并四舍五入保留两位小数
print("bmi值为:",bmi)
if bmi<=16.4:
  bmizx= 1
elif xb=="男" and bmi<=23.2 or xb=="女" and bmi<=22.7:
  bmizx= 2
elif xb=="男" and bmi<=26.3 or xb=="女" and bmi<=25.2:
  bmizx= 3
②    :
  bmizx= 4
bz={1:"偏瘦",2:"标准",3:"超重",4:"肥胖"}
print("你的体型属于",③    )
答案 ①bmi=round(tz/sg**2,2) ②else ③bz[bmizx]
解析 本题考查多分支选择结构。①根据体质指数(BMI)的计算公式并用round函数保留小数。②除了以上条件外,其余均为肥胖,因此为else。③体型的标准和情况保存在字典bz中,因此按键查找值。
随堂检测
3
1.有如下Python程序段:
a=[2,3,5,6,9]
x=min(a);y=max(a);ans=a[1]
if x**2>y:
  ans=ans+x**2
  ans=ans∥2
else:
  ans=ans+y
  ans=ans%y
print(ans)
D
执行该程序段后,输出的内容是 (  )
A.6 B.5 C.4 D.3
2.有如下 Python 程序段:
# 输入 3 个整数分别存储到变量 a、b、c 中,代码略
if a > b and a > c:  
  maxn = a
elif b > a and b > c:
  maxn = b
elif c > a and c > b:
  maxn = c
print("a,b,c 的最大值为:", maxn)
执行该程序段,输入下列 4 组测试数据,无法正确输出 a、b、c 的最大值的是( )
A.10,20,30 B.20,30,10
C.30,10,10 D.10,10,10
D
3.以下程序实现与计算机玩“石头剪刀布”的游戏(分别用0,1,2代表石头、剪刀、布),游戏规则为:石头赢剪刀、剪刀赢布、布赢石头。代码如下:
import random
pc=random.randint(0,2)
player=int(input("请输入石头(0)、剪刀(1)、布(2):"))
if① 
  print("你赢了,恭喜!")
elif player==pc:
  print("平手")
else:
  print("你输了,再接再厉!")
D
解决该问题,上述程序①处填入语句正确的是 (  )
A.pc>player
B.pcC.pc-player==1 and player-pc==2
D.pc-player==1 or player-pc==2
解析 本题考查多分支选择结构。你赢的可能性有3种,一是石头对剪刀,二是布对石头,三是剪刀对布,其中前2种可能中,pc-player==1,第3种可能性中,player-pc==2。
4.某Python代码如下,执行后输出的结果是 (  )
L=['pear','apple','orange']
n=len(L[2])
ans=3
if n%2==0:
  ans*=n
else:
  ans+=n
ans-=5
print(ans)
A.13 B.3 C.18 D.8
A
解析 本题考查Python列表的切片和分支结构。L[2]为'orange',因此n=len(L[2])值为6,符合分支语句的第一个条件,执行if对应的语句块,此时ans的值为18,再执行ans-=5后ans的值为13,并且输出。
5.用Python 算法描述鱼缸水温预警功能:当水温高于32度时, LED灯呈现“红色”;低于27度时,LED灯呈现“蓝色”;其余情况LED灯呈现“绿色”。
# 通过传感器获取鱼缸内水温值,并存储到变量 t 中LED="绿色"
LED="绿色"
if        :
  if t>32:
    LED="红色"
  else:
    LED="蓝色"
print("LED 灯颜色显示:",LED)
C
为实现上述功能,划线处正确的 Python 表达式是 (  )
A.not(27C.t<27 or t>32 D.t<27 and t>32
A.if a>b:
   flag=True
 flag=False
A
B.flag=a>b
C.if a>b:
   flag=True
 else:
   flag=False
D.flag=False
 if a>b:
   flag=True
7.有如下程序段:
list1=["an","alpha","around","bee","back","cake"]
leng=len(list1)
if leng>6:
  z=list1[0]
else:
  z=list1[leng-1]
print(z)
执行后,输出的结果为    。
解析 本题主要考查的是分支结构。len(list1)返回的是列表list1的长度,即leng=6,条件leng>6不满足,因此执行语句z=list1[leng-1],即取出列表中的最后一个元素,因此z="cake",print命令输出字符串内容时,不显示引号,因此输出的结果为cake,而非"cake"。
答案 cake
8.如图所示的流程图的功能是根据用水量求水费。回答下列问题:
v=①     
if②      :
  s=2.4*v
elif v<=30:
  ③     
else:
  s=4.3*v
print(s)
(1)请在程序划线处填入合适的语句。
(2)结合算法和流程图分析,若输入用水量为28吨,则输出的s值将为    ,若输入用水量为100吨,则输出的s值为    。
答案 (1)①float(input("输入用水量:"))或float(input()) ②v<=17 ③s=3.35*v (2)93.8 430
解析 本题主要考查的是多分支结构的程序实现。(1)v表示的是输入的用水量,水费等于用水量乘以相应的单价,因此要将输入的数转换为实数类型,因此①处语句为float(input("输入用水量:"))或float(input());根据s=2.4*v并对照流程图可知,②处条件为v<=17;根据elif v<=30可知,③处代码为s=3.35*v。(2)用水量为28吨,条件1730,因此s=4.3*100=430。
9.下列选项的语句中,与“若 x 小于 0,则 y=-1,否则,y=1”功能相同的是 (  )
B
A.if x<0:
   y=-1
 y=1
B.y=1
 if x<0
   y=-1
C.if x<0:
   y=-1
 if x>0:
  y=1
D.if x>0:
   y=1
 else:
   y=-1
10.用Python算法控制结构描述“小李起床后20分钟后去锻炼,50分钟后锻炼结束去学校”,设t为起床后经过的时间,下列选项正确的是 (  )
B
A.if t>50:
 print("去学校")
 else:
 print("去锻炼")
B.if t>50:
 print("去学校")
 elif t>20:
 print("去锻炼")
C.if t>20 and t<50:
 print("去锻炼")
 else:
 print("去学校")
D.if t>20:
 print("去锻炼")
 elif t>50:
   print("去学校")
11.用Python算法控制结构描述:若水位高于10(不含)或者排水速度小于0.05(不含),发出警告。实时监测到的水位用h表示,排水速度用v表示,下列代码正确的是 (  )
D
A.if h>10:
 if v<0.05:
   print("警告!")
 else:
   print("正常!")
B.if h<=10 or v>=0.05:
   print("正常!")
 else:
   print("警告!")
C.if h<=10:
   print("正常!")
 elif v>=0.05:
   print("正常!")
 else:
   print("警告!")
D.if h>10:
   print("警告!")
 elif v<0.05:
   print("警告!")
 else:
   print("正常!")
4
巩固与提升
基础巩固
能力提升
1.使用Python编写一个输出门票价格的程序,代码如下:
h=int(input("请输入您的身高:"))
if h <=120:
  p=0
elif h>140:
  p=100
else:
  p=50
print("您需要支付的门票价格是:",p)
D
要测试所有分支程序代码是否正确。以下测试数据中,最恰当的一组是 (  )
A.120,140 B.130,150
C.100,130,140 D.100,130,150
解析 本题主要考查Python分支结构的基础概念,要测试所有分支程序代码是否正确,因为有三个分支,故三个值的取值必须在[0,120],(120,140],(140,+∞),故答案应选D。
A.maxv=a
 if b>maxv:
   maxv=b
 if c>maxv:
   maxv=c
D
解析 本题考查分支语句if elif的相关知识。ABC选项的功能是求最大值。A选项默认a是最大值,还有两个选择结构,分别与b和c比较。B选项是多分支选择结构,如果不满足条件a>b and a>c,则a不是最大值,最大值可能是b和c。C选项是两个选择结构,先在a和b是找出最大值,接着最大值与c比较。D选项用3个选择结构来实现,但有一种情况,即a=b=c时,或最大值有2个时,不能实现找出最大值的功能。
B.if a>b and a>c
   maxv=a
 elif b>c:
   maxv=b
 else:
   maxv=c
C.if a>b
   maxv=a
 else:
   maxv=b
 if c>maxv:
   maxv=c
D.if a>b and a>c:
   maxv=a
 if b>a and b>c;
   maxv=b
 if c>a and c>b:
   maxv=c
3.下列Python语句中,能体现“若a大于0则b=a,和否则b=-1”表述并实现其功能的是 (  )
A
A.if a>0:
   b=a
 else:
   b=-1
B.if a>0:
   b=a
 if a<0:
   b=-1
C.b=-1
 if a>0:
   b=a
D.if a>0:
   b=a
 elif:
   b=-1
4.有如下Python程序段:
a=[3,6,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
B
5.有如下Python程序:
import math
total=float(input("请输入金额:"))
if total<=500:
  total*=0.9
elif total<=1500:
  total*=0.85
else:
  total*=0.75
print(math.floor(total))
运行程序,输入"1024"后回车,程序的输出结果是    。
答案 870
6.若一个四位数,各个位数上的数字的4次幂之和等于它本身,则称这个数为四叶玫瑰数。编写Python程序,判断输入一个数是否为四叶玫瑰数。
(1)四位数4326    (选填:是/不是)四叶玫瑰数。
(2)实现上述功能的Python 程序如下,请在划线处填入合适代码。
number=int(input("请输入一个四位数:"))
a = number∥1000
b =①   
c = number%100∥10
d = number%10
if ②    :
  print(number, "是四叶玫瑰数")
else:
  print(number, "不是四叶玫瑰数")
答案 (1)不是 (2)① number%1000∥100或number∥100%10 
②a**4+b**4+c**4+d**4==number:
7.判断一个三位数i是否是水仙花数的条件是:它的各个位数字a、b、c的立方和与它本身是否相等,若相等为水仙花数,请把下列语句补充完整。
a,b,c=1,5,3
if    :
  print("是水仙花数")
else:
  print("不是水仙花数")
答案 a**3+b**3+c**3==a*100+b*10+c
解析 掌握数字的表达,掌握条件的表达。条件是各个数字的立方和与他本身相等,那么各个数字的立方和又该如何表达。
8.输出某个温度范围内(从低温t1到高温t2)气体的密度变化情况,输入温度t1和t2,要保证温度t1低于温度t2,把下列语句补充完整。
t1,t2=4,3
if    :
  t=t1;t1=t2;t2=t
答案 t1>t2
解析 本题考查的知识点是选择结构的条件和交换语句的应用。从三条语句t=t1;t1=t2;t2=t来看,是要交换t1和t2的值,根据题目的要求,从低温t1到高温t2,因此若t1比t2大时,需要交换两者。
9.每周星期一,杭州本地牌照尾号为1和9的汽车是限行的,在汽车牌照本中取得最后一个数字ch(字符串型),判断该车星期一是否限行,请把下列语句补充完整。
pz="浙APW559"
if    :
  print("限行")
else:
  print("不限行")
答案 pz[-1]=="1" or pz[-1]=="9"或者int(pz[-1])==1 or int(pz[-1])==9
解析 两个条件满足一个就可以了,但要注意数据类型。
10.输入一元二次方程系数a、b、c,输出方程根的情况。请把下列语句补充完整。
a=int(input("a="))
b=int(input("b="))
c=int(input("c="))
d=①     
if a==0:
  print("一元二次方程a不能为零!")
elif②      :
  print("方程有一个根")
elif d>0:
  print("方程有两个根")
else:
  print("方程没有根")
答案 ①b**2-4*a*c ②d==0
解析 根据d的值来判断是否有根,执行语句中已经提示“a不能为零”和“方程有一个根”。
11.输入一个字符串s,判断字符串s中第i个字符的类型,类型分为4种:大写字母、小写字母、阿拉伯数字、其他字符。请回答下列问题。
s=input("please string:")
i=3
①     
tot=['其他字符','大写字母','小写字母','阿拉伯数字']
t=0
if ch>='A' and ch<="Z":
  t=1
elif ch>='a' and ch<="z":
t=2
elif ②      :#如果是数字
  t=3
print('当前字符的类型为:',③      )
(1)请在程序划线处填入合适的代码。
(2)运行当前程序,输入s的内容为“Lm@”,则所属类型对应的列表元素为    。
答案 (1)①ch=s[i-1] 或ch=s[2]
②ch>='0' and ch<='9'或'9'>=ch>='0'
③tot[t]
(2)tot[0]
解析 本题考查的是多分支语句。字符串中第i个字符,则在字符串中的索引号为i-1,因此①中代码为ch=s[i-1],因为i=3,因此也可以写为ch=s[2];②处语句的功能是判断当前字符是否为数字,因此代码为ch>='0' and ch<='9',也可写为'9'>=ch>='0';变量t对应当前字符所属的类型,因此,③处代码为tot[t]。(2)运行当前程序,输入s的内容为“Lm@”,则第3个字符为“@”,属于其他字符类,因此对应的列表元素为tot[0]。
12.设计一个程序,根据输入的劳务报酬收入计算劳务报酬所得税。解决此问题的流程图如图所示。
编写的Python程序代码如下所示,请在划线处填入合适的代码。
x=int(input("请输入劳务费"))
if x<0 or x>1000000:
  print("请检查输入的数据")
else:
  if x<=800:
    y=0
  elif①      :
    y=(x-800)*0.2
  else:
     ②     
print("应交税收"+③      )
答案 ①x<=4000 ②y=x*0.16 ③str(y)
解析 在多分支选择结构中,每个分支逐一匹配,在第二个分支中,已经不满足x<=800,即所有的x均大于800,因此只需要说明他小于4000即可。
13.COD(化学需氧量)是衡量水质污染程度的重要指标之一,污水处理时根据污水的COD指标来计算COD去除剂的投放量。当COD指标x小于50时,剂量为10,指标大于等于50且小于等于500时,剂量为1.2x/5,指标超过500时,剂量为1.5x/4。运行程序后,输入COD指标,输出计算结果。为实现上述功能,请在划线处填入合适的代码。
x=int(input("请输入COD指标x"))
if x<50:
  y=10
①      :
  y=1.2*x/5
else:
  ②     
print("所需剂量为"+str(y))
答案 ①elif x<=500 ②y=1.5*x/4
解析 注意多分支选择结构的书写格式。
14.模拟一个简单计算器,输入两个数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,先后输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符不是加、减、乘、除四种运算符时,则输出“运算符不正确”;当进行除法运算时,如果除数为0,提示输出“除数不能为零”。为实现上述功能,请在划线处填入合适的代码。
x=int(input("请输入第1个数"))
ch=input("请输入运算符")
y=int(input("请输入第2个数"))
flag=False
s="+-*/"
if ch in s:
  flag=True
  if ch=="+":
    z=x+y
  elif ch=="-":
    z=x-y
  elif ch=="*":
    z=x*y
  else:
    if①      :
      print("除数不能为0!")
      flag=False
    else:
      z=x/y
if②      :
  print("运算的结果为:"+str(z))
else:
  print("运算符不正确")
答案 ①y==0 ②flag或flag==True
解析 提示"除数不能为0!",因此应填写当y等于0时的情况。由于y=0时,已经输出了内容,此时flag=False,因此只有当flag==True时才有输出。
15.编写Python程序,实现如下功能:输入AQI指数,输出该AQI值所对应的空气质量等级及空气状况。程序运行效果如图所示。
AQI指数所对应的空气质量等级及空气状况如表所示:
请输入AQI指数值:220
空气质量等级为:V 空气状况为:重度污染
AQI指数 0-50 51-100 101-150 151-200 201-300 >300
等级 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ
空气状况 优 良 轻度污染 中度污染 重度污染 严重污染
实现上述功能的程序如下。
st="Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ"
aqi=float(input("请输入AQI指数值:"))
if aqi<=50:
  ss="优"
  dj=1
elif aqi<=100:
  ss="良"
  dj=2
elif①      :
  ss="轻度污染"
  dj=3
elif aqi<=200:
  ss="中度污染"
  dj=4
elif aqi<=300:
  ss="重度污染"
  dj=5
else:
  ss="严重污染"
  dj=6
②     
print("空气质量等级为:"+skydd,"空气状况为:"+ss)
(1)程序运行时,输入200,则屏幕上显示的内容为    。
(2)请在程序划线处填入合适的代码。
答案 (1)空气质量等级为:Ⅳ,空气状况为:中度污染 (2)①aqi<=150 
②skydd=st[dj-1]
解析 本题主要考查的是多分支结构。(1)aqi=200时,对应的等级为Ⅳ,属于中度污染,因此屏幕上显示的内容为“空气质量等级为:Ⅳ,空气状况为:中度污染”。
(2)①处空气状况为“轻度污染”,因此条件为aqi<=150;空气质量等级存储在字符串skydd中,字符串的第一个字符的索引号为0,因此②处代码为skydd=st[dj-1]。
16.现有编号为"Xs001"、"Xs002"的两位学生,分别输入他们的性别和身高,按一定的规则进行排列,输出排列后的座位信息,实现该功能的程序代码如下:
xm1="Xs001"
xm2="Xs002"
xb1=input("请输入第1位学生性别:")
sg1=float(input("请输入第1位学生身高(米):"))
xb2=input("请输入第2位学生性别:")
sg2=float(input("请输入第2位学生身高(米):"))
print("两位同学座位依次是:",s)
if xb1==xb2 and sg1>sg2:
  s=xm1+" "+xm2
elif xb1==xb2 and sg1<=sg2:
  s=xm2+" "+xm1
elif xb1=="女":
  s=xm1+" "+xm2
else:
  s=xm2+" "+xm1
根据上述算法实现的功能,用嵌套的选择结构描述的流程图如图所示,
(1)将流程图中①②处补充完整。
①_______________________________________②_______________________________________
(2)根据流程图,将方框内代码用嵌套的选择结构实现相应功能,并写出Python语句块。
答案 (1)①sg1>sg2  ②xb1=="女"
(2) if xb1==xb2:
    if sg1>sg2:
      s=xm1+" "+xm2
   else:
      s=xm2+" "+xm1
  else:
   if xb1=="女":
     s=xm1+" "+xm2
   else:
     s=xm2+" "+xm1
解析 (1)程序功能:相同性别按身高从高到低排列,不同性别女生排在前面,男生排在后面。当条件xb1==xb2成立时,表示是相同性别,则进行身高的比较,因此①处为sg1>sg2 当条件不成立时,女生优先,因此②处为xb1=="女"
(2)先用一个判断结构来区分是否相同的性别,在一个分支中嵌套另一个分支。课时4 分支结构及程序实现
课时目标
1.理解分支结构的执行过程。2.掌握分支结构的三种if语句格式的使用。3.能根据实际问题选用合适的分支结构来解决。
1.选择结构通过判断某些特定条件是否满足来决定下一步的执行流程,常见的有单分支选择结构、双分支选择结构、________选择结构。
2.一个选择结构是一个语句块,块内的语句一般缩进4个空格。在Python中对缩进有严格要求,可以根据缩进来判断语句的从属关系。
3.选择语句条件表达式结果的数据类型是________,值只有________和________两个。
4.算法进行程序实现时,分支结构可用if语句来实现。
if语句一般格式是:
(1)单分支选择结构
if 〈条件〉:
〈语句块1〉
(2)双分支选择结构
if 〈条件〉:
〈语句块1〉
else:
〈语句块2〉
(3)多分支选择结构
if 〈条件1〉:
〈语句块1〉
elif 〈条件2〉:
〈语句块2〉

elif 〈条件N〉:
〈语句块N〉
else:
〈语句块N+1〉
①语句块是一行或放在一起的多行语句,一般通过行缩进来标识if、else、elif下方的语句块必须采用相同的缩进。
②分支结构的条件只判断一次,符合条件的语句块也只执行一次。
              
例1 调查发现人们更倾向于选择数字对称的车牌号,如车牌号“浙H64M46”。于是小石编写了一个判断车牌号是否对称的代码,Python程序如下:
cp=input(″请输入车牌号(格式如“浙H64M46”):″)
s1=cp[2:4]
s2=①____
if②____:
print(″不是对称车牌″)
else:
print(″是对称车牌″)
为实现功能,划线处代码应为(  )
A.①cp[6:5:-1]  ②s1==s2
B.①cp[5:] ②s1!=s2
C.①cp[5:6] ②s1==s2
D.①cp[:-3:-1] ②s1!=s2
听课笔记:                                    
                                    
                                    
                                    
变式训练1 有下列Python程序段:
import random
s=input(″请输入字符串:″)
x=random.randint(3,6) #产生一个[3,6]之间的随机整数
n=len(s)
if len(s[0:x])r=s[x:n]+s[0:x]
else:
r=s[0:x]+s[x:n]
print(r)
执行该程序段,若输入“helloworld”(不包含双引号),则输出的结果不可能的是(  )
A.loworldhel B.oworldhell
C.helloworld D.worldhello
例2 用Python算法控制结构描述“您所在街道25分钟后小雨,50分钟后雨停”,设t为距离天气预报发布时间的间隔(单位:分钟),下列选项正确的是(  )
A.if t>50:
   print(″雨停″)
 elif t>25:
   print(″小雨″)
B.if t>50:
   print(″雨停″)
 else:
   print(″小雨″)
C.if t>25 and t<=50:
   print(″小雨″)
 else:
   print(″雨停″)
D.if t>25:
 print(″小雨″)
 elif t>50:
   print(″雨停″)
听课笔记:                                    
                                    
                                    
                                    
变式训练2 某市“一户一表”水费单价标准如下:第一档次:每户每月不超过17立方米的用水量,供水价格为2.4元/立方米;第二档次:每户每月17立方米(不含)到30立方米(含)的用水量,供水价格比第一档提高0.5倍;第三档次:每户每月超过30立方米的用水量,供水价格比第一档提高2倍。根据水费单价标准,用Python算法控制结构描述“第二、三档次的供水价格”。设volumn为某个月的用水量,price为供水价格初始值为2.4(单位;元/立方米),下列选项正确的是(  )
A.if volumn<=30:
   price=price*1.5
 else:
   price=price*3
B.if volumn>30:
   price=price*3
 elif volumn>17:
   price=price*1.5
C.if volumn<30:
   price=price*1.5
 else:
   price=price*3
D.if volumn>=30:
   price=price*3
 elif volumn>=17:
   price=price*1.5
例3 象限是平面直角坐标系(笛卡尔坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y 轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,以下实现该分类的 Python 程序段中正确的是(  )
A.if x==0 and y==0: result=″原点″
 if x==0 or y==0: result=″数轴″
 if x!=0 and y!=0:
  result=″象限″
B.if x==0 or y==0: result=″数轴″
 if x==0 and y==0:
   result=″原点″
 else: 
   result=″象限″
C.if x!=0 and y!=0:  
   result=″象限″
 if x==0 or y==0:
   result=″数轴″
 else:
   result=″原点″
D.if x!=0 and y!=0: result=″象限″
 if x==0 or y==0: result=″数轴″
 if x==0 and y==0:
   result=″原点″
听课笔记:                                    
                                    
                                    
                                    
变式训练3 BMI与身体状况关系如图所示
BMI<18 18≤BMI≤24 BMI>24
偏瘦 正常 偏胖
已知某同学的BMI值存储在变量X中,小蓝编写程序判断该同学的身体状况信息,并保存到变量Y中,则下列程序段无法实现该功能的是(  )
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 = "偏瘦"
D.if 18<=X<=24:
    Y = "正常"
 else:
    Y = "偏瘦"
  if X>18:
    Y = "偏胖"
例4 正整数n若是它平方数的尾部部分若与该正整数n相等,则称n为同构数。判断一个两位数n是否是同构数。为实现上述功能,请在划线处填入合适的语句。
n=int(input(″输入一个正整数″))
if________:
  print('是同构数')
else:
  print('不是同构数')
听课笔记:                                    
                                    
                                    
                                    
变式训练4 判断当前计算得到验证码变量yzm(整型)与商品识别条码s(字符串型)第13位是否相等,为实现上述功能,请在程序划线处填入合适的语句。
s=″3203225155569″
if____________:
  print(″验证通过″)
else:
  print(″验证不通过″)
例5 输入一个身份证号码s(字符串型),如果他的第17位是奇数,表示该公民的性别为男性,否则为女性。为实现上述功能,请在程序划线处填入合适的语句。
s=″330522********5115″
if________:
  print(″女性″)
else:
  print(″男性″)
听课笔记:                                    
                                    
                                    
                                    
变式训练5 输入一个正整数n,判断它是否是一个完全平方数,若是则输出“Yes”,否则输出“No”。为实现上述功能,请在划线处填入合适的语句。
n=int(input('please input n:'))
if________:
  print('Yes')
else:
  print('No')
例6 若三条线段的长度分别为a、b、c,判断他们是否能构成三角形(任意两边之和大于第三边)。为实现上述功能,请在程序划线处填入合适的语句。
a=float(input('please input a:'))
b=float(input('please input b:'))
c=float(input('please input c:'))
if________________:
  print('能构成三角形')
else:
  print('不能构成三角形')
听课笔记:                                    
                                    
                                    
                                    
变式训练6 输入一个密码psd,若密码的长度小于6位,则提示“密码长度不能少于6位!”,否则提示“OK!”。为实现上述功能,请在程序划线处填入合适的代码。
psd=input('Please input password:')
if____________:
  print(″OK!″)
else:
  print(″密码长度不能少于6位!″)
例7 用计算机模拟一个猜商品价格的游戏,首先计算机随机产生一个[20,60]之间的整数x作为商品的价格,用户输入价格,若猜中了,提示“恭喜你猜中了!”,所猜价格与x的差值在5元之内,提示“加油,答案很接近!”,高于5元,提示“你猜得太高或太低了!”。程序代码如下所示,请在程序划线处填入合适的代码:
# 计算机随机产生一个[20,60]之间的整数x,并赋于变量shpjg,代码省略
jg=int(input(″输入你猜的价格:″))
if①____________:
  print(″恭喜你猜中了!″)
elif②____________:
  print(″你猜得太高或太低了!″)
else:
  print(″加油,答案很接近!″)
听课笔记:                                    
                                    
                                    
                                    
变式训练7 某旅游景点规定,身高在1.2米以下的儿童免费,身高在1.2及米上,但不超过1.5米的儿童购买半价票,身高超过1.5米的游客购买全价票。实现上述功能的程序如下,请在程序划线处填入合适的代码。
h=float(input('请输入身高(单位米):'))
if①____________:
  print('免费')
elif②____________:
  print('请购买半价票')
else:
  print('请购买全价票')
变式训练8 用Python语言编写一个程序,实现如下功能:
输入某一学生的性别、身高和体重,计算该生的BMI指数并分析其体型情况,得到其体重指数分数,然后输出。
体质指数(BMI)=体重(kg)÷身高(m)2(如:70kg÷(1.75m)2=22.86)
等级 体重指数分数 男 女
偏瘦 80 ≤16.4 ≤16.4
标准 100 16.5~23.2 16.5~22.7
超重 80 23.3~26.3 22.8~25.2
肥胖 60 ≥26.4 ≥25.3
编写的程序代码如下,将划线处填写完整。
xb=input(″输入性别:″)
sg=float(input(″输入身高(单位:m):″))
tz=float(input(″输入体重(单位:kg):″))
①________ #计算BMI的值,并四舍五入保留两位小数
print(″bmi值为:″,bmi)
if bmi<=16.4:
  bmizx= 1
elif xb==″男″ and bmi<=23.2 or xb==″女″ and bmi<=22.7:
  bmizx= 2
elif xb==″男″ and bmi<=26.3 or xb==″女″ and bmi<=25.2:
  bmizx= 3
②________:
  bmizx= 4
bz={1:″偏瘦″,2:″标准″,3:″超重″,4:″肥胖″}
print(″你的体型属于″,③________)
1.有如下Python程序段:
a=[2,3,5,6,9]
x=min(a);y=max(a);ans=a[1]
if x**2>y:
  ans=ans+x**2
  ans=ans∥2
else:
  ans=ans+y
  ans=ans%y
print(ans)
执行该程序段后,输出的内容是 (  )
A.6 B.5 C.4 D.3
2.有如下 Python 程序段:
# 输入 3 个整数分别存储到变量 a、b、c 中,代码略
if a > b and a > c:  
  maxn = a
elif b > a and b > c:
  maxn = b
elif c > a and c > b:
  maxn = c
print("a,b,c 的最大值为:", maxn)
执行该程序段,输入下列 4 组测试数据,无法正确输出 a、b、c 的最大值的是
A.10,20,30 B.20,30,10
C.30,10,10 D.10,10,10
3.以下程序实现与计算机玩“石头剪刀布”的游戏(分别用0,1,2代表石头、剪刀、布),游戏规则为:石头赢剪刀、剪刀赢布、布赢石头。代码如下:
import random
pc=random.randint(0,2)
player=int(input("请输入石头(0)、剪刀(1)、布(2):"))
if① 
  print("你赢了,恭喜!")
elif player==pc:
  print("平手")
else:
  print("你输了,再接再厉!")
解决该问题,上述程序①处填入语句正确的是 (  )
A.pc>player
B.pcC.pc-player==1 and player-pc==2
D.pc-player==1 or player-pc==2
4.某Python代码如下,执行后输出的结果是 (  )
L=['pear','apple','orange']
n=len(L[2])
ans=3
if n%2==0:
  ans*=n
else:
  ans+=n
ans-=5
print(ans)
A.13 B.3 C.18 D.8
5.用Python 算法描述鱼缸水温预警功能:当水温高于32度时, LED灯呈现“红色”;低于27度时,LED灯呈现“蓝色”;其余情况LED灯呈现“绿色”。
# 通过传感器获取鱼缸内水温值,并存储到变量 t 中LED="绿色"
LED="绿色"
if        :
  if t>32:
    LED="红色"
  else:
    LED="蓝色"
print("LED 灯颜色显示:",LED)
为实现上述功能,划线处正确的 Python 表达式是 (  )
A.not(27C.t<27 or t>32 D.t<27 and t>32
6.下列选项中,对变量flag的赋值与其它三项不等价的是 (  )
A.if a>b:
   flag=True
 flag=False
B.flag=a>b
C.if a>b:
   flag=True
 else:
   flag=False
D.flag=False
 if a>b:
   flag=True
7.有如下程序段:
list1=["an","alpha","around","bee","back","cake"]
leng=len(list1)
if leng>6:
  z=list1[0]
else:
  z=list1[leng-1]
print(z)
执行后,输出的结果为    。
8.如图所示的流程图的功能是根据用水量求水费。回答下列问题:
v=①     
if②      :
  s=2.4*v
elif v<=30:
  ③     
else:
  s=4.3*v
print(s)
(1)请在程序划线处填入合适的语句。
(2)结合算法和流程图分析,若输入用水量为28吨,则输出的s值将为    ,若输入用水量为100吨,则输出的s值为    。
9.下列选项的语句中,与“若 x 小于 0,则 y=-1,否则,y=1”功能相同的是 (  )
A.if x<0:
   y=-1
 y=1
B.y=1
 if x<0
   y=-1
C.if x<0:
   y=-1
 if x>0:
  y=1
D.if x>0:
   y=1
 else:
   y=-1
10.用Python算法控制结构描述“小李起床后20分钟后去锻炼,50分钟后锻炼结束去学校”,设t为起床后经过的时间,下列选项正确的是 (  )
A.if t>50:
 print("去学校")
 else:
 print("去锻炼")
B.if t>50:
 print("去学校")
 elif t>20:
 print("去锻炼")
C.if t>20 and t<50:
 print("去锻炼")
 else:
 print("去学校")
D.if t>20:
 print("去锻炼")
 elif t>50:
   print("去学校")
11.用Python算法控制结构描述:若水位高于10(不含)或者排水速度小于0.05(不含),发出警告。实时监测到的水位用h表示,排水速度用v表示,下列代码正确的是 (  )
A.if h>10:
 if v<0.05:
   print("警告!")
 else:
   print("正常!")
B.if h<=10 or v>=0.05:
   print("正常!")
 else:
   print("警告!")
C.if h<=10:
   print("正常!")
 elif v>=0.05:
   print("正常!")
 else:
   print("警告!")
D.if h>10:
   print("警告!")
 elif v<0.05:
   print("警告!")
 else:
   print("正常!")

展开更多......

收起↑

资源列表