内容正文:
专题04 Python表达式和程序实现
高频考点概览
考点一 Python表达式
考点二 Python循环结构、分支结构的程序实现
考点一
Python表达式
1.(2025北京)以下Python表达式错误的是( )
A.["a","b"]+["小明",6] B.12//5 C.10%-3 D.3+"d"
2.(2025云南)某购物平台推出满减优惠活动,跨店每满299元减50元。如果用y存储消费者选购商品的总金额,用s存储消费者的应付金额,根据活动规则,计算应付金额s的Python 表达式是( )
A.s = y // 299 * 50 B.s = y / 299 * 50
C.s = y – y % 299 * 50 D.s = y – y // 299 * 50
3.(2023河北)将如下的代数式转换成Python表达式,正确的是( )
A.(2*x*x-3*x-5)**0.5/5*x*x-4*x
B.2*x*x-(3*x-5**0.5)/5*x*x-4*x
C.(2*x*x-3*x-5)**0.5/(5*x*x-4*x)
4.(2023河北)如果想统计3、4两个班共青团员的学生人数n,在下列哪个逻辑表达式为真的时候,该生才能计入人数n( )
A.政治面貌=="共青团员" and (班级==3 or 班级==4)
B.政治面貌=="共青团员" or (班级==3 and 班级==4)
C.政治面貌=="共青团员" or 班级==3 and 班级==4
5.(2025上海)小汇同学需要实现找出当前所有记录中满足“对电影评分小于7,且观影次数大于等于2”的记录,则相关条件表达式正确的是( )
A.p[x]<7 and g[x]>=2 B.p<7 and g>=2 C.p>7 or g>=2 D.p[x]<7 or p[x]>=2
6.(2024北京)下列Python表达式,判断ch是大写字母的是( )
A.ch >='A'and ch <='Z' B.ch >='A'or ch <='Z'
C.'A'<= ch <='Z' D. 'A'< ch <'Z'
7.(2025北京)的Python表达式为 。
考点二
Python循环、分支结构的程序实现
1.(2023河北)下图a中的Python程序运行后,会得到图b所示的结果。分析模仿图a中的Python程序,在图c所示Python程序中的①、②、③处分别填写什么,可以得到图d所示的结果( )
A.①@ ②5 ③4 B.①5 ②5 ③@ C.①4 ②5 ③"@"
2.(2023北京)用Python程序计算100以内所有奇数的和,代码如图,该程序使用了顺序结构和( )
1 s=0
2 for a in range( ):
3 s=s+a
4 print(s)
A.选择结构 B.循环结构 C.分支结构 D.拓扑结构
3.(2022云南)所谓“水仙花数”是指这样一个三位数,其各位数字的三次方之和等于该数本身。例如:153=13+53+33,故153是水仙花数。下面的Python 程序用于输出100到999之间的水仙花数,程序中第5行下划线处应填写的代码是( )
1 for i in range(100,100):
2 b = i// 100 #百位
3 s = i // 10 % 10 #十位
4 g = i % 10 #个位
5 if :
6 print(i)
A.i==b**3+s**3+g**3 B.i==b**2+s**2+g**2 C.i==b*3+s*3+g*3 D.i==b*2+s*2+g*2
4.(2025浙江)某零售店推出智能购物手推车,支持实时计价和自助结账。手推车配备触摸屏、能自动称重的内置秤和集成AI 算法的智能摄像头等设备。智能摄像头识别商品后,系统通过网络从服务器数据库中获取该商品的信息,并在触摸屏上显示商品信息及累计金额。用户可直接在触摸屏上确认账单,完成手机扫码支付后,系统生成电子购物凭证。该店推出购物优惠活动:购物消费金额s 达到100元或商品种类n 满5种,消费金额s 打9折。下列 Python 程序段能实现按该规则计价的是( )
①d=1
if s >= 100 and n >= 5:
d=0.9
print("金额:",s*d)
②d=1
if s >= 100 or n >= 5:
d=0.9
print("金额:",s*d)
③d=1
if s >= 100:
d=0.9
elif n >= 5:
d=0.9
print("金额:",s*d)
④d=1
if s >= 100:
d=0.9
if n >= 5:
d=0.9
print("金额:",s*d)
A.①②③ B.②③④ C.①②④ D.①③④
5.(2025云南)下图为小郑用Python编写的图书馆借阅逾期罚款计算程序,如果输入逾期天数为16,则程序运行结果是( )
A.9 B.11 C.16 D.18
6.(2023北京)某同学编写的Python程序,实现的功能是:输入任意整数a和b,判断b的值是否为零,如果不等于0,则输出(a-b)/b的值,否则输出“错误”。对于程序中的错误,描述正确的选项是( )
1 a=int(input("a="))
2 b=int(input("b="))
3 if b!=0
4 print(a-b)/b
5 else b=0:
6 print("错误")
A.第3行if语句末尾少冒号":"
B.第4行print语句少小括号,应调整为 print((a-b)/b)
C.第5行的else语句后面不用写"b=0",直接冒号":"
D.第6行print语句无需缩进,与上条语句对齐即可
7.(2023上海)为了更好地了解某地的水质情况,科研人员采集了该地各监测点当天的水质数据。数据中包含了各监测点的水质类别、水温(℃)、pH、溶解氧(mg/L)、高锰酸盐指数(mg/L)。通过数字化学习,小申了解到水质类别从高到低分为1-5类,级别最高(质量最好)为1,级别最低(质量最差)为5。小申设计了一个算法,判断样本的水质类别是否符合2类及以上标准(即水质类别1-2认为符合,其他认为不符合)。小申编写的程序如下所示,以下选项填入划线处正确的是( )
r=int(input("请输入样本的水质类别:"))
if ________:
print("符合")
else:
print("不符合")
A.r<2 B.r==1 and r==2 C.r>=2 D.r==1 or r==2
8.(2023广西)在Python中,下列程序段执行后,变量s的值是( )
w=2
h=5
if h>8:
s=w*2
else:
s=w+1
A.1 B.2 C.3 D.4
9.(2023河北)某高校的n名男生打算暑期一起出去旅游,出发前需要安排好酒店住宿,已知当地4人间为160元/间,3人间为140元/间,在保证每人都有床位的情况下,怎样订房间最省钱。小王编写了如下的程序,其中②处应填写( )
A.rs%3==0 B.rs%3<0 C.rs//3==0
10.(2025上海)小申利用数据分析的相关知识,对“高中生AI大模型使用情况调查”收集到的问卷数据进行统计和分析,以帮助学校更好地了解高中生使用大模型的现状,下表为回收问卷整理的数据。
问卷编号
用户
年级
使用频率
大模型
应用场景
1
20240130
高一
经常使用
豆包
A
2
20240238
高一
偶尔使用
DeepSeek
B
3
20230304
高二
偶尔使用
百度文心
D
……
……
……
……
……
……
100
20220507
高三
未使用过
……
……
……
……
……
……
(1)下图是统计学生使用大模型进行“辅助编程”人数的算法流程图,请从右侧选择合适的框图填入左侧流程图虚线框中,从上到下正确的框图顺序是
(2)问卷调査数据存储于T4_7.csv文件中,参考上述算法流程图,编写程序统计使用大模型进行“辅助编程”的学生人数。
import pandas as pd
df=pd.read_csv("T4_7.csv",encoding="ANSI") #读取数据源csv文件
data=df[df["应用场景"].notna()] #筛选出“应用场景”一列数据中“不为空”的记录
app=list(data["应用场景"]) #将筛选后的“应用场景”一列的数据存储到app中
total_B=0 #初始化累加器变量,用来统计选择“B.辅助编程”的学生人数
#在以下区域继续完善代码
for i in range( ): if :
#以下输出语句,无需修改
print("使用大模型进行“辅助编程”的人数:",total_B)
11.(2025浙江)某班举行“智力问答比赛”,共25小题,每小题答对得1分,答错或缺答得0分,满分25分。比赛结束后,同学们的原始小题分存储在文本文件“score.txt”中,部分内容如图a所示(每一行记录一位同学的姓名和25道小题分,姓名和小题分之间以空格分隔)。陈老师利用Python程序对25道小题分求和得出每位同学总分,再统计各个分数等级的人数。按照如下的等级评判标准,判断并输出结果。
分数
分数≥21
16≤分数<21
11≤分数<16
分数<11
等级
A
B
C
D
程序运行结果如图b所示,实现上述功能的Python程序如下,请回答下列问题:
(1)某位同学的25道小题的答题情况为1111100011111111011111001,则该同学的总分为:① 分,属于② 等级(选填A、B、C、D)。
(2)自定义sumx函数,功能是将每位同学的小题分求和,请在划线处填入合适代码。
def sumx (x):
for i in x:
sum=sum+int (i)
return sum
(3)自定义grade函数,获取分数对应的A、B、C、D等级,请在划线处填入合适的代码。
def grade (zf):
if zf>=21:
dj="A"
elif zf>=16:
dj="B"
elif zf>=11:
dj="C"
else:
dj=
return dj
(4)自定义stat函数,统计各个等级的同学人数,请在划线处填入合适的代码。
def stat (scores):
result=[0,0,0,0]
for i in scores:
dj=
result [ord(dj)-65]+=1 #相应等级人数+1
return result
(5)主程序,请在划线处填入合适的代码。
answers=[]
scores=[]
f=open("score.txt")
lines=f. readlines()
for line in lines:
a=line. strip(). split() #去除结尾换行符并以空格为分隔符进行分割
answers. append(a[1]) #记录每个同学的答题情况
f. close()
for i in answers:
scores.append (sumx(i)) #记录每个同学的成绩
result=stat(scores)
print("成绩分布如下:")
for i in range (len(result)):
print(chr (i+65)+"等级有"+ +"人")
12.(2023上海)为了更好地了解某地的水质情况,科研人员采集了该地各监测点当天的水质数据。数据中包含了各监测点的水质类别、水温(℃)、pH、溶解氧(mg/L)、高锰酸盐指数(mg/L)。通过数字化学习,小申了解到水质类别从高到低分为1-5类,级别最高(质量最好)为1,级别最低(质量最差)为5。小申编写程序统计某监测点水质类别为1的天数。请完善程序代码,将程序以原文件名保存在默认位置。点击图标进入开发环境。数据存储于T4_8.csv文件中,与该程序位于同一文件夹目录。
# 统计水质类别为 1 的天数
import pandas as pd
data=pd.read_csv("T4_8.csv",encoding='ANSI')
# 获取水质类别数据
szlb=list(data["水质类别"])
# 计数器
cnt=0
# 在以下区域继续完善代码
# 以下输出语句,无需修改
print(cnt)
# 根据测试源,判定结果(测试数据结果:49)
13.(2022云南)日本数学家角谷静夫在研究自然数时发现这样一个规律:对于任意一个正整数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。按此做法,经过有限次的运算后,总可以得到自然数1。人们把角谷静夫的这一发现叫做“角谷猜想”。小敏在学习了程序设计后,通过Python 程对“角谷猜想”进行验证。小敏采用流程图描述验证“角谷猜想”的算法和Python序如下所示:
1 n=int(input(“请输入一个正整数:”))
2 while n>1:
3 if :
4 n=n//2
5 else:
6 n=
7 print(n)
(1)程序中第3行下划线处应填入 。
(2)程序中第6行下划线处应填入 。
(3)根据“角谷猜想”,当输入任意一个正整数n,最终输出n的值为 。
14.(2024浙江)某 APP 依据手机每秒钟屏幕的亮、熄,记录当天00:00:00 至 23:59:59之间手机持续亮屏的各时间段,并生成手机亮屏日志文件。若用0表示熄屏,1表示亮屏,某天前10秒的屏幕状态为“0011011110”,则日志中记为“00:00:02,00:00:03,00:00:05,00:00:08”,表示首个持续亮屏时间段的开始与结束时间点分别为“00:00:02”和“00:00:03”,时长为2秒,而第2个持续亮屏时间段时长为4秒。
编写Python程序读取某天的日志文件,计算并输出手机当天亮屏的总时长、单次持续亮屏时长的最大值和相应的时间段(若相应时间段有多个,则按时间顺序全部输出)。
(1)若某天日志文件记录的前6个时间点如图所示,可知当天10:00:00该手机处于 (单选,填字母;A.亮屏状态/B.熄屏状态);
(2)定义函数tosec(x),参数x是形如“08:00:05”的时间点,该函数的功能是计算点x是当天的第几秒(约定00:00:00为当天第0秒)。请在划线处填入合适的代码。
def tosec(x):
#从时间点x中提取时、分,转为整型后分别存储在变量h、m中,代码略
s=
n=h*3600 +m*60+s
return n
(3)定义函数getdata(t),该函数功能是依次计算每个持续亮屏时间段的时长并存入列表 c,其时间段存入列表d,返回c和d。请在划线处填入合适的代码。
def getdata(t):
i=0
c=[]; d=[]
while i < len(t):
c. append(tmp) # 在列表c末尾添加一个元素
d. append(t[i] + "-" + t[i + 1])
i+= 2
return c, d
(4)实现上述功能的主程序如下,请在划线处填入合适的代码。
#读取某天日志中各时间点,依次存入列表t,t形如["08:00:00",……],代码略
c,d= getdata(t)
tot = 0; cmax = 0
res =""
for i in range(len(d)):
tot += c[i]
if c[i] >cmax:
cmax = c[i]
res = d[i]
elif :
res = res + "," + d[i]
"""
输出当天亮屏的总时长 tot
输出单次持续亮屏时长的最大值cmax和相应的时间段res代码略
"""
15.(2025北京)根据如下流程图,求输出的a值,并将该流程图用Python语言编写成代码。
(1)求输出的a值( )
A.68 B.84 C.104 D.132
(2)python代码:
16.(2025云南)为帮助农民合理安排灌溉、施肥等农业生产活动,某地农业气象站购买了一套降雨量精准测量系统。该系统的主要功能是:使用称重式雨量计测量降雨量,并把降雨量数据实时上传到气象中心服务平台,实现对降雨信息的准确跟踪。据此完成下列要求。
(1)系统中的称重式雨量计由承水口、滤网、储水桶和称重传感器等组成,降雨时,通过测量收集到的雨水重量来确定降雨量,采集降雨数据,这属于该信息系统的 功能。
(2)某地降雨量与地质灾害事件次数的可视化图表如下图所示,图表由柱形图和 图组成。从图表中可发现,降雨量最大、发生地质灾害最频繁的月份是 月。
(3)气象学上,降雨等级的划分一般是根据24小时内的降水量来确定,参照表如下:
已知某地6月份第1周的24小时降水量存放在列表rainfall中。请完善程序,使其能够根据不同的降水量数值,输出对应气象学分类。
①程序中第11行划线处应填入 。
②程序中第20行划线处应填入 。
17.(2025云南)在“全国读书节”来临之际,某书店推出“生日书香月”活动,活动期间会员凭身份证购买图书可享受购书优惠。购书优惠规则是:9月出生的会员均可享受8.5折优惠;9月28日出生的会员可享受5折优惠。下图是小张用Python为书店编写的图书优惠金额结算程序:
(1)中华人民共和国居民身份证号码由18位数字构成,其中第11~14位是生日编码,如:“0626”表示生日是6月26日。如果要提取生日中“天”的信息,程序第4行下划线处应该填入 。
(2)程序第10行变量sfz的数据类型是 。
(3)如果某会员的身份证号码为532433200909280417,购书金额为160元,则优惠后应支付的金额为 元。
学科网(北京)股份有限公司1 / 4
学科网(北京)股份有限公司
$
专题04 Python表达式和程序实现
高频考点概览
考点一 Python表达式
考点二 Python循环结构、分支结构的程序实现
考点一
Python表达式
1.(2025北京)以下Python表达式错误的是( )
A.["a","b"]+["小明",6] B.12//5 C.10%-3 D.3+"d"
【答案】D
【详解】本题考查Python表达式相关内容。ABC选项表达式正确。D选项,Python是强类型语言,数值和字符串的混合运算需显式类型转换,否则会抛出TypeError,选项错误。故本题答案是D选项。
2.(2025云南)某购物平台推出满减优惠活动,跨店每满299元减50元。如果用y存储消费者选购商品的总金额,用s存储消费者的应付金额,根据活动规则,计算应付金额s的Python 表达式是( )
A.s = y // 299 * 50 B.s = y / 299 * 50
C.s = y – y % 299 * 50 D.s = y – y // 299 * 50
【答案】D
【详解】本题考查的是Python表达式。//表示整除,跨店每满299减50元,y//299*50计算总共优惠的金额, y – y // 299 * 50表示需支付的金额。故选D。
3.(2023河北)将如下的代数式转换成Python表达式,正确的是( )
A.(2*x*x-3*x-5)**0.5/5*x*x-4*x
B.2*x*x-(3*x-5**0.5)/5*x*x-4*x
C.(2*x*x-3*x-5)**0.5/(5*x*x-4*x)
【答案】C
【详解】本题考查python表达式。先计算根号内的部分 2x 2 −3x−5 ,然后对其开平方,在 Python 中,开平方可以用**0.5表示 ,即 (2∗x∗x−3∗x−5)∗∗0.5 。 再计算分母部分 5x 2 −4x ,在 Python 中表示为 5∗x∗x−4∗x 。 最后用开平方的结果除以分母的结果,即 (2∗x∗x−3∗x−5)∗∗0.5/(5∗x∗x−4∗x) 。故选C。
4.(2023河北)如果想统计3、4两个班共青团员的学生人数n,在下列哪个逻辑表达式为真的时候,该生才能计入人数n( )
A.政治面貌=="共青团员" and (班级==3 or 班级==4)
B.政治面貌=="共青团员" or (班级==3 and 班级==4)
C.政治面貌=="共青团员" or 班级==3 and 班级==4
【答案】A
【详解】本题考查的是python表达式。逻辑表达式需确保两个条件同时成立(即使用 and 连接),而班级条件中“3班或4班”需用 or 表示。故选A。
5.(2025上海)小汇同学需要实现找出当前所有记录中满足“对电影评分小于7,且观影次数大于等于2”的记录,则相关条件表达式正确的是( )
A.p[x]<7 and g[x]>=2 B.p<7 and g>=2 C.p>7 or g>=2 D.p[x]<7 or p[x]>=2
【答案】A
【详解】本题考查的是Python表达式。表达式中需明确字段和记录索引(如 p[x]、g[x]),以确保针对每条记录检查,题目条件为 “且”(and),必须同时满足。故选A。
6.(2024北京)下列Python表达式,判断ch是大写字母的是( )
A.ch >='A'and ch <='Z' B.ch >='A'or ch <='Z'
C.'A'<= ch <='Z' D. 'A'< ch <'Z'
【答案】AC
【详解】本题考查Python表达式。判断ch是大写字母的表达式是:ch >='A'and ch <='Z' 或者 'A'<= ch <='Z'。故选AC。
7.(2025北京)的Python表达式为 。
【答案】(2*a)/(b + c)
【详解】本题考查 Python表达式。在 Python 里,乘法运算用*表示,除法运算用/表示,同时需通过括号保障运算顺序与数学表达式一致。在该题的数学表达式中,分子2a的 Python 表达式为2*a,分母直接表示为b + c,为确保先算分母的加法,要给分母加上括号,所以整体的 Python 表达式是(2*a)/(b + c)。因此该题答案为(2*a)/(b + c)。
考点二
Python循环、分支结构的程序实现
1.(2023河北)下图a中的Python程序运行后,会得到图b所示的结果。分析模仿图a中的Python程序,在图c所示Python程序中的①、②、③处分别填写什么,可以得到图d所示的结果( )
A.①@ ②5 ③4 B.①5 ②5 ③@ C.①4 ②5 ③"@"
【答案】C
【详解】本题考查 Python 嵌套循环的逻辑应用。 图 d 是 4 行、每行 5 个 “@” 的图案。 外层循环控制行数,图 d 有 4 行,因此 range(①) 中①应填 4 ,让外层循环执行 4 次 。内层循环控制每行输出字符数量,图 d 每行有 5 个字符,因此 range(②) 中②应填 5 ,让内层循环每行执行 5 次 。输出的字符是 “@” ,因此 print(③,end='') 中③应填 “@” ,指定输出内容 。因此,本题选择C。
2.(2023北京)用Python程序计算100以内所有奇数的和,代码如图,该程序使用了顺序结构和( )
1 s=0
2 for a in range( ):
3 s=s+a
4 print(s)
A.选择结构 B.循环结构 C.分支结构 D.拓扑结构
【答案】B
【详解】本题主要考查Python循环结构的应用。分析程序可知,该程序使用了顺序结构和for循环结构,故本题选B选项。
3.(2022云南)所谓“水仙花数”是指这样一个三位数,其各位数字的三次方之和等于该数本身。例如:153=13+53+33,故153是水仙花数。下面的Python 程序用于输出100到999之间的水仙花数,程序中第5行下划线处应填写的代码是( )
1 for i in range(100,100):
2 b = i// 100 #百位
3 s = i // 10 % 10 #十位
4 g = i % 10 #个位
5 if :
6 print(i)
A.i==b**3+s**3+g**3 B.i==b**2+s**2+g**2 C.i==b*3+s*3+g*3 D.i==b*2+s*2+g*2
【答案】A
【详解】本题主要考查Python程序的调试。所谓“水仙花数”是指这样一个三位数,其各位数字的三次方之和等于该数本身。Python程序中,幂运算符是“**”,故此处填i==b**3+s**3+ g**3,故本题选A选项。
4.(2025浙江)某零售店推出智能购物手推车,支持实时计价和自助结账。手推车配备触摸屏、能自动称重的内置秤和集成AI 算法的智能摄像头等设备。智能摄像头识别商品后,系统通过网络从服务器数据库中获取该商品的信息,并在触摸屏上显示商品信息及累计金额。用户可直接在触摸屏上确认账单,完成手机扫码支付后,系统生成电子购物凭证。该店推出购物优惠活动:购物消费金额s 达到100元或商品种类n 满5种,消费金额s 打9折。下列 Python 程序段能实现按该规则计价的是( )
①d=1
if s >= 100 and n >= 5:
d=0.9
print("金额:",s*d)
②d=1
if s >= 100 or n >= 5:
d=0.9
print("金额:",s*d)
③d=1
if s >= 100:
d=0.9
elif n >= 5:
d=0.9
print("金额:",s*d)
④d=1
if s >= 100:
d=0.9
if n >= 5:
d=0.9
print("金额:",s*d)
A.①②③ B.②③④ C.①②④ D.①③④
【答案】B
【详解】本题考查Python分支结构。根据题目优惠规则,当消费金额 s 达到 100 元 或 商品种类 n 满 5 种时,才打 9 折,因此逻辑应使用“或”(or)而非“与”(and),并且需要保证只要任一条件满足就能应用折扣。程序①使用了 and,只有两者同时满足才打折,不符合规则;程序②使用 or,只要任一条件满足就打折,符合规则;程序③用 elif 分支,也能在任一条件满足时打折,符合规则;程序④虽然使用两个独立的 if,但最终效果也是只要任一条件成立就打折,也符合规则。因此正确答案是②、③、④。故答案为:B。
5.(2025云南)下图为小郑用Python编写的图书馆借阅逾期罚款计算程序,如果输入逾期天数为16,则程序运行结果是( )
A.9 B.11 C.16 D.18
【答案】B
【详解】本题考查Python分支结构的执行逻辑。输入逾期天数为16:首先判断days<=7?16不满足;再判断days<=14?16不满足;进入else分支,计算fine=7+(16-14)*2 = 7 + 2*2 = 11。所以程序运行结果是11,选B。
6.(2023北京)某同学编写的Python程序,实现的功能是:输入任意整数a和b,判断b的值是否为零,如果不等于0,则输出(a-b)/b的值,否则输出“错误”。对于程序中的错误,描述正确的选项是( )
1 a=int(input("a="))
2 b=int(input("b="))
3 if b!=0
4 print(a-b)/b
5 else b=0:
6 print("错误")
A.第3行if语句末尾少冒号":"
B.第4行print语句少小括号,应调整为 print((a-b)/b)
C.第5行的else语句后面不用写"b=0",直接冒号":"
D.第6行print语句无需缩进,与上条语句对齐即可
【答案】ABC
【详解】本题考查的是Python选择语句。观察程序可知,第3行if语句末尾少冒号":";第4行print语句少小括号,应调整为 print((a-b)/b);第5行的else语句后面不用写"b=0",直接冒号":"。第6行print语句需要缩进。故本题应选ABC。
7.(2023上海)为了更好地了解某地的水质情况,科研人员采集了该地各监测点当天的水质数据。数据中包含了各监测点的水质类别、水温(℃)、pH、溶解氧(mg/L)、高锰酸盐指数(mg/L)。通过数字化学习,小申了解到水质类别从高到低分为1-5类,级别最高(质量最好)为1,级别最低(质量最差)为5。小申设计了一个算法,判断样本的水质类别是否符合2类及以上标准(即水质类别1-2认为符合,其他认为不符合)。小申编写的程序如下所示,以下选项填入划线处正确的是( )
r=int(input("请输入样本的水质类别:"))
if ________:
print("符合")
else:
print("不符合")
A.r<2 B.r==1 and r==2 C.r>=2 D.r==1 or r==2
【答案】D
【详解】本题主要考查Python分支结构的应用。and是且,or是或,判断样本的水质类别是否符合2类及以上标准(即水质类别1-2认为符合,其他认为不符合),因此if判断条件是r==1 or r==2,故本题选D选项。
8.(2023广西)在Python中,下列程序段执行后,变量s的值是( )
w=2
h=5
if h>8:
s=w*2
else:
s=w+1
A.1 B.2 C.3 D.4
【答案】C
【详解】本题考查的是Python选择语句。初始w=2,h=5。不满足h>8,执行s=w+1=2+1=3。故本题应选C。
9.(2023河北)某高校的n名男生打算暑期一起出去旅游,出发前需要安排好酒店住宿,已知当地4人间为160元/间,3人间为140元/间,在保证每人都有床位的情况下,怎样订房间最省钱。小王编写了如下的程序,其中②处应填写( )
A.rs%3==0 B.rs%3<0 C.rs//3==0
【答案】A
【知识点】分支结构的程序实现、循环结构的程序实现
【详解】本题考查的是循环与分支语句的应用。本题是通过 Python 程序解决酒店订房最省钱的问题,核心是根据总人数 n ,枚举四人间数量 r4 ,计算剩余人数 rs ,再看剩余人数能否被 3 整除来确定三人间数量 r3 ,进而计算费用并找出最小费用。所以②处应填写 rs%3==0。故选A。
10.(2025上海)小申利用数据分析的相关知识,对“高中生AI大模型使用情况调查”收集到的问卷数据进行统计和分析,以帮助学校更好地了解高中生使用大模型的现状,下表为回收问卷整理的数据。
问卷编号
用户
年级
使用频率
大模型
应用场景
1
20240130
高一
经常使用
豆包
A
2
20240238
高一
偶尔使用
DeepSeek
B
3
20230304
高二
偶尔使用
百度文心
D
……
……
……
……
……
……
100
20220507
高三
未使用过
……
……
……
……
……
……
(1)下图是统计学生使用大模型进行“辅助编程”人数的算法流程图,请从右侧选择合适的框图填入左侧流程图虚线框中,从上到下正确的框图顺序是
(2)问卷调査数据存储于T4_7.csv文件中,参考上述算法流程图,编写程序统计使用大模型进行“辅助编程”的学生人数。
import pandas as pd
df=pd.read_csv("T4_7.csv",encoding="ANSI") #读取数据源csv文件
data=df[df["应用场景"].notna()] #筛选出“应用场景”一列数据中“不为空”的记录
app=list(data["应用场景"]) #将筛选后的“应用场景”一列的数据存储到app中
total_B=0 #初始化累加器变量,用来统计选择“B.辅助编程”的学生人数
#在以下区域继续完善代码
for i in range( ): if :
#以下输出语句,无需修改
print("使用大模型进行“辅助编程”的人数:",total_B)
【答案】 ①④② len(app) app[i]=="B" total_B+=1
【详解】本题考查Python程序设计。(1)根据流程图可知,[初始化计数器] → [遍历记录] → [检查是否为B] → [计数器加1] → [输出结果],因此正确答案为:①④②。(2)遍历app列表中的所有元素。故②处填len(app)。检查当前应用场景是否为"B"(辅助编程)。故③处填app[i]=="B"。如果满足条件则计数器加1。故④处填total_B+=1。
11.(2025浙江)某班举行“智力问答比赛”,共25小题,每小题答对得1分,答错或缺答得0分,满分25分。比赛结束后,同学们的原始小题分存储在文本文件“score.txt”中,部分内容如图a所示(每一行记录一位同学的姓名和25道小题分,姓名和小题分之间以空格分隔)。陈老师利用Python程序对25道小题分求和得出每位同学总分,再统计各个分数等级的人数。按照如下的等级评判标准,判断并输出结果。
分数
分数≥21
16≤分数<21
11≤分数<16
分数<11
等级
A
B
C
D
程序运行结果如图b所示,实现上述功能的Python程序如下,请回答下列问题:
(1)某位同学的25道小题的答题情况为1111100011111111011111001,则该同学的总分为:① 分,属于② 等级(选填A、B、C、D)。
(2)自定义sumx函数,功能是将每位同学的小题分求和,请在划线处填入合适代码。
def sumx (x):
for i in x:
sum=sum+int (i)
return sum
(3)自定义grade函数,获取分数对应的A、B、C、D等级,请在划线处填入合适的代码。
def grade (zf):
if zf>=21:
dj="A"
elif zf>=16:
dj="B"
elif zf>=11:
dj="C"
else:
dj=
return dj
(4)自定义stat函数,统计各个等级的同学人数,请在划线处填入合适的代码。
def stat (scores):
result=[0,0,0,0]
for i in scores:
dj=
result [ord(dj)-65]+=1 #相应等级人数+1
return result
(5)主程序,请在划线处填入合适的代码。
answers=[]
scores=[]
f=open("score.txt")
lines=f. readlines()
for line in lines:
a=line. strip(). split() #去除结尾换行符并以空格为分隔符进行分割
answers. append(a[1]) #记录每个同学的答题情况
f. close()
for i in answers:
scores.append (sumx(i)) #记录每个同学的成绩
result=stat(scores)
print("成绩分布如下:")
for i in range (len(result)):
print(chr (i+65)+"等级有"+ +"人")
【答案】 19 B sum=0 "D"或'D' grade(i) str(result[i])
【详解】本题考查python程序设计。
(1)该同学答题字符串 '1111100011111111011111001' 中 '1' 的数量为19个,故总分为19分,因 19<21,对应等级为B 。
(2)函数功能是对小题分字符串求和,需初始化 sum 变量为0,该空为sum=0。
(3)根据等级规则,分数小于 11 时等级为 D,该空为"D"或'D'。
(4)需调用 grade 函数获取当前分数的等级,该空为grade(i)。
(5)需将等级人数转换为字符串输出,该空为str(result[i])。
12.(2023上海)为了更好地了解某地的水质情况,科研人员采集了该地各监测点当天的水质数据。数据中包含了各监测点的水质类别、水温(℃)、pH、溶解氧(mg/L)、高锰酸盐指数(mg/L)。通过数字化学习,小申了解到水质类别从高到低分为1-5类,级别最高(质量最好)为1,级别最低(质量最差)为5。小申编写程序统计某监测点水质类别为1的天数。请完善程序代码,将程序以原文件名保存在默认位置。点击图标进入开发环境。数据存储于T4_8.csv文件中,与该程序位于同一文件夹目录。
# 统计水质类别为 1 的天数
import pandas as pd
data=pd.read_csv("T4_8.csv",encoding='ANSI')
# 获取水质类别数据
szlb=list(data["水质类别"])
# 计数器
cnt=0
# 在以下区域继续完善代码
# 以下输出语句,无需修改
print(cnt)
# 根据测试源,判定结果(测试数据结果:49)
【答案】for i in szlb:
if i==1:
cnt+=1
【详解】本题考查的是Python循环语句。统计某监测点水质类别为1的天数,依次对水质类别进行比较,如果水质类别为1,则计数加1。故代码如下:
for i in szlb:
if i==1:
cnt+=1
13.(2022云南)日本数学家角谷静夫在研究自然数时发现这样一个规律:对于任意一个正整数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。按此做法,经过有限次的运算后,总可以得到自然数1。人们把角谷静夫的这一发现叫做“角谷猜想”。小敏在学习了程序设计后,通过Python 程对“角谷猜想”进行验证。小敏采用流程图描述验证“角谷猜想”的算法和Python序如下所示:
1 n=int(input(“请输入一个正整数:”))
2 while n>1:
3 if :
4 n=n//2
5 else:
6 n=
7 print(n)
(1)程序中第3行下划线处应填入 。
(2)程序中第6行下划线处应填入 。
(3)根据“角谷猜想”,当输入任意一个正整数n,最终输出n的值为 。
【答案】 n%2==0 3*n+1 1
【详解】本题主要考查Python程序的综合应用。①对于任意一个正整数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。故此处if判断条件是n%2==0。②若n为奇数,则将其乘以3,然后再加1,故此处填3*n+1。③按此做法,经过有限次的运算后,总可以得到自然数1。因此根据“角谷猜想”,当输入任意一个正整数n,最终输出n的值为1。
14.(2024浙江)某 APP 依据手机每秒钟屏幕的亮、熄,记录当天00:00:00 至 23:59:59之间手机持续亮屏的各时间段,并生成手机亮屏日志文件。若用0表示熄屏,1表示亮屏,某天前10秒的屏幕状态为“0011011110”,则日志中记为“00:00:02,00:00:03,00:00:05,00:00:08”,表示首个持续亮屏时间段的开始与结束时间点分别为“00:00:02”和“00:00:03”,时长为2秒,而第2个持续亮屏时间段时长为4秒。
编写Python程序读取某天的日志文件,计算并输出手机当天亮屏的总时长、单次持续亮屏时长的最大值和相应的时间段(若相应时间段有多个,则按时间顺序全部输出)。
(1)若某天日志文件记录的前6个时间点如图所示,可知当天10:00:00该手机处于 (单选,填字母;A.亮屏状态/B.熄屏状态);
(2)定义函数tosec(x),参数x是形如“08:00:05”的时间点,该函数的功能是计算点x是当天的第几秒(约定00:00:00为当天第0秒)。请在划线处填入合适的代码。
def tosec(x):
#从时间点x中提取时、分,转为整型后分别存储在变量h、m中,代码略
s=
n=h*3600 +m*60+s
return n
(3)定义函数getdata(t),该函数功能是依次计算每个持续亮屏时间段的时长并存入列表 c,其时间段存入列表d,返回c和d。请在划线处填入合适的代码。
def getdata(t):
i=0
c=[]; d=[]
while i < len(t):
c. append(tmp) # 在列表c末尾添加一个元素
d. append(t[i] + "-" + t[i + 1])
i+= 2
return c, d
(4)实现上述功能的主程序如下,请在划线处填入合适的代码。
#读取某天日志中各时间点,依次存入列表t,t形如["08:00:00",……],代码略
c,d= getdata(t)
tot = 0; cmax = 0
res =""
for i in range(len(d)):
tot += c[i]
if c[i] >cmax:
cmax = c[i]
res = d[i]
elif :
res = res + "," + d[i]
"""
输出当天亮屏的总时长 tot
输出单次持续亮屏时长的最大值cmax和相应的时间段res代码略
"""
【答案】 B int(x[6:8]) tmp=tosec(t[i+1])-tosec(t[i]) +1 c[i] ==cmax;
【详解】本题考查的是python综合应用。
(1)由给出的前 6 个时间点可推知,手机在 09:59:59 到 10:05:03 之间处于熄屏状态,因此 10:00:00 时为熄屏状态,故选B。
(2)由n=h*3600 +m*60+s可知,s是时间点中的秒部分,即时间点的最后两位,故划线处答案为:int(x[6:8])或其它等价答案。
(3)函数 getdata(t) 中,用于计算单次亮屏时长c(单位:秒),由c. append(tmp)可知,单次亮屏时长c先存储在tmp中。计算方法:把对应的结束时间与开始时间分别转化成当日的第几秒后再相减,故划线处答案为:tmp=tosec(t[i+1])-tosec(t[i]) +1。
(4)若相应时间段有多个,则按时间顺序全部输出,故当发现某段时长与当前最大时长相等时,就将该时间段累加到结果字符串中。由res = res + " ," + d[i]可知,当前条件是:当前段时长与当前最大时长相等,故划线处代码为:c[i] ==cmax。
15.(2025北京)根据如下流程图,求输出的a值,并将该流程图用Python语言编写成代码。
(1)求输出的a值( )
A.68 B.84 C.104 D.132
(2)python代码:
【答案】 D a = 12
while a < 80:
a = a * 2 - 4
print(a)
【来源】北京市怀柔区2025年普通高中合格性考试信息技术试题
【知识点】算法的描述、循环结构的程序实现
【详解】本题考查的是流程图识读及Python循环语句。
(1)初始 a = 12,因 12 < 80,执行 a = a×2 - 4 → a = 12×2 - 4 = 20
20 < 80,执行 a = 20×2 - 4 = 36
36 < 80,执行 a = 36×2 - 4 = 68
68 < 80,执行 a = 68×2 - 4 = 132
132 ≥ 80,输出 a = 132,故选D。
(2)
代码说明: 初始化 a = 12,用 while 循环判断 a < 80,满足则执行 a = a×2 - 4,直到 a ≥ 80 时输出结果。具体代码如下:
a = 12
while a < 80:
a = a * 2 - 4
print(a)
16.(2025云南)为帮助农民合理安排灌溉、施肥等农业生产活动,某地农业气象站购买了一套降雨量精准测量系统。该系统的主要功能是:使用称重式雨量计测量降雨量,并把降雨量数据实时上传到气象中心服务平台,实现对降雨信息的准确跟踪。据此完成下列要求。
(1)系统中的称重式雨量计由承水口、滤网、储水桶和称重传感器等组成,降雨时,通过测量收集到的雨水重量来确定降雨量,采集降雨数据,这属于该信息系统的 功能。
(2)某地降雨量与地质灾害事件次数的可视化图表如下图所示,图表由柱形图和 图组成。从图表中可发现,降雨量最大、发生地质灾害最频繁的月份是 月。
(3)气象学上,降雨等级的划分一般是根据24小时内的降水量来确定,参照表如下:
已知某地6月份第1周的24小时降水量存放在列表rainfall中。请完善程序,使其能够根据不同的降水量数值,输出对应气象学分类。
①程序中第11行划线处应填入 。
②程序中第20行划线处应填入 。
【答案】 输入 折线图 7 r<250 或 100<=r<250 fenlei
【详解】本题考查的是信息系统功能及数据处理。
(1)“输入”是指系统从外部(如用户设备、传感器等)收集、接收原始数据的过程;“输出”是指系统将处理后的数据以特定形式(如文字、图表)提供给用户或其他系统的过程。“存储”是指通过数据库、文件等载体,长期保存系统收集和处理后的数据,以便后续调用。“加工与处理”是指对输入或存储的原始数据进行计算、分析、转换等操作,生成有价值的新数据。故答案为:输入
(2)由图中可知图表由柱形图和折线图组成,降雨量最大、发生地质灾害最频繁的月份是7月。
(3)①根据题目中降水量的分类,“大暴雨” 对应的是“大于等于 100 毫米,小于 250 毫米”,故此处答案为:r<250 或 100<=r<250;②在程序中,我们定义了一个函数 fenlei(r) 来根据降水量 r 返回对应的气象学分类。在第 20 行,我们需要调用这个函数来对 rainfall 列表中的每个元素 jsl 进行分类,所以应填入 fenlei 。
17.(2025云南)在“全国读书节”来临之际,某书店推出“生日书香月”活动,活动期间会员凭身份证购买图书可享受购书优惠。购书优惠规则是:9月出生的会员均可享受8.5折优惠;9月28日出生的会员可享受5折优惠。下图是小张用Python为书店编写的图书优惠金额结算程序:
(1)中华人民共和国居民身份证号码由18位数字构成,其中第11~14位是生日编码,如:“0626”表示生日是6月26日。如果要提取生日中“天”的信息,程序第4行下划线处应该填入 。
(2)程序第10行变量sfz的数据类型是 。
(3)如果某会员的身份证号码为532433200909280417,购书金额为160元,则优惠后应支付的金额为 元。
【答案】 12:14 字符串或string或字符串型 80
【详解】本题考查Python程序设计。
(1)索引号从左往右是从0开始标注,从右往左是从-1开始标注。身份证号码的第13-14位为出生日期,对应索引是[12:14],因此该空答案为12:14。
(2)Python中input()函数的返回值数据类型为字符串,因此变量sfz的数据类型是字符串或string或字符串型。
(3)结合身份证号码判断优惠规则(9月28日出生享5折优惠),并进行数值计算(160×0.5 = 80),因此该空答案为80。
学科网(北京)股份有限公司1 / 4
学科网(北京)股份有限公司
$