python二级考试操作题docxWord文档下载推荐.docx
- 文档编号:20487113
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:21
- 大小:23.33KB
python二级考试操作题docxWord文档下载推荐.docx
《python二级考试操作题docxWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《python二级考试操作题docxWord文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
101'
80,'
85,'
82},{
102'
70,'
75,'
72}]
将列表studs的数据内容提取出来,放到一个字典scores里,在
屏幕上按学号从小到大的顺序显示输出scores的内容。
内容示例如
下:
101:
[85,82,80]
102:
[75,72,70]
103:
[95,92,90]
输入
输出
示例
1
无
studs=
[{
'
70,'
scores
=
{}
for
stud
instuds
sv
()
v
=[]
it
in
sv:
if
[0]
=='
k
=it
[1]
else:
(it[1])
[k]
=v
#print(scores)
so=list())
(key=lambdax:
x[0],reverse=False)
forlinso:
print('
{}:
{}'
.format(l[0],l[1]))
studs=[{'
90,'
95,'
92},{'
80,'
85,'
82},{'
70,'
75,'
72}]
lit=[]
foriinstuds:
lst=[]
a=('
('
))
(reverse=True)
lat=[]
(a+"
(str(lst))
(lat)
foriinlit:
print("
.join(i))
1.字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
2.提取出来的元素直接就是字典,因此可以用items()直接获取,形成键值对对象集合sv;
3.对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv=(),是第一个空的答案;
4.题目要求提取学生的学号,所以需要比较键it[0]是否是'
,是则将学号
it[1]提取出来作为新的字典scores的键k;
不是则将成绩提取出来作为新字典
scores的值v;
5.由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课
程的成绩,所以在不是的情况下,新字典
scores的值v是利用append(it[1])
的方式,追加到列表的后面;
6.对v做append操作,必须要事先定义v是一个空列表;
因此需要在对每一条
旧字典stud的键值对信息做处理的foritinsv:
语句之前,用v=[]初始化
v为一个空列表;
7.经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典
scores添加一条键值对,scores[k]=v,是第二个空的答案
8.经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。
9.题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对
内容items()提取到列表so里,此处是第三个空的答案:
so=list())
10.用Lambda函数进行排序。
这个不在考试范围里,所以代码模板直接给出语
句;
11.对排好序的列表输出每组列表,这个直接给出语句,不再赘述。
从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;
编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。
如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。
输入:
请输入填充符号:
@
请输入要显示的字符串:
请输入字符串总长度:
r
请输入一个正整数
4
输出:
@qq@
4
#在____填写一行代#在⋯填写多行代#不要修改已出代
a=input()#入填充符号
c=input()#要示的字符串
flag=1
whileflag:
try:
b=eval(input())#请输入字符串总长度
except:
print("
请输入一个正整数"
)
iftype(b)==intandb>
0:
flag=0
{0:
{1}^{2}}'
.format(c,a,b))
参照代码模板完善代码,实现下述功能,不得修改其它代码。
使用
turtle库的()函数和()函数绘制螺旋状的正方形,正方形边长
从1像素开始,第一条边从0度方向开始,效果如下图所示。
---------------------------------------------------------------
自动评阅说明
使用字符串形式输出____①____,____②____,____③____中应填代码即可以自
动评阅得分
例如,如果代码为:
#代码模板|#你的代码importturtle|import
turtle
d=0|d=0foriinrange(__1__):
|foriinrange
(1):
(__2__)
|
(100)
d
=__3__
=(i+100)*100
(d)
则在提交代码页面输入:
1'
100'
(i+100)*100'
提交后即可以查看得分
注:
如果有运算符,请在运算符两侧加上空格
importturtle
d=0
k=1
forjinrange(10):
foriinrange(4):
(k)
d+=91(d)
+=2
1.降低了难度,让填写的都是最简单的
参照代码模板完善代码,实现下述功能,可以修改其它代码。
附件文件中有一道Python选择题,第1行的第1个数据为题号,后续的4行是4个选项。
示例内容如下:
3.以下关于字典类型的描述,错误的是:
A.字典类型中的数据可以进行分片和合并操作
B.字典类型是一种无序的对象集合,通过键来存取
C.字典类型可以在原来的变量上增加或缩短
D.字典类型可以包含列表和其他数据类型,支持嵌套的字典
读取其中的内容,提取题干和四个选项的内容,利用jieba分词并统计出现频率最高的3个词,其中要删除以下的常用字和符号
“的,:
:
可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。
从文件
中读取所有内容
第3题的主题是:
类型:
5
集合:
2
组合:
import
jieba
fi
=open("
r'
con
num=
l
infi
=('
\n'
).
strip().split('
.'
#print(l)try:
ft=eval(l
pass
num=ft
con+=l[1]
[0])
第{}题的主题是:
.format(num))
conls=(con)
dict
forword
conls
[word]=
(word,0)+1
dictls
list
())
(key
lambdax:
x[1],reverse=True)
k=0
foritindictls:
ifit[0]in'
的,:
可以是和中以下B'
continue
ifk==3:
break
k+=1
.format(it[0],it[1]))
1.
导入jieba库,使用lcut分词,返回列表conls
2.
打开文件,读文件,关闭文件
3.
按行从文件里读,每一行是一个字符串,用strip
和split
处理成列表,因
为要识别题号,还要提取题目和选项的内容,所以要按照'
分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的内容是列表l的第一个字段;
4.为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的内容都用字符串加法,拼成一个大字符串con
5.给出第一句显示:
print('
.format(num))
6.接下来处理con,提取整个题干的主题词:
7.用jieba分词,然后用字典dict来保存没个词出现的次数。
一种惯用法是
forwordinconls:
dict[word]=(word,0)+1
8.统计出来的词以及词频,需要排序找到最大三个词频,此时需要把字典的键
值对items()提取出来形成列表dictls,并利用列表排序和lambda函数。
得到排好序的dictls
9.显示的时候,遍历字典的每个键,要避开那些没有意义的词,题目里给出了
剔除列表,拿过来判断一下,如果是没用的词,就直接跳过,循环下一个,用continue;
10.如果是有意义的词,题目要求显示三个最高词频的词,因为中间有跳过的
词,不能直接只循环排序靠前的3个词。
要对显示了的词做计数,计够三个,就中断循环,所以要用break;
11.这里用了嵌套的分支结构,在第一个分支里是有意义的词,在第二个分支
里是计数不到三个,才做显示输出的语句,显示完了,要把计数器k加一。
12.程序最后记着关闭文件。
老王的血压有些高,医生让家属给老王测血压。
老王的女儿记录了一
段时间的血压测量值,在文件中,内容示例如下:
2018/7/26:
00,140,82,136,90,69
2018/7/215:
28,154,88,155,85,63
2018/7/36:
30,131,82,139,74,61
2018/7/316:
49,145,84,139,85,73
2018/7/45:
03,152,87,131,85,63
文件内各部分含义如下:
测量时间,左臂高压,左臂低压,右臂高压,右臂低压,心率
参照代码模板完善代码,实现下述功能,可以修改给定代码。
(1)使用字典和列表类型进行数据分析,获取老王的
左臂和右臂的血压平均值
左臂和右臂的高压最高值、低压最高值
左臂和右臂的高/低压差平均值
心率的平均值
给出左臂和右臂血压情况的对比表,输出到屏幕上,请注意每行三列对齐。
示例如下:
(2)上述显示的五个项目,如果左臂有大于50%的项目高于右臂,则输出“结论:
左臂血压偏高”;
如果等于50%的项目高于右臂,
则输出“结论:
左臂血压与右臂血压相当”;
如果小于50%的项目
高于右臂,则输出“结论:
右臂血压偏高”。
结论:
左臂血压偏高,心率的平均值为66
(注意:
此处为格式示例,实际数据与此不同)
读取文件内容
左臂血压偏高,心率的平均
open("
jl
[[],[],[],[],[]]
#1:
zb_h,zb_l,yb_h,yb_l
zyc
[]
yyc
xl
forl
fi:
lls
).strip().
split('
fori
range(1,5):
[i].
append(eval
(lls[i]))
(eval
(lls
[1])
-eval(lls
[2]))
[3])
[4]))
[5]))
cnt
len(xl)
res
(list
((
高压最大值"
max(jl
[1]),
max(jl
[3]))))
低压最大值"
[2]),
[4]))))
压差平均值"
sum(zyc)ormat("
对比项"
左臂"
右臂"
))
r
inrange(len(res)-1):
('
{:
<
10}{:
10}'
.format
(res[r][0],res[r][1],res[r][2]))
[r][1]>
res[r][
2]:
zbg
+=1
ybg
ifzbg>
ybg:
结论:
左臂血压偏高
end='
)elif
==ybg:
左臂血压与右臂血压相当
)else:
右臂血压偏高
心率的平均值为
.format(res[5][1]))
输出结果:
对比项
左臂
右臂
高压最大值
163
155
低压最大值
93
90
压差平均值
61
57
高压平均值
146
140
低压平均值
85
82
心率的平均值为66
1.这道题的关键问题是解决对行数据按照列的方式来处理
2.参考答案给出的是一般思路,把文件里读出来的数据分别按列的方式,拷贝到一维列表中去,对一维列表进行各种max,min,sum,len操作
4.数据处理的逻辑并不复杂,这里不赘述。
5.其次要解决的问题,是当列数有些多的时候,程序看起来很冗余,需要做一些优化合并;
6.答案里给出的方案是前四个计算公式类似的,放到一个二维列表里,加个循环结构,就可以把四条语句缩成一条。
7.第三个问题,显示输出要求像表格一样输出,又要比较高效率,就引入了一个二维列表,把要输出的行
头和内容,变成列表,再加到二维列表中去
8.最后的显示就变得很容易,一个循环就搞定了。
9.最后的问题,是要对输出的二维表格数据作统计、比对、下结论。
比较好的方法是输出的时候,顺便做计数;
10.显示输出结论的时候,遇到一个小问题,要在做比对后的不同的结论后面,追加一条相同的心率的平
均值,还不能换行;
解决的方法就是用end='
,然后在最后加一句print心率的结果。
11.当然可以在每条结论的后面,都重复的写一句心率的结果,虽然最后的结果是一样的,但代码有冗余。
如果把咱们写程序,比喻成女娲造人,冗余的程序就像胖子,而高效简洁的程序就像美女,咱们还是要追
求造出美女,而不是胖子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 二级 考试 操作 docx