41、在考生文件夹下有个文件PY101.py,在横线处填写代码,完成如下功能。接收用户输入的一个小于20的正整数,在屏幕上逐行递增显示从01到该正整数,数字显示的宽度为2,不足位置补0,后面追加一个空格,然后显示’>‘号,’>'号的个数等于行首数字。例如:
输入:
3
输出:
01>
02>>
03>>>
#
# 在____________上补充代码
#
n = input('请输入一个正整数:')
for i in range(____________):
print('____________'.format(i+1, ____________))
#
# 在____________上补充代码
#
n = input('请输入一个正整数:')
for i in range(int(n)):
print('{:0>2}{}'.format(i+1,">"*(i+1) ))
42、在考生文件夹下有个文件PY102.py,在横线处填写代码,完成如下功能。让用户输入一串数字和字母混合的数据,然后统计其中数字和字母的个数,显示在屏幕上。例如:
输入:
Fda243fdw3
输出:
数字个数:4,字母个数:6
#
# 在____________上补充代码
#
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))
43、在考生文件夹下有个文件PY103.py,在横线处填写代码,完成如下功能。将程序里定义好的std列表里的姓名和成绩与已经定义好的模板拼成一段话,显示在屏幕上。例如:
亲爱的张三,你的考试成绩是英语90,数学87,Python语言95,总成绩272。特此通知。
…(略)
#
# 在____________上补充代码
#
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(3):
cnt += st[i+1]
print(modl.format(st[0],st[1],st[2],st[3],cnt))
44、在考生文件夹下有个文件PY201.py,在横线处填写代码,完成如下功能。利用random库和turtle库,在屏幕上绘制5个圆圈,圆圈的半径和圆心的坐标由randint()函数产生,圆的X和Y坐标范围在[-100,100]之间;半径的大小范围在[20,50]之间,圆圈的颜色随机在color列表里选择。效果如下图所示。
#
# 在____________上补充代码
# 请不要修改其他代码
#
____________
import random as r
color = ['red','orange','blue','green','purple']
r.seed(1)
for i in range(5):
rad = r.____________
x0 = r.____________
y0 = r.randint(-100,100)
t.color(r.choice(color))
t.penup()
t.____________
t.pendown()
t.____________(rad)
t.done()
#
# 在____________上补充代码
# 请不要修改其他代码
#
import turtle as t
import random as r
color = ['red','orange','blue','green','purple']
r.seed(1)
for i in range(5):
rad = r.randint(20,50)
x0 = r.randint(-100,100)
y0 = r.randint(-100,100)
t.color(r.choice(color))
t.penup()
t.goto(x0,y0)
t.pendown()
t.circle(rad)
t.done()
45、在考生文件夹下有个文件PY202.py,定义了一个6个浮点数的一维列表lt1和一个包含3个数的一维列表lt2。
示例如下:
lt1=[0.69,0.292,0.33,0.131,0.61,0.254]
lt2=[0.1,0.8,0.2]
在横线处填写代码,完成如下功能。计算lt1列表跟lt2列表的向量内积,两个向量X=[x1,x2,x3]和Y=[y1,y2,y3]的内积计算公式如下:
k=x1y1+x2y2+x3*y3
将每次计算的两组对应元素的值、以及对应元素乘积的累计和k的值显示在屏幕上,格式如下所示。
第一步计算第一个k,分为2次累计lt2[0]*lt1[0+0],lt2[1]*lt1[0+1],lt2[2]*lt1[0+2]的和。
k=0.069,filter[0]=0.100,img[0+0]=0.690
k=0.303,filter[1]=0.800,img[0+1]=0.292
k=0.069,filter[2]=0.100,img[0+2]=0.330
…(略)
#请在.....处填写多行表达式或语句
#不得修改其他代码
img = [0.244, 0.832, 0.903, 0.145, 0.26, 0.452]
filter = [0.1,0.8,0.1]
res = []
for i in range(len(img)-2):
...
res.append(k)
for r in res:
print('{:<10.3f}'.format(r),end = '')
#请在.....处填写多行表达式或语句
#不得修改其他代码
img = [0.244, 0.832, 0.903, 0.145, 0.26, 0.452]
filter = [0.1,0.8,0.1]
res = []
for i in range(len(img)-2):
k=0 #有多个和,所以每次赋初始值0
for j in range(3): #求3次累计和
k+=filter[j]*img[i+j] #求3次累计和
print('k={:<10.3f},filter[{}]={:<10.3f},img[{}+{}]={:<10.3f}'.format(k,j,filter[j],i,j,img[i+j]))
res.append(k)
for r in res:
print('{:<10.3f}'.format(r),end = '')
k=0.024 ,filter[0]=0.100 ,img[0+0]=0.244
k=0.690 ,filter[1]=0.800 ,img[0+1]=0.832
k=0.780 ,filter[2]=0.100 ,img[0+2]=0.903
k=0.083 ,filter[0]=0.100 ,img[1+0]=0.832
k=0.806 ,filter[1]=0.800 ,img[1+1]=0.903
k=0.820 ,filter[2]=0.100 ,img[1+2]=0.145
k=0.090 ,filter[0]=0.100 ,img[2+0]=0.903
k=0.206 ,filter[1]=0.800 ,img[2+1]=0.145
k=0.232 ,filter[2]=0.100 ,img[2+2]=0.260
k=0.014 ,filter[0]=0.100 ,img[3+0]=0.145
k=0.223 ,filter[1]=0.800 ,img[3+1]=0.260
k=0.268 ,filter[2]=0.100 ,img[3+2]=0.452
0.780 0.820 0.232 0.268
46、考生文件夹下,存在2个Python源文件和1个文本文件。其中,2个Python源文件对应2个问题,文本文件“data.txt”中包含一篇从互联网上下载的关于“德国工业4.0战略规划实施建议摘要”的文章。请分别补充2个Python源文件,完成以下功能。
问题1(10分):文件内容清洗。要求:在文件PY301-1.py中补充代码,对文件data.txt的内容进行清理,去除中文标点符号,只保留中文、英文、数字、英文标点符号等字符,将结果输出到文件clean.txt中。示例如下:
德国工业4.0战略计划实施建议摘编机械工业信息研究院战略与规化研究所一德国实施工业…(略)
#
# 以下代码仅供参考。
#
import jieba
...
#
# 以下代码仅供参考。
#
import jieba
f=open('data.txt','r',encoding='utf-8')
data=f.read()
f.close()
f=open('clean.txt','w')
s=''
x=',。?、‘’“”;:、 )\n(!'
for i in data:
if i not in x:
s+=i
f.write(s)
f.close()
问题2(10分):提取主题词及其出现频次。要求:在文件PY301-2.py中补充代码,提取clean.txt文件中长度不少于3个字符的词语并统计词频,将词频最高的10个词语作为主题词,并将主题词及其频次输出到屏幕。示例如下:
4.0:10,制造业:9,…(略)
注意:输出格式采用英文冒号和英文逗号,标点符号前后无空格,各词语中间用逗号分隔,最后一个词语后无逗号。
#
# 以下代码仅供参考。
#
import jieba
f=open('clean.txt','r')
data=f.read()
l=jieba.lcut(data)
d = {}
for i in l:
if len(i)>=3:
d[i] = d.get(i,0)+1
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
for i in lt[:9]:
print(i[0],':',i[1],end=',',sep='')
print(lt[9][0],':',lt[9][1],sep='')
f.close()