python二级考试操作题.docx

上传人:b****4 文档编号:12337554 上传时间:2023-04-18 格式:DOCX 页数:13 大小:28.08KB
下载 相关 举报
python二级考试操作题.docx_第1页
第1页 / 共13页
python二级考试操作题.docx_第2页
第2页 / 共13页
python二级考试操作题.docx_第3页
第3页 / 共13页
python二级考试操作题.docx_第4页
第4页 / 共13页
python二级考试操作题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

python二级考试操作题.docx

《python二级考试操作题.docx》由会员分享,可在线阅读,更多相关《python二级考试操作题.docx(13页珍藏版)》请在冰豆网上搜索。

python二级考试操作题.docx

python二级考试操作题

1.101

 

参照代码模板完善代码,实现下述功能。

从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信息。

示例如下:

输入

10,

输出

10

 

输入输出示例

 

输入

输出

示例1

10,

10

习题讲解

答案:

a,x=input().split(',')#请输入1个整数和1个符号,逗号隔开print(x*eval(a),a,x*eval(a))

要点:

1.输入两个值组成的字符串,要用split()分割开

2.同时赋值给两个变量

3.利用eval得到数值做运算,给字符做乘法,得到需要的格式

2.102

 

参照代码模板完善代码,实现下述功能。

从键盘输入一个由1和0组成的二进制字符串s,转换为八进制数输出显示在屏幕上,示例如下:

输入:

1100

输出:

转换成八进制数是:

14

 

输入输出示例

 

输入

输出

示例1

1100

14

习题讲解

答案:

s=input()#请输入一个由1和0组成的二进制数字串

d=0

whiles:

d=d*2+(ord(s[0])-ord('0'))

