试题
一、程序填空
1.为保护环境,很多城市开始对垃圾实行分类,便于更好的进行处理,为了让大家了解垃圾的分类情况,建立了以下四类列表,list1(可回收垃圾)、list2(有害垃圾)、list3(易腐垃圾),剩下的为其他垃圾,目前,列表中已经存储了以下数据。 list1=[\"玻璃瓶\旧书\金属\纸板箱\旧衣服\易拉罐\"]
list2=[\"胶片\消毒水\纽扣电池\水银温度计\过期药水\泡沫塑料\"] list3=[\"动物内脏\菜叶菜梗\过期食品\香蕉皮\果壳\"] 根据现有列表,完成以下问题:
(1)写出从列表list3中取出“过期食品”的表达式:
___________________________________________________________________________ (2)写出从list1中截取[\"旧书\金属\纸板箱\"]这一段的表达式:
___________________________________________________________________________ (3)现又发现一个新的列表如下:list4=[\"过期化妆品\过期药品\杀虫剂\"],经 过判断,里面存放的为有害垃圾,如何将该列表中的元素添加到list2中,请写出相关的表达式: __________________________________________________________________________ (4)小明在路上捡到了一个塑料瓶,判断为可回收垃圾,写出相关表达式,将塑料瓶添加到列表list1中:
__________________________________________________________________________ 2.程序编写
求1+22+32+……+1002的结果 _______________________________ _______________________________ _______________________________ _______________________________ input(“运行完毕,请按回车键退出...”) 3.阅读程序。 for i in range(1,10): for j in range(1,i+1):
print(\"%d X %d=%2d\"%(j,i,j*i),end=\" \") print()
(1)在第一行程序中,变量i的数据范围为_____到____。 (2)在第二行的程序中,变量j的数据范围为_____到____。
(3)如果“%d”表示十进制数,那么%2d则表示____ 位宽的十进制数。
(4)第三行程序改为print(\"%d X %d=%2d\"%(i,j,i*j),end=\" \"),则本题的输出应该是_____。
(5)如果最后一行的print()表示换行,那么end=””的功能是_______ 。
4.编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。
5.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。 * * * * * * * * * *
6.编写程序,找到并输出100以内的素数。 7.分析完善程序 某市出租车收费标准如下:
(1)3公里内(含3公里),收费8元
(2)超过3公里但未超过6公里部分,按1.5元/公里收费 (3)超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元? [算法分析]
假设总费用为p,则可以分段计算 p=8 ‘(s≤3)
p=1.5*(s-3)+8 ‘(36) [参考代码] a=float(input(“s=”)) if s <= 3 : p= 8 if
p=1.5*(s-3)+8 if s > 6 :
p=2.25*(s-6)+1.5*3+8 print( p)
根据上述回答如下问题:
(1)本题采用的算法是________(填:解析法/枚举法/排序法/递归法)。 (2)程序代码中空白处应填写的条件是_______(填: A/B/C/D)。 A.33 and s<6 D.s>3 Or s<=6
8.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:
今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。凡百钱,买鸡百只。问鸡翁、母、雏各几何?这个问题就是著名的“百钱买百鸡问题”。即:现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。问公鸡、母鸡和小鸡各几何?
(问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 for g in range(1,20): for m in _______: for x in range(3,98,3):
if _________ and __________ ==100: print(\"公鸡:\母鸡:\小鸡:\
9.哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。 import math def ss(n): Flag=True i=2
while i <= int(math.sqrt(n))and Flag: if _____________ Flag = False _____________ return Flag
n=int(input(“输入一个大于2的偶数”)) for i in rang(2,n//2+1): if____________
print(str(n)+\"=\"+str(i)+\"+\"+str(n-i)) 如果输入“8”则结果显示_____
10.编写程序,找到并输出100以内的偶数个数。 11.求100以内素数。
12.编写一个程序,实现九九乘法口诀表。
13.操作说明:编写一个程序实现以下功能,将程序以“Y:/3/3.py”作为文件名保存。 题目:设计100以内的数中能同时被3或5整除的个数。
14.冠军在A、B、C、D四位同学中。A说:“不是我”,B说:“是C”,C说:“是D”, D说:“C说的不对”,已知四人中有一人说了假话。判断出到底谁是冠军。 请在空格处填写正确的代码,使程序完善。 champion=['A','B','C','D'] #设置选手列表 for i in__________: #循环读取选手编号
cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手 if cond== _____: #说真话是否是3人 print(\"冠军是:\输出冠军
input(\"运行完毕,请按回车键退出...\") 15.完善代码并保存。
实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[]
for i in range(0,________): x=float(input(\"请输入一个数\")) cj.append(________) print(max(cj), min(________)) input(\"运行完毕,请按回车键退出...\")
16.小明用Python语言写了一个货币兑换程序如下:
(1)参数currency指:____________。
(2)该程序用了哪一种算法结构:_____________。
(3)输出结果为“50$= 325.25人民币”。则代码应该如何编写:____________。 17.有如下程序段: sum=0
for i in range(1,20,3) : sum+=i print(“sum=”,sum)
(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。 (2)该程序执行后,输出的结果为:____________________。
18.现在有一个程序用来解决以下问题:如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢? 请将下列程序补充完整。 tc=1020 c=0
while ______________ : tc=tc-(tc/2+2)
_____________ print(c)
19.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。下面的程序能实现上述的功能,请将缺失的代码补充完整。
total= every_year=20000 year=1
while __________________ : every_year + = ____________ total + = every_year year + = 1 print(year)
20.求解a到b内(包含a和b)所有的质数,并对每个质数的每一位数字求和。请完善程序。程序如下: import math def IsPrime(i): if i==1: return False
for j in range(2,int(math.sqrt(i))+1): if____: return False return True
a=int(input(\"请输入a:\")) b=int(input(\"请输入b:\")) summ=0
for i in range(a,b+1): if IsPrime(i): ________ while t>0: summ=summ+t%10 _________
print(\"数字和为:\
21.密码强度检测。编写python程序,实现如下功能:输入要检测的密码,输出密码强度结果。密码字符分为数字字符、字母和其他符号三类。密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!”。若密码位数在8位及以上,则进行强度检测:若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同的三类字符,则密码强度为“强”。
(1)若输入“12abcd5!”,则输出结果为_________(选填,选字母:A.密码位数不能少于8位,请重新输入! / B.弱 / C.中等 / D.强) (2)实现上述功能的程序如下,请在划线处填入合适的代码。
password=input(“请输入要检测的密码:”) ①_______________ if n<8:
print(“密码位数不能少于8位,请重新输入!”) else: n1=0 n2=0 n3=0
for i in range(0,n,1): ②_______
if “0”<=ch<=“9”: n1=1
elif “a”<=ch<=“z” or “A”<=ch<=“Z”: n2=1 else: n3=1 ③_____ if x==3: print(“强”) elif x==2: print(“中等”) else:
print(“弱”)
22.模拟一个简单计算器,实现如下功能:输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”。Python程序实现如下,在划线处填入合适的代码。 a=int(input(\"请输入第一个数: \")) fh=input (\"请输入运算符: \") b=int(input(\"请输入第二个数: \")) flag=True s= ____ if fh in s: if fh==\"+\": c=a+b elif fh==\"-\": c=a-b elif fh==\"*\": c=a*b
else: if ____
print(\"除数不能为0! \") flag=False else: c=a/b if flag==True:
print(\"运算的结果为: \"+____) else:
print (\"运算符不正确\")
23.某餐馆近期推出“消费1000元及以上享受8折优惠,1000元以下享受每满100减15优惠”的活动。以下Python程序段实现了生成顾客消费清单的功能,请补全①②③处代码。
def gs(n): #字符串长度统一 if len(n)>=5:
n=_____ #取字符串的前5个字符 else:
n=n+\" \"*(5-len(n)) return n
r=1000;x=100;y=15;z=0.8 #从系统中分别获取消费额度、满和减以及打折的数值 dis=[\"红烧排骨\香炸刀鱼\虾仁\菜心\米饭\"] #某顾客所点菜品名称 num=[1,1,1,1,3] #某顾客所点菜品数量 mon=[46,45,68,16,1] #某顾客所点菜品单价 print(\"菜品名称\数量\小计\") _____
for i in range(len(dis)):
print(gs(dis[i]),num[i],\" \ s=s+num[i]*mon[i] if s>=r: total=s*z else: ______
print(\"消费合计:\ print(\"应收现金:\
24.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。使用 Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2
图1
图2
实现上述功能的 Python程序如下: import pandas as pd import itertools
#读数据到pandas的 DataFrame结构中
df=________ (”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’) km=[‘物理’ ,‘化学’ ,‘生物’ ,‘政治’ ,‘历史’ ,‘地理’ ,‘技术’ ]
#按学校分组计数
sc=df.groupby(‘___________ ’ ,as_index=False).count() #对分组计数结果进行合计,合计结果转换为 DF结构并转置为行 df_sum=pd.DataFrame(data=sc.sum()).T df_sum[‘学校代码’]=‘合计’ #增加"合计"行 result=sc.append(df_sum)
#百分比计算 df_percent=df_sum
df_percent[‘学校代码’]=‘比例’ for k in km:
per=df_percent.at[0,k]/zrs df_percent[k]=per #增加"百分比"行
result=result.append(df_percent) #删除"姓名"列 result=______________
#修改"学生编号"为"总人数"
result=result.rename(columns={‘学生编号’:‘总人数’}) #保存结果,创建 Excel文件.生成的 Excel文件 result.to_excel("学校人数统计.xlsx") (1)请在划线处填入合适的代码:
(2)加框处语句的作用是__________________
25.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。 [问题求解]设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。 print (\"三位数之内的水仙花是:\") for x in___(100,1000): b=x//100 s=(x//10)___ g=___
If x=(b**3 +s**3+g**3): print(___)
26.阅读程序。分析以下Python程序并回答问题。 who='我的' action='是' destination='镜像世界' number='153' code='通行密码'
print( who+destination+code+action+str(number))
(1)变量who的数据类型_______________。 (2)类似number的数据类型______________ 。 (3)print语句输出的结果是______________。 (4)str(number)的作用是_________。 (5)“+”在程序中的作用是____________。
27.编写Python程序实现如下功能:输入年月日,输入格式如“2021-06-21”,年月日之间用“-”分隔。判断这一天是这一年的第几天。以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的第几天。特殊情况,当输入的年份是闰年时,2月份有29天。闰年的判断方式如下: I、能被4整除,但不能被100整除; II、能被400整除;
(1)“2020-05-20”这一天是这一年的第_________天。 (2)编写Python代码如下,在划线处填入正确的代码 _________________ _________________ _________________
(3)加框处的代码有误,请改正。 改正:_________________
mon=[31, 28, 31, 30, 31, 30,31, 31, 30, 31, 30,31] #mon 中存储1-12每个月的天数 s=input(\"请输入年月日: \") 'month=int(s[5:7]) ① sum=0
for i in range( ② ): sum+=mon[i] sum+=day if
isleap=True else: isleap=False if ③ sum+=1
:
print(\"这一天是当年的第\" +str (sum)+''天'')
28.(项目情境)一元二次方程ax2+bx+c=0(a≠0),当b2-4ac≥0,方程有两个不同的实数根,当b2-4ac<0时,方程无实数根。
(问题求解)下面的python程序实现的功能是判断方程是否有实数根。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。 import math
a=int(input(\"请输入a的值:\")) b=int(input(\"请输入b的值:\")) c=int(input(\"请输入c的值:\"))
d=_____ #将表达式b2-4ac的值赋给变量d if ____
print(\"x1=\输出方程的其中一个实数根 print(\"x2=\(_________) #输出方程的另一个实数根 else:
_________ #输出“方程无实数根”
29.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。
30.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。 代码如下:
n=int(input(\"请输入一个十进制数:\")) result=[] while n>0: result.append( ① ) n= ② result.reverse() for i in result: print(i,end=”)
(1)程序代码中①处正确的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2
(2)程序代码中②处可能的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.list3[2] list1[1:4] list2=list2+list4 或 list2.extend(list4) list1=list1+[“塑料瓶”] 或者 list1.append(“塑料瓶”)
【详解】
本题主要考查Python列表数据类型。①“过期食品”在列表list3索引2,故从列表list3中取出“过期食品”的表达式:list3[2]。②\"旧书\金属\纸板箱\"在列表list1索引1~3,从list1中截取[\"旧书\金属\纸板箱\"]这一段的表达式:list1[1:4](不包括4)。③将该列表中的元素添加到list2中,表达式是list2=list2+list4 或 list2.extend(list4)。(extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表))。④将塑料瓶添加到列表list1中:list1=list1+[“塑料瓶”] 或者 list1.append(“塑料瓶”)(append字符追加函数)。
2.total=0 #变量可任选(符合规则) for i in range(1,101): total=total+i*i #total=total+i**2 print(total) 【详解】
本题主要考查Python程序的编写。①变量total用来统计最终的计算结果,其初始值为0,故填total=0 #变量可任选(符合规则)。②求1+22+32+……+1002的结果,用for循环结构,变量i的范围是从1到100,故填for i in range(1,101):。③计算语句是total=total+i*i #total=total+i**2。④最后用print()函数输出计算结果total,故填print(total)。
3.9 1 i 2 末尾不换行,添加
空格 【详解】
本题主要考查Python程序的执行与调试。(1)在第一行程序中(for i in range(1,10):),变量i的数据范围为1到9。(2)同理,在第二行的程序中(for j in range(1,i+1):),变量j的数据范围为1到i。(3)如果“%d”表示十进制数,那么%nd则表示n位宽的十进制数,%2d则表示2位宽的十进制数。(4)第三行程序改为print(\"%d X %d=%2d\"%(i,j,i*j),end=\" \"),则本题的输出应该是
,i与j的位置进行了交
换,如1X2=2变为2X1=2。(5)如果最后一行的print()表示换行,那么end=””的功能是末尾不换行,添加空格。
4.N=int(input(\"请输入一个数\")) for i in range(1,N+1): if(i%7==0 or i/10==7): print(i,end=\" \") 【详解】
本题考查Python语言编程解决实际问题。本题要找到能被7整除或者十位是7的数,并且这两个条件是或的关系,其关键代码为i%7==0 or i/10==7。程序运行代码详见下图:
5.layer = int(input(\"请输入需要打印的层数:\")) for x in range(1,layer+1): for y in range (1,x+1): print(\"*\ print(\"\")
【详解】
本题主要考查Python循环结构。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。range可以生成一个整数列表,列表范围根据接收的layer来确定。外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】 6.参考答案1: for i in range(2,101):
j=2 while j<=i: if i%j==0: break j+=1 if j for i in range(2,101): for j in range(2,i): if(i%j==0): break else: print(i) 【详解】 本题考查是Python语言编程解决问题。break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。答案中代码的实现过程见下图: 参考答案1: 参考答案2: 7.解析法或解析 A 【详解】 本题主要考查Python程序的执行与调试。①由算法分析可知,本题采用的算法是解析法或解析。②3公里内(含3公里),收费8元;超过3公里但未超过6公里部分,按1.5元/公里收费;超过6公里部分,按2.25元/公里收费,故此处填3 9.n%i==0: i+=1 ss(i) and ss(n-i): 8=3+5 【详解】 本题主要考查Python程序的执行与调试。①函数ss(n)用来判断n是否为质数,若是则返回True,否则返回False,此处是通过while循环逐个判断n是不是能整除i,故填n%i==0:。②若不满足if条件,则i递增,继续循环判断,故填i+=1。③此处判断i与n-i是否都是质数,若是,则表明该偶数可以写成两个质数之和,并输出,故填ss(i) and ss(n-i):。④如果输入“8”则结果显示8=3+5。 10.c=0 for i in range(1,101): if i%2==0: c=c+1 print(c) 【详解】 本题主要考查程序设计。题干要求可通过Python程序设计实现,通过for循环以及if判断条件可统计出100以内的偶数个数,具体代码如下: c=0 for i in range(1,101): if i%2==0: c=c+1 print(c) 11.for i in range(1,100): if i > 1: for j in range(2,i): if (i % j) == 0: break else: print(i) 【详解】 本题主要考查Python程序设计。可以通过for循环找出100以内的素数,用i依次整数2~i-1,如果能整除表明i不是素数,否则i为质数,具体代码如下: for i in range(1,100): if i > 1: for j in range(2,i): if (i % j) == 0: break else: print(i) 12.for i in range(1,10): for j in range(1,i+1): print(str(j)+\"*\"+str(i)+\"=\"+str(i*j),end=\" \") print(\"\") 【详解】 本题主要考查Python程序的执行。九九乘法口诀表可以通过嵌套for循环实现,内层循环完一次,执行print(\"\")换行,具体代码如下: for i in range(1,10): for j in range(1,i+1): print(str(j)+\"*\"+str(i)+\"=\"+str(i*j),end=\" \") print(\"\") 13.c=0 print(\"能同时被3或5整除的数是:\ for i in range(1,101): if i%3==0 and i%5==0: c+=1 print(i,end=\" \") print(\"\") print(\"能同时被3或5整除的个数是:\"+str(c)) 【详解】 本题主要考查Python程序设计。设计100以内的数中能同时被3或5整除的个数,使用for循环变量i的范围是从1~99,用变量c统计能同时被3或5整除的个数,如果满足if判断条件,则变量c递增,循环完输出c的值,具体代码及运行结果如下: 14.champion 3 i 【详解】 本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为冠军,故此处填i。 15.x cj 【详解】 本题主要考查Python程序执行与调试。①从键盘输入10个学生的测试成绩,range(a,b)的范围是从a~b,但不包括b,故第一空填10。②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。③求最大值用max函数,求最小值用min函数,故第三空填cj。 16.形参 分支结构(选择结构) if条件中的return语句改为return print(money,\"$=\人民币\"),其他elif语句类似 【详解】 本题主要考查Python程序执行与调试。①分析代码可知,参数currency指:形参。②由 代码可知,该程序用了条件分支结构。③若输出结果是50$= 325.25人民币,则需将if条件中的return语句改为return print(money,\"$=\人民币\"),其他elif语句类似。 17.初值为1 终值为:20 步长为:3 sum=70 【详解】 本题主要考查Python循环结构。由代码for i in range(1,20,3) ,可知循环变量i的初值为1,终值为20,步长为3。该程序执行后,输出的结果为sum=sum+i=0+1+4+7+10+13+16+19=70。 18.tc>0 c=c+1 或者c+=1 【详解】 本题主要考查Python程序执行与调试。①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1 或者c+=1。 19.total<60000 every_year*0.68 【详解】 本题主要考查Python程序执行与调试。①由题干可知,while循环条件是总销量total小于60000,故第一空填total<60000。②平均每年的销量比上一年增加68%,即every_year + =every_year*0.68,故第二空填every_year*0.68。 20.i%j==0 t=i t=t//10 【详解】 本题主要考查Python程序执行与调试。①此处是处理从2开始到i开方加1,若能整除i则表明i不是素数,否则直到循环结束,表明i是素数,故此处填i%j==0。②若i是素数,则将变量i赋给变量t,并通过while循环将t的每一位取出来并加到summ中,故此处填t=i。③同理此处取出个位数后,更新t的值继续循环,故此处填t=t//10。 21.D n=len(password) ch=password[i] x=n1+n2+n3 【详解】 本题主要考查Python程序的执行与调试。①“12abcd5!”含有三类字符,则输出结果为强,选D选项。②此处取密码的长度,将其赋给变量n,len()是返回字符串的长度,故填n=len(password)。③ch是取密码的每一位进行判断,故此处填ch=password[i]。④当出现数字时n1=1,当出现字母时n2=1,当出现其他字符时n3=1,x用来统计有几类字符,故此处填x=n1+n2+n3。 22.\"+-*/\" b==0 str(c) 【详解】 本题主要考查Python程序执行与调试。①变量fh用来接收运算符,由代码“if fh in s”可知,变量s保存加减乘除(+-*/)四种运算符,故此处填\"+-*/\"。②变量b保存第二个数,当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”,此处是处理b=0的情况,故填b==0。③变量c保存运算结果,此处输出 c的结果,故填str(c)。 23.n[0:5] s=0 total=s-s//x*y 【详解】 本题主要考查Python程序的执行与调试。①此处通过条件分支结构取字符串n的前5个字符,当 len(n)>=5时,取n= n[0:5],即索引为0、1、2、3、4,故填n[0:5]。②用变量s统计消费合计,初值为0,故填s=0。③此处else部分处理1000元以下享受每满100减15优惠。应付金额用total统计,变量r保存消费额度,x和y分别是满和减,变量s是消费合计,故填total=s-s//x*y。 24.pd.read_ csv 学校代码 result.drop (‘姓名’ ,axis=1) 将总人数存储到变量zrs中 【详解】 本题主要考查Python程序的执行与调试。①将csv文件读入并转化为数据框形式,故填pd.read_ csv。②groupby函数主要的作用是进行数据的分组,此处按学校分组计数,故填学校代码。③此处删除"姓名"列,可以使用drop()函数来删除,故填result.drop (‘姓名’ ,axis=1)。④zrs=len(df.index),该语句是统计df内有多少个元素,即将总人数存储到变量zrs中。 25.range %10 x% 10或x-b*100-s*10或其它同等答案 x 【详解】 本题考查的是Python程序设计。水仙花数是指一个三位数,故使用range函数遍历100~999;s存放的是十位数,故可以选对x取整后再除以10求余,故第二空应填%10(求余符号%);g是存放个位,直接除以10求余,或减去前面整百和整十的数,故第三空为:x% 10或x-b*100-s*10或其它同等答案;如果找到满足条件的数,则输出,故第四空为:x。 26.字符串 字符串 我的镜像世界通行密码是153 转换为字符串 连接字符串 【详解】 本题主要考查Python程序的执行与调试。①who='我的',可知变量who的数据类型字符串。②number='153' ,类似number的数据类型也为字符串。 ③print( who+destination+code+action+str(number)),是将变量字符串拼接后输出,故print语句输出的结果是我的镜像世界通行密码是153。④str(number)的作用是转换为字符串。⑤“+”在程序中的作用是连接字符串。 27.day=int(s[8:])或day=int(s[-2:]) 0,month-1 isleap and month>2 year%4==0 and year%100!=0 or year%400==0 【详解】 本题主要考查Python程序的执行与调试。①2020年是闰年,2月是29天,故“2020-05-20”这一天是这一年的第31+29+31+30+20=141天。②变量s是字符串型,下标从0开始,此处是将输入日期中的天取出来放到变量day中,可以使用切片操作:从左边开始截取,也可以从右边截取,故此处填day=int(s[8:])或day=int(s[-2:])。③通过循环将前month-1个月的天数加起来,故变量i的范围是0到month-1,故填0,month-1。④变量isleap标记是不是闰年,如果isleap值为真且month>2,则sum需要递增1,故填isleap and month>2。⑤由题干闰年判断条件,可知加框处应改为year%4==0 and year%100!=0 or year%400==0。 28.b*b-4*a*c或b**2-4*a*c d>=0 -b-math.sqrt(d))/(2*a) print(\"方程无实数根\") 【详解】 本题主要考查Python程序的调试。①此处将表达式b2-4ac的值赋给变量d,故填b*b-4*a*c或b**2-4*a*c。②当b2-4ac≥0,方程有两个不同的实数根,故此处if判断条件是d>=0。③当b2-4ac≥0时,方程的两个根分别为x1=(-b+math.sqrt(d))/(2*a),x2=(-b-math.sqrt(d))/(2*a),故此处填-b-math.sqrt(d))/(2*a)。④else部分,即x<0时,输出“方程无实数根”,故此处填print(\"方程无实数根\")。 29.price=int(input(\"请输入消费额(整数):\")) if price < 200: price=price-price*0.1 else: price=price-price*0.2 print(\"折扣后的应付金额是:\ 【详解】 本题主要考查Python程序的执行与调试。用键盘通过输入函数input输入消费额,并用int函数将其转换为整数类型,通过if条件分支结构,判断如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣,最后用print输出函数输出折扣后的应付金额。 30.A C 【详解】 本题主要考查Python程序设计。①此处将n取余2,用append函数将值追加到列表result中,故此处填n%2,选A选项。②当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n//2,选C选项。 因篇幅问题不能全部显示,请点此查看更多更全内容本题考查的是算法中的经典问题。百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。