文章目录
声明:例题均来源于网络,仅供学习参考,若涉侵权请联系删除
附下篇链接:
Python计算机二级编程题真题及考点总结【纯干货】(下篇).
相较于各类Python基础教程和二级经验分享类文章,个人认为如果只是想要考取计算机二级证书的话,最快且有效的方法应是在明晰考纲的前提下有针对性的进行学习,达到以最短时间考取证书的目的。
因此除真题外,本篇重点在于总结Python二级考试中的编程题(占60分)的考查内容及知识点总结,让Python小白能在一周内掌握绝大多数编程题的解题方法,顺利考取证书,为未来应聘岗位添砖加瓦!

在教育部考试中心每年发布的参考教材和计算机等级考试官网(最新考纲链接)上可以查到考查范围。顺便提一下考纲中的大部分内容都十分基础,可以给初学者用来入门Python,如果有小伙伴刚好想要入门这门语言的话,顺带考个证书会是个不错的选择~下面详细介绍一下考试题型和考试环境:
因篇幅限制,本文将先针对基本操作题进行总结与讲解,剩余的2道简单应用题和一道综合应用题将在下篇中进行详细介绍。例题均来源于网络某真题模拟软件(实践证明考试时确实遇到不少原题!!!),故相信本次总结也大概率能涉及大部分考试题目。
基本操作题这部分内容考查范围较广,基本涵盖了整个考纲当中各大章节的知识,需要一定的积累(刷题),一共3道题各5分,题目只需要考生补充部分代码即可,问题的描述如下:“考生文件夹存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:xxx问题”。
以下为摘自近10套真题试卷的题目及答案(题目仅供学习参考,请勿商用!):
// 考生文件初始代码
s = input("请输入一个字符串:")
print("{______}".format(s))
// 参考答案
s = input("请输入一个字符串:")
print("{:*^30}".format(s))
// 考生文件初始代码
a, b = 0, 1
while ______:
print(a, end=',')
a, b = ______
// 参考答案
a, b = 0, 1
while a <= 50:
print(a, end=',')
a, b = b, a+b
// 考生文件初始代码
import jieba
txt = input("请输入一段中文文本:")
______
for i in ls[::-1]:
______
// 参考答案
import jieba
txt = input("请输入一段中文文本:")
ls = jieba.lcut(txt)
for i in ls[::-1]:
print(i,end="")
// 考生文件初始代码
n = eval(input("请输入正整数:"))
print("{______}".format(n))
// 参考答案
n = eval(input("请输入正整数:"))
print("{0:@>30,}".format(n))
// 考生文件初始代码
a = [11,3,8]
b = eval(input()) #例如:[4,5,2]
______
for i in ______:
s += a[i]*b[i]
print(s)
// 参考答案
a = [11, 3, 8]
b = eval(input())
s = 0
for i in range(3):
s += a[i] * b[i]
print(s)
// 考生文件初始代码
import random
______
for i in range(______):
print(______, end=" ")
// 参考答案
import random
random.seed(255)
for i in range(5):
print(random.randint(1, 50), end=" ")
// 考生文件初始代码
s = eval(input("请输入一个数字:"))
ls = [0]
for i in range(65,91):
ls.append(chr(_____))
print("输出大写字母:{}".format(_____))
// 参考答案
s = eval(input("请输入一个数字:"))
ls = [0]
for i in range(65,91):
ls.append(chr(i))
print("输出大写字母:{}".format(ls[s]))
// 考生文件初始代码
s = input("请输入一个十进制数:")
num = _____
print("转换成二进制数是:{_____}".format(_____))
// 参考答案
s = input("请输入一个十进制数:")
num = int(s)
print("转换成二进制数是:{:b}".format(num))
// 考生文件初始代码
import _____
s = input("请输入一个中文字符串,包含标点符号:")
m =_____
print("中文词语数:{}".format(_____))
// 参考答案
import jieba
s = input("请输入一个中文字符串,包含标点符号:")
m = jieba.lcut(s)
print("中文词语数:{}".format(len(m)))
// 考生文件初始代码
lis = [2,8,3,6,5,3,8]
new_lis = _____
print(new_lis)
// 参考答案
lis = [2,8,3,6,5,3,8]
new_lis = list(set(lis))
print(new_lis)
// 考生文件初始代码
fruit = input('输入水果:')
lis = ['苹果','哈密瓜','橘子','猕猴桃','杨梅','西瓜']
if _____:
_____
else:
_____
// 参考答案
fruit = input('输入水果:')
lis = ['苹果','哈密瓜','橘子','猕猴桃','杨梅','西瓜']
if fruit in lis:
print(fruit + '在列表lis中')
else:
print(fruit + '不在列表lis中')
// 考生文件初始代码
def str_change(str) :
return _____
str = input("输入字符串:")
print(str_change(_____))
// 参考答案
def str_change(str) :
return str[::-1]
str = input("输入字符串:")
print(str_change(str))
// 考生文件初始代码
while _____:
s = input("请输入信息:")
if _____:
break
// 参考答案
while True:
s = input("请输入信息:")
if s == "y" or s == "Y":
break
// 考生文件初始代码
import calendar
year = _____(input("请输入年份:"))
table = _____(year)
print(table)
// 参考答案
import calendar
year = int(input("请输入年份:"))
table = calendar.calendar(year)
print(table)
// 考生文件初始代码
s = input("请输入绕口令:")
print(s._____("兵","将"))
// 参考答案
s = input("请输入绕口令:")
print(s.replace("兵","将"))
// 考生文件夹中的poem.txt
#Title
A Grain of Sand
#William Blake
To see a world in a grain of sand,
And a heaven in a wild flower,
Hold infinity in the palm of your hand,
And eternity in an hour.
// 考生文件初始代码
_____
result = []
for line in _____:
_____
if len(line) != 0 and line[0] != "#":
_____
result._____
for line in result:
print(line)
f.close()
// 参考答案
f = open("poem.txt","r")
result = []
for line in f.readlines():
line = line.strip()
if len(line) != 0 and line[0] != "#":
result.append(line)
result.sort()
for line in result:
print(line)
f.close()
// 考生文件初始代码
a = []
for i in range(8):
a.append([])
for j in range(8):
a[i].append(0)
for i in range(8):
a[i][0] = 1
_____
for i in range(2,8):
for j in range(1,i):
a[i][j] = _____
for i in range(8):
for j in range(i+1):
print("{:3d}".format(a[i][j]),end=" ")
print()
// 参考答案
a = []
for i in range(8):
a.append([])
for j in range(8):
a[i].append(0)
for i in range(8):
a[i][0] = 1
a[i][i] = 1
for i in range(2,8):
for j in range(1,i):
a[i][j] = a[i-1][j-1] + a[i-1][j]
for i in range(8):
for j in range(i+1):
print("{:3d}".format(a[i][j]),end=" ")
print()
// 考生文件初始代码
def proc(strings):
m = 0
lst = []
for i in range(len(strings)):
if len(strings[i]) _____ m:
m = len(strings[i])
for i in range(len(strings)):
if len(strings[i]) _____ m:
lst.append(strings[i])
return _____
strings = ['cad' ,'VB', 'Python', 'MATLAB', 'hello', 'world']
result = proc(strings)
print("the longest words are:")
for item in result:
print("{: >25}".format(item))
// 参考答案
def proc(strings):
m = 0
lst = []
for i in range(len(strings)):
if len(strings[i]) > m:
m = len(strings[i])
for i in range(len(strings)):
if len(strings[i]) == m:
lst.append(strings[i])
return lst
strings = ['cad' ,'VB', 'Python', 'MATLAB', 'hello', 'world']
result = proc(strings)
print("the longest words are:")
for item in result:
print("{: >25}".format(item))
// 考生文件初始代码
n = input('请输入一个正整数:')
for i in range(____________):
print('____________'.format(i, ____________))
// 参考答案
n = input('请输入一个正整数:')
for i in range(1,eval(n)+1):
print('{:0>2} {}'.format(i, '>'*i))
// 考生文件初始代码
ns = input("请输入一串数据:")
dnum,dchr = ____________
for i in ns:
if i.isnumeric():
dnum += ____________
elif i.isalpha():
dchr += ____________
else:
pass
print('数字个数:{},字母个数:{}'.format(____________))
// 参考答案
ns = input("请输入一串数据:")
dnum,dchr = 0,0
for i in ns:
if i.isnumeric():
dnum += 1
elif i.isalpha():
dchr += 1
else:
pass
print('数字个数:{},字母个数:{}'.format(dnum,dchr))
// 考生文件初始代码
std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{}, 你的考试成绩是: 英语{}, 数学{}, Python语言{}, 总成绩{}.特此通知."
for st in std:
cnt = ____________
for i in range(____________):
cnt += ____________
print(modl.format(st[0],st[1],st[2],st[3],cnt))
// 参考答案
std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{}, 你的考试成绩是: 英语{}, 数学{}, Python语言{}, 总成绩{}.特此通知."
for st in std:
cnt = 0
for i in range(1,4):
cnt += st[i]
print(modl.format(st[0],st[1],st[2],st[3],cnt))
// 考生文件初始代码
n = eval(input("请输入正整数:"))
print("{______}".format(n))
// 参考答案
n = eval(input("请输入正整数:"))
print("{:=^14}".format(n))
// 考生文件初始代码
a = [3,6,9]
b = eval(input()) #例如:[1,2,3]
j=1
for i in range(len(__(1)____)):
b._____(2)_____
j+= __(3)______
print(b)
// 参考答案
a = [3,6,9]
b = eval(input()) #例如:[1,2,3]
j=1
for i in range(len(a)):
b.insert(j,a[i])
j+= 2
print(b)
// 考生文件初始代码
import random
____________ # 此处可多行
s = 0 #
____________ # 此处可多行
print(s)
// 参考答案
import random
random.seed(100) # 此处可多行
s = 0 #
for i in range(3):
n = random.randint(1,9) #此处可多行
s += n**3
print(s)
刷题后进行适当的总结对巩固知识点具有十分重要的意义,本部分内容将对包括以上真题(基本操作题)在内的十余套真题进行总结,凝练出一些在考试当中出现频率极高的考点。划重点!!下图为个人总结的编程题考点脑图–基本操作题部分供各位小伙伴学习参考,下篇会继续针对性的补充目前尚未总结到的内容。
该部分总结了在编程题当中遇到了几乎所有输入输出操作的相关函数及其使用方法,建议小伙伴的查看的同时能够自己打开IDLE敲下代码,实际体会一下使用这些函数的具体效果,有助于巩固记忆~
相信只要是学过其他语言的小伙伴对程序控制结构都比较熟悉,掌握起来也相对较简单,因此这边不做过多介绍。另外数据类型是学习Python的重中之重,如果有小伙伴看到这对Python常见的数据类型(字符串、列表、字典等)还不清楚的,需要去自行补充一下相关知识点,可以参考这篇文章学习Python基础(3)—八种数据类型.。
下边两图仅针对小部分在基础编程题中出现的内容进行说明,下篇会针对这两个考点中一些比较常考的特殊知识点进行系统总结与补充~
这部分也是二级当中考频很高的知识点,在选择题和后面的编程题中都会经常涉及,下图仅仅针对部分在基础编程题中出现的内容进行部分总结,后面在下篇当中会根据另外两类型的编程题中的常见考点进一步补充。