s=s[1:

]print("转换成八进制数是:

{:

o}".format(d))

要点:

1.print和format的格式用法,字符串的置处理函数,切片

2.理解数据类型及其转换

3.103

 

参照代码模板完善代码,实现下述功能。

文件data.txt文件中有多行数据,打开文件,读取数据,并将其转化为列表。

统计读取的数据,计算每一行的总和、平均值,在屏幕上输出结果。

文件容示例如下:

Chinese:

80,Math:

85,English:

92,Physical:

81,Art:

85,Chemical:

88

屏幕输出结果示例如下:

总和是:

511.0,平均值是:

85.17

 

输入输出示例

 

输入

输出

示例1

从文件 data.txt 中读取

总和是:

511.0,平均值是:

85.17

习题讲解

答案:

fi=open("data.txt",'r')

forlinfi:

l=l.split(',')

s=0.0

n=len(l)

forcoursinl:

items=cours.split(':

')

s+=eval(items[1])

print("总和是:

{},平均值是:

{:

.2f}".format(s,s/n))

fi.close()

4.201

 

参照代码模板完善代码,实现下述功能,不得修改其它代码。

使用turtle库的turtle.circle()函数和turtle.seth()函数绘制同心圆套圈,最小的圆圈半径为10像素,不同圆圈之间的半径差是40像素,效果如下图所示。

 

 

---------------------------------------------------------------

自动评阅说明

 

使用字符串形式输出____①____,____②____,____③____中应填代码即可以自动评阅得分

例如,如果代码为:

#代码模板|#你的代码importturtle|importturtle

d=0|d=0

foriinrange(__1__):

|foriinrange

(1):

turtle.fd(__2__)|turtle.fd(100)

turtle.__3__|turtle.fd(100+(i*3))

turtle.seth(d)|turtle.seth(d)

则在提交代码页面输入:

print('1','100','fd(100+(i*3))')

提交后即可以查看得分

 

注:

如果有运算符,请在运算符两侧加上空格

习题讲解

答案:

#请在______处填写一行代码#请不要修改其他代码

importturtle

r=10

dr=40

head=90

foriinrange(4):

turtle.pendown()

turtle.circle(r)

r+=dr

turtle.penup()

turtle.seth(-head)

turtle.fd(dr)

turtle.seth(0)

turtle.done()

要点:

1.同心圆主要问题是要挪动画笔,用到pendown和penup

2.用循环来处理重画的个数

5.202

 

参照代码模板完善代码,实现下述功能。

从键盘输入一个中文字符串变量s,部包含中文标点符号。

 

问题1:

(8分)用jieba分词,计算字符串s中的中文词汇个数,不包括中文标点符号。

显示输出分词后的结果,用”/”分隔,以及中文词汇个数。

示例如下:

输入:

工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。

输出:

工业/互联网/实施/的/方式/是/通过/通信/控制/和/计算技术/的/交叉/应用/建造/一个/信息/物理/系统/促进/物理/系统/和/数字/系统/的/融合/

中文词语数是:

27

 

问题2:

(7分)在问题1的基础上,统计分词后的词汇出现的次数,用字典结构保存。

显示输出每个词汇出现的次数,以及出现次数最多的词汇。

如果有多个词汇出现次数一样多,都要显示出来。

示例如下:

继续输出:

控制:

1

物理:

2

通信:

1

交叉:

1

互联网:

1

和:

2

是:

1

计算技术:

1

一个:

1

的:

3

数字:

1

促进:

1

信息:

1

方式:

1

建造:

1

应用:

1

系统:

3

通过:

1

实施:

1

融合:

1

工业:

1

出现最多的词是(的系统):

3次

 

输入输出示例

 

输入

输出

问题1

“工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。

中文词语数是:

27

问题2

 

控制:

1

物理:

2

通信:

1

交叉:

1

互联网:

1

和:

2

是:

1

计算技术:

1

一个:

1

的:

3

数字:

1

促进:

1

信息:

1

方式:

1

建造:

1

应用:

1

系统:

3

通过:

1

实施:

1

融合:

1

工业:

1

出现最多的词是(的系统):

3次

习题讲解

答案:

#请在.....处填写多行表达式或语句#可以修改其他代码

importjieba

#s='“工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。

'

s=input("请输入一个中文字符串,包含逗号和句号:

")

s=s.replace(',','').replace('。

','').replace('、','').replace('“','').replace('”','')

k=jieba.lcut(s)

d1={}

maxc=0

wo=''

foriink:

print(i,end="/")

d1[i]=d1.get(i,0)+1

print("\n中文词语数是:

{}".format(len(k)))

forkeyind1:

ifmaxc

wo=key

maxc=d1[key]

elifmaxc==d1[key]:

wo+=''+key

print("{}:

{}".format(key,d1[key]))

print("出现最多的词是({}):

{}次".format(wo,maxc))

要点:

1.用jieba分词处理词汇统计

2.要处理掉输入的各种标点符号,用到replace()

3.用字典保存各个词出现次数

4.要遍历字典的键值对,找到最大的值,及其对应的键

6.301

 

一个人脸识别研究小组对若干名学生做了人脸识别的测试,将测试结果与被测试者的现场照片组合成文件名,写到了一个文件dir_100.txt中,每行是一个文件名的信息,示例如下:

['1709020621','0']_116.jpg

['1709020621']_115.jpg

['1770603107','1770603105','0','0']_1273.jpg

文件名各部分含义如下:

[‘识别出学号1’,‘识别出学号2’,…,‘0表示检测到人脸但未识别出人’]_照片的顺序编号.jpg

测试过程中,一个学生可能被抓拍到多照片中,所以会在多个文件名中被识别,学号出现在多个文件名中;一照片中,可能有多个人脸,但有些分辨率不够而识别不出来,文件名位置用‘0’代替学号。

使用字典和列表型变量进行数据分析,最终获取实际参加测试的学生人数和人均被测次数。

(1)读入dir_300.txt文件的容,处理每一行文件名信息。

将文件名中的学号容以列表形式保存,丢掉‘0’的字串;照片的顺序编号作为字典的关键字,学号列表作为字典的值。

转换后,显示字典中的每行信息,示例如下:

116:

1709020621

115:

1709020621

117:

1709020621

1273:

1770603107,1770603105

 

(2)将该字典中的学号提取出来,构造另一个字典,以学号作为字典的关键字,累计学号出现的次数,将累计值作为字典的值。

格式示例如下:

1709020621:

3

1770603107:

1

1770603105:

1

(3)累计字典中关键字的个数,即为实际参加测试的学生人数;累加每个关键字对应的值,即为所有学号测试次数;与实际测试人数之比,即为人均被测次数。

将实际参加测试人数和人均被测次数显示输出在屏幕上,示例如下:

实际参加测试的人数是:

1024

人均被测次数是:

2.7

 

输入

输出

问题1

从文件dir_50.txt读入

实际参加测试的人数是:

1024

人均被测次数是:

2.7

 

输入输出示例

 

自动评阅提示:

输出最终结果即可,中间结果不需要输出

习题讲解

答案:

#P301-1.py#请在.....处填写多行表达式或语句#可以修改其他代码

picd={}

numd={}

fi=open("dir_50.txt",'r')

forlinfi:

l=l.replace('\n','').split('_')##print(l[1])

ifl[0]!

='':

lkey,lvalue=l[1][:

-4],eval(l[0])

lval=[]

forvinlvalue:

ifv!

='0':

lval.append(v)

iflval:

lv=','.join(lval)

print("{}:

{}".format(lkey,lv))

picd[lkey]=lv

fi.close()

idd={}

forkeyinpicd:

ids=picd[key].split(',')

fornuminids:

idd[num]=idd.get(num,0)+1

#print(num,idd[num])

s=0

forkeyinidd:

s+=int(idd[key])

#print("{}:

{}".format(key,idd[key]))

count=len(idd)

print("实际参加测试的人数是:

",count)

print("人均被测次数是:

{:

.1f}".format(s/count))

要点:

1.这是一个实际问题,解决问题的方法有实际的推广意义。

问题的关键是要完成数据提取,然后才是分析统计

2.文件的读写,打开关闭是基础

3.读入文件要进行字符串的处理,按行,分割成列表

3.数据提取:

先取得文件里的有效容,转换成列表,利用列表的切片,提取出照片编号和学号,放到字典picd里

4.第二步数据分析,需要先从字典里把学号提取出来,为了便于统计每个学号被测的次数,再建一个字典idd

5. idd字典的键是学号,所以字典的len就是参加测试的人数

6.为了计算平均测试次数,需要累计每个学号被测的次数,最后除以参加测试人数就得到结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1