电子学会 2026.06 Python 真题参考答案(1-6级)
电子学会 2026.06 Python 1级
单选题答案
判断题答案
编程题
第 36 题:无人车障碍赛分组计算 编程社团组织同学进行无人车障碍赛,一共有 7 台无人车设备循环使用,每组只能使用 1 台无人车,因...
# 1. 输入社团总人数
total=int(input("请输入社团总人数:"))
# 2. 计算分组:7台无人车 = 7个小组,每组人数相等
group_size=total//7# 每组人数 = 总人数 // 7(整除)
reserve=total%7# 候补人数 = 总人数 % 7(取余)
# 3. 按指定格式输出结果
print(f"每组有{group_size}个同学,剩余候补有{reserve}人。")
解析:(1)有输入语句;(1分)(2)有输出语句;(1分)(3)有计算语句,不管计算是否正确;(2分)(4)计算正确,错一个扣一分;(2分)(5)有类型转换语句;(2分)(6)程序输入输出格式符合题目要求,如果部分符合则扣1分。(2分)
第 37 题:为了迎接六一儿童节班级创意画展,请你使用 Python 的神奇画笔,画一朵迎着阳光绽放的小花朵,作为班级展示的作品。请你...
importturtle
turtle.pensize(3)
turtle.pencolor("pink")
turtle.circle(60)
turtle.penup()
turtle.pencolor("yellow")
turtle.goto(0,60)
turtle.pendown()
turtle.dot(60)
turtle.pencolor("green")
turtle.right(90)
turtle.forward(120)
turtle.hideturtle()
解析:(1)正确导入turtle库文件;(2分)(2)隐藏画笔命令正确;(2分)(3)正确设置画笔粗细;(2分)(4)花朵边缘颜色、花心颜色、花茎颜色设置正确;(3分,每个1分)(5)使用了画圆函数circle();不管最后画的圆是否符合题意;(2分)(6)花朵边缘圆的大小设置正确,画出一个半径为60(或者30)的圆;(2分)(7)使用了circle()或者dot()函数来绘制中间的实心点,无论是否符合题意;(2分)(8)花朵的花心大小设置正确,画出一个半径为30的实心圆;(2分)(9)花茎的起点坐标设置正确;(2分)(10)花茎的长度设置正确。(1分)
电子学会 2026.06 Python 2级
单选题答案
判断题答案
编程题
第 36 题:学校运动会上,60 米跑决赛结束,8 名选手的成绩已记录(单位:秒)。体育老师设定标准:跑进 9 秒以内(含 9 秒)的...
results= [9.2, 8.5, 10.1, 8.8, 9.5, 7.9, 10.5, 8.3]
excellent=0
training=0
forrinresults:
ifr<=9:
excellent+=1
else:
training+=1
print(f"优秀:{excellent}人,加强训练:{training}人")
解析:(1)正确使用列表存储成绩数据;(2分)(2)初始化两个计数器;(2分,每个1分)(3)使用for循环遍历成绩列表;(2分)(4)使用if-else条件判断,不管正确与否;(2分)(5)条件语句判断正确,计算结果符合题意;(2分)(6)有累加计数,不管结果是否正确;(2分,每个1分)(7)累加计数正确;(2分,每个1分)(8)输出格式正确。(1分)
第 37 题:题目背景:中国古诗词是中华文化的瑰宝。唐代诗人骆宾王七岁时写了《咏鹅》这首诗,流传千古!小华也想用 Python 来分析...
poem='鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。'
c=input('请输入要统计的字符:')
count=0
forchinpoem:
ifch==c:
count=count+1
print('字符'+c+'在诗中出现了'+str(count) +'次。')
解析:(1)有正确的 input() 输入语句,提示语合理(如"请输入要查找的字符:"),并能够将用户输入的字符内容保存到变量中;(3分;每项一分)(2)在程序中正确定义了古诗字符串的变量名,并且赋值正确;(2分,如果直接使用字符串进行遍历,该2分按照完成处理)(3)使用了for循环,不管是否正确;(2分)(4)有正确使用 for 循环遍历字符串中的每一个字符,循环体结构完整;(1分)(5)使用了if语句,不管是否正确;(2分)(6)有正确使用 if 语句判断当前遍历到的字符是否与输入字符匹配相等;(1分)(7)有计数器变量在字符串匹配时累加记录次数,初始值设置合理;(2分)(8)输出结果正确,包含用户查询的字符名和该字符在古诗中的出现次数,格式与样例要求基本一致。(2分,如果部分正确,则扣1分)
电子学会 2026.06 Python 3级
单选题答案
判断题答案
编程题
第 36 题:统计分数 李明要读取分数文件(fs.csv)中的数据,编写程序计算各科平均分,请补全代码。 
row=csv.reader(f,delimiter=',')
next(row)
forrinrow:
yw+=float(r[0])
sx+=float(r[1])
yy+=float(r[2])
n+=1
print('语文平均成绩是',round(yw/n,2))
print('数学平均成绩是',round(sx/n,2))
print('英语平均成绩是',round(yy/n,2))
解析:(1)0(或等效答案);(1分)(2)csv.reader(或等效答案);(1分)(3)row(或等效答案);(1分)(4)1(或等效答案)。(1分)
第 37 题:售票系统 某电影院的售票系统会把已经卖出去的座位号码保存在一个列表中,请完成功能,在有人买票时,告知客户这个座位是否已经...
seat= [2,5,8,10,22,33,42,46,58]
target_seat=int(input("请输入你要查找的座位号:"))
low=0
high=len(seat)-1
result=-1
whilelow<=high:
mid= (low+high)//2
ifseat[mid] ==target_seat:
result=mid
break
elifseat[mid] <target_seat:
low=mid+1
else:
high=mid-1
ifresult==-1:
print('该座位尚未售出,请尽快付款!')
else:
print('该座位已售出,请重新选择其他座位!')
解析:(1)len(seat) - 1(或等效答案);(4分)(2)low <= high(或等效答案);(3分)(3)(low + high) // 2(或等效答案);(3分)(4)mid + 1(或等效答案);(3分)(5)mid - 1(或等效答案)。(3分)
第 38 题:枚举算法 用枚举算法输出满足以下三个条件的整数,请你补全代码。 条件 1:两位整数 条件 2:偶数 条件 3:十位数字和...
foriinrange(100):
ifi>9andi%2==0and (i//10)==(i%10):
print(i, end=" ")
解析:(1)i>9(或等效答案);(2分)(2)i%2==0(或等效答案);(2分)(3)(i//10)==(i%10)(或等效答案);(3分)(4)end=" "(或等效答案)。(3分)
电子学会 2026.06 Python 4级
单选题答案
判断题答案
编程题
第 36 题:利用分治算法,求一个非空整数列表中的最小值。补全以下代码。 算法说明:将列表不断二分,直到子列表长度小于等于 2,直接比...
deffind_min(nums):
n=len(nums)
ifn==1:
returnnums[0]
elifn==2:
returnnums[0] ifnums[0] <nums[1] elsenums[1]
mid=n//2
left_part=nums[:mid]
right_part=nums[mid:]
left_min=find_min(left_part)
right_min=find_min(right_part)
returnleft_minifleft_min<right_minelseright_min
test_list= [34,12,5,78,3,56,91,23]
print('列表中的最小值是:', find_min(test_list))
解析:评分标准:(1)nums[0](或等效答案);(2分)(2)nums[0] if nums[0] < nums[1] else nums[1] (或min(nums[0], nums[1])(或等效答案);(3分)(3)left_min if left_min < right_min else right_min (或min(left_min, right_min))(或等效答案)。(3分)解析: 本题展示了分治算法的经典框架:分解、解决、合并。当列表长度为1时,最小值就是它自己;长度为2时,比较两个元素;对于更长的列表,分成两半递归求最小值,最后合并时比较两个子列表的最小值即可。
第 37 题:二分查找——小明在学习二分查找后,编写程序实现查找 key 所遍历的过程。如有原始数据是 12, 18, 27, 31,...
defdfsearch(data,key):
p= []
flag=False
i,j=0,len(data) -1
whilei<=j:
m= (i+j)//2
p.append(data[m])
ifdata[m]==key:
flag=True
returnp,flag
elifdata[m] >key:
j=m-1
else:
i=m+1
returnp,flag
data= [12,18,27,31,46,68,75,80,90,92]
key=int(input())
rst,flag=dfsearch(data,key)
ifflag:
print('原始数据是',data,'待查找的数据是',key,'\n找到,查找的数分别是:')
foriinrst:
print(i,end=',')
else:
print('原始数据是',data,'待查找的数据是',key,'\n没有找到,查找的数分别是:')
foriinrst:
print(i,end=',')
解析:(1)data[m] == key (或等效答案);(3分)(2)m - 1 (或等效答案);(3分)(3)m+1(或等效答案);(3分)(4)dfsearch(data,key) (或等效答案)。(3分)
第 38 题:打印图案,由"*"和"-"按规律构成。当行数等于 4 时,图案如下。用自定义函数实现图案输出,请在序号处填写正确的代码,...
deftuxing(n):
foriinrange(1, n+1):
print("-"* (n-i+1) +"*"*i)
m=int(input('请输入行数:'))
tuxing(m)
解析:(1)n+1(或等效答案);(2分)(2)(n-i+1)(或等效答案);(2分)(3)i(或等效答案);(3分)(4)tuxing(m)(或等效答案)。(3分)
电子学会 2026.06 Python 5级
单选题答案
判断题答案
编程题
第 36 题:查找与替换 用 Python 编写一个字符串查找替换的程序,功能如下:输入原文字符串(text)、要查找的字符串(key...
text=input("输入原文字符串:")
key=input("输入要查找的字符串:")
rs=input("输入替换字符串:")
result=""
count=0
i=0
n=len(text)
whilei<n-len(key)+1:
s=text[i:i+len(key)]
ifkey==s:
result+=rs
count+=1
i+=len(key)
else:
result+=text[i]
i+=1
result+=text[i:]
ifcount>0:
print("替换的次数:",count)
print("替换后的结果:",result)
else:
print("要查找的内容不存在")解析:(1)i:i+len(key) (或等效答案);(2分)(2)rs(或等效答案);(2分)(3)result+=text[i:] (或等效答案);(3分)(4)count>0: 写成“count>0”(或等效答案)。(3分)(漏写了冒号给2分)
第 37 题:阅读积分分享 社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出...
n=int(input())
name=[];score={}
foriinrange(1,n+1):
a,b=input().split(' ',1)
score[a]=int(b)
foriinrange(1,n+1):
s=input()
v,x=map(int, input().split())
if (x>0):
w=v//x
score[s]-=w*x
forjinrange(1,x+1):
t=input()
score[t]+=w
foriinscore.keys():
print(i, score.get(i))
解析:(1){}(或等效答案);(2分)(2)v//x(或等效答案);(2分)(3)w(或等效答案);(3分)(4)score.get(i)(或等效答案)。(3分)
第 38 题:统计单词 统计英文文本中出现的不同单词个数:输入一段英文文本,要求单词和单词之间用 1 个空格或标点符号隔开,文末以标点...
text=input("请输入英文文本:")
lst=[]
s=""
defjudge(st):
ifstinlst:
returnFalse
else:
returnTrue
foriinrange(len(text)):
c=text[i]
if"a"<=c<="z"or"A"<=c<="Z":
s=s+c
else:
ifjudge(s):
lst.append(s)
s=""
print("出现的不同单词个数为:", len(lst))解析:(1)st in lst(或等效答案);(2分)(2)c=text[i](或等效答案);(2分)(3)s=s+c(或等效答案);(3分)(4)len(lst)(或等效答案)。(3分)
电子学会 2026.06 Python 6级
单选题答案
判断题答案
编程题
第 36 题:成绩统计 (1)准备工作:某中学三年级语文模拟考试,班主任王老师最近事情比较多,他用 Python 编写了一段代码实现本...
import csv
with open("/data/cj.csv") as f:
rows=list(csv.reader(f))
s=0
c=0
pj=0
for row in rows[1:]:
s=s+int(row[2])
c=c+1
pj=s/c
print(round(pj,2))
for row in rows[1:]:
if(int(row[2])>=pj):
print(row[0:3])
解析:(1)csv (或等效答案);(1分)(2)cj.csv(或等效答案);(2分)(3)list(csv.reader(f))(或等效答案);(4分)(4)round(pj,2)(或等效答案);(2分)(5)int(row[2])>=pj(或等效答案)。(1分)
第 37 题:学生信息处理 定义一个名为"Student"的类,包含以下属性:姓名、学号、年龄和成绩。要求实现以下功能: (1)定义一...
class Student:
def __init__(self, name, student_id, age, score):
self.name = name
self.student_id=student_id
self.age = age
self.score = score
def get_name(self):
return self.name
def get_age(self):
return self.age
def get_score(self):
return self.score
def set_score(self, new_score):
self.score=new_score
def judege(self):
if self.score>=60:
print('合格')
else:
print('不合格')
john = Student("John", "2023001", 18, 85)
john.judege()
解析:(1)self.student_id = student_id(或等效答案);(2分)(2)self.age(或等效答案);(2分)(3)self.score = new_score(或等效答案);(3分)(4)self.score>=60(或等效答案)。(3分)
第 38 题:记账系统 创建一个简单的个人支出记账系统,帮助自己监控和管理日常开支。拟使用 SQLite 数据库来存储支出记录,数据库...
import sqlite3
def create_expenses_table():
connection = sqlite3.connect('expenses.db')
cursor = connection.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS expenses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
category TEXT,
amount REAL
)
''')
connection.commit()
connection.close()
def add_expense(category, amount):
connection = sqlite3.connect('expenses.db')
cursor = connection.cursor()
cursor.execute("INSERT INTO expenses (category, amount) VALUES (?, ?)", (category, amount))
connection.commit()
connection.close()
def fetch_all_expenses():
connection = sqlite3.connect('expenses.db')
cursor = connection.cursor()
cursor.execute("SELECT * FROM expenses")
expenses_records = cursor.fetchall()
for record in expenses_records:
print(record)
connection.close()
create_expenses_table()
add_expense("Food", 25.5)
add_expense("Transport", 10.75)
fetch_all_expenses()
解析:(1)close (2分) 为了确保数据库连接被适当地关闭并释放资源,需要调用connection.close()方法;(2)category(2分) 在add_expense函数中,插入支出记录需要提供支出类别和金额作为SQL语句的参数。category变量代表支出的类别,应当在调用时作为第一个参数传递给SQL命令;(3)amount(3分)在add_expense函数中,amount变量代表了支出的金额,作为SQL命令的第二个参数。这用于将具体的花费金额插入数据库中;(4)fetchall(3分) 使用fetchall()方法来获取执行SELECT操作后,cursor对象中的所有结果。该方法返回一个列表,列表中每个元素都是一个代表表中一行的元组,其中包含了所有的记录。