文章目录
声明:例题均来源于网络,仅供学习参考,若涉侵权请联系删除
附上篇链接:Python计算机二级编程题真题及考点总结【纯干货】(上篇).
首先再次强调一下,Python二级的编程题包括:基本操作题、简单应用题与综合应用题三大类,上篇内容主要包括基本操作题真题+考点总结,本篇接着上一篇继续采用真题+总结的形式,先列举考试真题模拟软件中若干简单应用题与综合应用题的真题,再针对相应考点进行总结(尽可能只总结考点内容,减少记忆量)。
总体而言,该类题型的难度介于基本操作题和综合应用题之间,考题内容也有迹可循,只要掌握一定的Python基础,就基本能够拿下所有分数(10+15)分。下面列举若干份考试真题供小伙伴们练习,后面会再针对遇到的重要知识点进行总结,巩固加深对考点的记忆~

// 考生文件初始代码
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()

// 考生文件初始代码
import turtle
d = 0
for i in range(_____):
turtle.fd(_____)
d = _____
turtle.seth(d)
// 参考答案
import turtle
d = 0
for i in range(4):
turtle.fd(200)
d = d + 90
turtle.seth(d)
// 考生文件初始代码
#请在...处使用一行或多行代码替换
#请在______处使用一行代码替换
fo = open("PY202.txt","w")
data = input("请输入课程名及对应的成绩:") # 课程名 考分
...
while data:
...
data = input("请输入课程名及对应的成绩:")
...
fo.write("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(______))
fo.close()
// 参考答案
fo = open("PY202.txt","w")
data = input("请输入课程名及对应的成绩:") # 课程名 考分
score_dict = {}
while data:
course, score = data.split(' ')
score_dict[course] = eval(score)
data = input("请输入课程名及对应的成绩:")
course_list = sorted(list(score_dict.values()))
max_score, min_score = course_list[-1], course_list[0]
aver_score = sum(course_list) / len(course_list)
max_course, min_course = '', ''
for item in score_dict.items():
if item[1] == max_score:
max_course = item[0]
if item[1] == min_score:
min_course = item[0]
fo.write("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(
max_course, max_score, min_course, min_score, aver_score))
fo.close()

// 考生文件初始代码
import turtle
turtle.color(_____,______)
turtle._____
for i in range(36):
turtle.fd(_____)
turtle.left(_____)
turtle.end_fill()
// 参考答案
import turtle
turtle.color("red","yellow")
turtle.begin_fill()
for i in range(36):
turtle.fd(200)
turtle.left(170)
turtle.end_fill()
// 考生文件初始代码
fo = open("PY202.txt","w")
def prime(num):
......#可以是多行代码
ls = [51,33,54,56,67,88,431,111,141,72,45,2,78,13,15,5,69]
lis = []
for i in ls:
if prime(i) == False:
______#一行代码
fo.write(">>>{},列表长度为{}".format(_____,______))
fo.close()
// 参考答案
fo = open("PY202.txt","w")
def prime(num):
for i in range(2,num):
if num%i == 0:
return False
return True
ls = [51,33,54,56,67,88,431,111,141,72,45,2,78,13,15,5,69]
lis = []
for i in ls:
if prime(i) == False:
lis.append(i)
fo.write(">>>{},列表长度为{}".format(lis,len(lis)))
fo.close()

// 考生文件初始代码
import turtle
turtle.color('black','yellow')
turtle._____
turtle.circle(_____)
turtle._____
// 参考答案
import turtle
turtle.color('black','yellow')
turtle.begin_fill()
turtle.circle(50)
turtle.end_fill()
// 考生文件初始代码
#请在...处使用一行或多行代码替换
def judge_year(year):
...
year = eval(input("请输入年份:"))
...
// 参考答案
def judge_year(year):
if (year%4 == 0 and year%100 != 0) or year % 400 == 0 :
print(year,"年是闰年")
else:
print(year,"年不是闰年")
year = eval(input("请输入年份:"))
judge_year(year)

// 考生文件初始代码
import turtle
for i in range(_____):
turtle.seth(_____)
turtle.circle(50,90)
turtle.seth(_____)
turtle.circle(50,90)
turtle._____
// 参考答案
import turtle
for i in range(4):
turtle.seth(90*(i+1))
turtle.circle(50,90)
turtle.seth(-90+i*90)
turtle.circle(50,90)
turtle.hideturtle()
// 考生文件初始代码
#请在...处使用一行或多行代码替换
#请在___处使用一行代码替换
_____
try:
a = eval(input('请输入底数:'))
b = eval(input('请输入真数:'))
c = _____
except ValueError:
...
except ZeroDivisionError:
print('底数不能为1')
except NameError:
print('输入必须为实数')
else:
print(c)
// 参考答案
import math
try:
a = eval(input('请输入底数:'))
b = eval(input('请输入真数:'))
c = math.log(b, a)
except ValueError:
if a <= 0 and b > 0:
print('底数小于等于0')
elif b <= 0 and a >0:
print('真数小于等于0')
elif a <= 0 and b <= 0:
print('真数和底数都小于等于0')
except ZeroDivisionError:
print('底数不能为1')
except NameError:
print('输入必须为实数')
else:
print(c)

// 考生文件初始代码
#请在...处使用一行或多行代码替换
for i in range(0,4):
...
for i in range(0,4):
...
// 参考答案
for i in range(0,4):
for y in range(0,4-i):
print(" ",end="")
print('* ' * i)
for i in range(0,4):
for x in range(0,i):
print(" ", end="")
print('* ' * (4-i))