由于这部分内容在最后的综合编程题当中出现频率极高,故放在下篇当中再介绍。
总体而言,这两类题目的考试内容也是有迹可循的,这部分的总结将同样会以真题+总结的形式在下篇中逐步更新,敬请期待。下面随便挑了一份真题中的最后三道题目供大家学习参考:

// 考生文件初始代码
import turtle
for i in range(_____):
turtle.seth(_____)
________(100)
// 参考答案
import turtle
for i in range(3):
turtle.seth(i*120)
turtle.fd(100)
// 考生文件初始代码
fo = open("PY202.txt","w")
txt = input("请输入类型序列: ")
...
d = {}
....
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for k in ls:
fo.write("{}:{}\n".format(k[0], k[1]))
fo.close()
// 参考答案
fo = open("PY202.txt","w")
txt = input("请输入类型序列: ")
fruits = txt.split(" ")
d = {}
for fruit in fruits:
d[fruit] = d.get(fruit,0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for k in ls:
fo.write("{}:{}\n".format(k[0], k[1]))
fo.close()
"论语.txt"文件部分示例如下:
【原文】
子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”
【注释】
(1)子:中国古代对于有地位、有学问的男子的尊称,有时也泛称男子。《论语》书中“子曰”的子,都是指孔子而言。
(2)学:孔子在这里所讲的“学”,主要是指学习西周的礼、乐、诗、书等传统文化典籍。
(3)时习:在周秦时代,“时”字用作副词,意为“在一定的时候”或者“在适当的时候”。但朱熹在《论语集注》一书中把“时”解释为“时常”。“习”,指演习礼、乐;复习诗、书。也含有温习、实习、练习的意思。
(4)说:音yuè,同悦,愉快、高兴的意思。
(5)有朋:一本作“友朋”。旧注说,“同门曰朋”,即同在一位老师门下学习的叫朋,也就是志同道合的人。
(6)乐:与说有所区别。旧注说,悦在内心,乐则见于外。
(7)人不知:此句不完整,没有说出人不知道什么。缺少宾语。一般而言,知,是了解的意思。人不知,是说别人不了解自己。
(8)愠:音yùn,恼怒,怨恨。
(9)君子:《论语》书中的君子,有时指有德者,有时指有位者。此处指孔子理想中具有高尚人格的人。
// 考生文件初始代码 PY301-1
fi = open("论语.txt", ______)
fo = open("论语-原文.txt", ______)
...
for line in fi:
...
fo.write(line.lstrip())
...
// 考生文件初始代码 PY301-2
fi = open("论语-原文.txt", ______)
fo = open("论语-提纯原文.txt", ______)
for line in fi:
...
line=line.replace(______)
...
// 参考答案PY301-1
fi = open("论语.txt", "r")
fo = open("论语-原文.txt", "w")
flag = False
for line in fi:
if "【" in line:
flag = False
if "【原文】" in line:
flag = True
continue
if flag == True:
fo.write(line.lstrip())
fi.close()
fo.close()
// 参考答案PY301-2
fi = open("论语-原文.txt", 'r')
fo = open("论语-提纯原文.txt", 'w')
for line in fi:
for i in range(1,23):
line = line.replace("({})".format(i),"")
fo.write(line)
fi.close()
fo.close()
总体而言,本篇文章初步总结概括了大部分在基础编程题当中出现频率较大的一些重要知识点,并以脑图的形式展现出来。但还有一大部分知识点依旧未涉及到,剩余内容会在下篇针对简单应用题与综合应用题的总结中继续完善,最终的目的是得到一份能够涵盖编程题部分所有考点的知识点总结脑图!!!最后放一张总结至目前为止的知识点总结脑图。
有关于本篇文章的相关问题或者有Python二级题目不理解的小伙伴可以随时评论or私信我,看到后我都会逐一回复哒q(≧▽≦q) PS:今年考完Python二级后才逐渐用Python做毕设、接小项目,目前也还是小白一枚,欢迎各位大佬批评指正!

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p