// 考生文件初始代码
from turtle import *
pensize(5)
for i in range(6):
fd(_____)
right(_____)
color("red")
circle(60,_____)
// 参考答案
from turtle import *
pensize(5)
for i in range(6):
fd(100)
right(60)
color("red")
circle(60,steps=6)
从上面给出的6套真题可以看出,简单应用题部分的第一题有极大概率为使用turtle库函数绘制某一特定图像,下面对二级考试中出现频率较高的一些函数进行总结(未提到的其他turtle函数可以不去记忆,感兴趣可以看一下这篇文章Python绘图Turtle库详解),同样建议要自己在IDLE上面写一下代码感受各个函数的功能加深印象~
另外提一下,如果代码最开始有from turtle import *代码,则后面可以使用turtle中的各个函数(如:例12),需要进一步了解的可以自行去搜索学习。

该部分内容属于Python基础重点知识,下面脑图中列出的是在编程题当中出现频率极大的一些函数,在备考时间有限的前提下需要先掌握好以下这些内容~

纵观刷过的十余套考试真题,综合应用题作为分值最高的一道题(20分),对初学编程的小白来说往往具有一定的难度,其涉及的考点也十分宽泛。但只要基础扎实,能够形成一定的解题思路,还是很有机会能够完成该题拿到分数。最后我总结了这部分的一个必考考点:文件操作~(注意!!!虽然相较于其他编程题难度较大,但是这20分一般至少会分成2-3小问,小伙伴们在尽可能的前提下应争取多拿些分数(๑╹◡╹)ノ""")
"论语.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()
// 考生文件初始代码
fi = open("score.csv","r")
fo = open("avg-score.txt","w")
ls = []
x = []
sum = 0
...
fi.close()
fo.close()
// 参考答案
fi = open("score.csv","r")
fo = open("avg-score.txt","w")
ls = []
x = []
sum = 0
for row in fi:
ls.append(row.strip("\n").split(","))
for line in ls[1:]:
for i in line[1:]:
sum = int(i) +sum
avg = sum/3
x.append(avg)
sum = 0
fo.write("语文:{:.2f}\n数学:{:.2f}\n英语:{:.2f}\n物理:{:.2f}\n科学:{:.2f}".format(x[0],x[1],x[2],x[3],x[4]))
fi.close()
fo.close()
// 考生文件初始代码
import _____
letter_list = ['a', 'b', 'c', 'd', 'e', 'f','g',
'h', 'i', 'j', 'k', 'l','m', 'n',
'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z']
letter = letter_list[random._____(0, 25)]
count = 0
while True:
...
// 参考答案
import random
letter_list = ['a', 'b', 'c', 'd', 'e', 'f','g',
'h', 'i', 'j', 'k', 'l','m', 'n',
'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z']
letter = letter_list[random.randint(0, 25)]
count = 0
while True:
letter_input = input('请输入26个小写英文字母中的任一个:')
count +=1
if letter_input not in letter_list:
print('请重新输入字母')
else:
if count > 5:
print('猜测超过5次,答题失败')
break
else:
if letter_input == letter:
print('恭喜你答对了,总共猜了{}次'.format(count))
break
elif letter_input > letter:
print('你输入的字母排在该字母之后')
elif letter_input < letter:
print('你输入的字母排在该字母之前')
else:
print('未知错误')
// 考生文件初始代码PY301-1.py
____________ # 此处可多行
f = open("univ.txt", "w")
____________ # 此处可多行
f.close()
// 考生文件初始代码PY301-2.py
f = open("univ.txt", "r")
n = 0 # 包含大学的名称数量
____________ # 此处可多行
f.close()
print("包含大学的名称数量是{}".format(n))
// 参考答案PY301-1.py
fi = open("data.txt", "r") # 此处可多行
f = open("univ.txt", "w")
L = [] # 此处可多行
lines = fi.readlines()
for line in lines:
if 'alt=' in line:
begin = line.find('alt=')
end = line.find('"', begin + 5)
L.append(line[begin + 5:end])
for i in L:
f.write(i + '\n')
fi.close()
f.close()
// 参考答案PY301-2.py
f = open("univ.txt", "r")
n = 0 # 包含大学的名称数量
m = 0 # 此处可多行
L = []
lines = f.readlines()
for line in lines:
line=line.strip('\n')
if "学院" in line and '大学'in line and '大学生' not in line:
L.append(line)
if line[-2:]=="学院":
m += 1
else:
n+=1
continue
if "学院" in line:
L.append(line)
m += 1
if "大学" in line and "大学生" not in line:
L.append(line)
n += 1
for i in L:
print(i)
f.close()
print("包含大学的名称数量是{}".format(n))
print("包含学院的名称数量是{}".format(m))
文件操作的知识点是综合题必考考点,相信各位小伙伴从上面的这些例题中已经可以发现,综合应用题一般都会给出某.txt或.csv文件,然后要求读取文件并对读取文本(注意:一般都是文本)进行相应的处理后,最后输出结果文件。因此,可以认为这道题虽然考点涉及面较广,但是题目都是围绕文件处理展开,下面对部分重点考点进行总结:

另外,这部由于与文本(字符串)处理密切相关,故而关于字符串的知识点需要大家重点掌握,这边再强调一下两个关于字符串的重点函数:str.split()和str.strip() 。

划重点!!!下图为个人总结的所有编程题考点脑图供各位小伙伴学习参考,里面应该说基本涵盖了三类编程题的所有重要考点,如果能熟练掌握,编程题部分拿到50分左右基本不成问题!!因上传图片大小限制若需要高清图片的小伙伴可以随时滴滴我(^_−)☆~

有关于本篇文章的相关问题或者有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