41、在考生文件夹下有个文件PY101.py,在横线处填写代码,完成如下功能。程序接收用户输入的五个数,以逗号分隔。将这些数字按照输入顺序输出,每个数字占10个字符宽度,右对齐,所有数字显示在同一行。例如:
输入:
23,42,543,56,71
输出:
23 42 543 56 71
#
# 在____________上补充代码
#
num = input().____________
for i in num:
print(____________)
#
# 在____________上补充代码
#
num = input().split(',')
for i in num:
print("{:>10}".format(i),end='')
42、在考生文件夹下有个文件PY102.py,在横线处填写代码,完成如下功能。社会平均工作时间是每天8小时(不区分工作日和休息日),一位计算机科学家接受记者采访时说,他每天工作时间比社会平均工作时间多3小时。如果这位科学家的当下成就值是1,假设每工作1个小时成就值增加0.01%,计算并输出两个结果:这位科学家5年后的成就值,以及达到成就值100所需要的年数。其中,成就值和年数都以整数表示,每年以365天计算。
输出格式示例如下:
5年后的成就值是XXX
XX年后成就值是100
#
# 在____________上补充代码
#
scale = 0.0001 # 成就值增量
def calv(base, day):
val = base * pow(____________)
return val
print('5年后的成就值是{}'.format(int(calv(1, 5*365))))
year = 1
while calv(1, ____________) < 100:
year += 1
print('{}年后成就值是100'.format(year))
#
# 在____________上补充代码
#
scale = 0.0001 # 成就值增量
def calv(base, day):
val = base * pow(1+scale,day*11)#(1+0.01%)*(1+0.01%)...//一天11小时
return val
print('5年后的成就值是{}'.format(int(calv(1, 5*365))))
year = 1
while calv(1, 365*year) < 100:
year += 1
print('{}年后成就值是100'.format(year))
43、在考生文件夹下有个文件PY103.py,在横线处填写代码,完成如下功能。程序接收用户输入的一个数字并判断是否为正整数,如果不是正整数,则显示“请输入正整数”并等待用户重新输入,直至输入正整数为止,并显示输出该正整数。例如:
输入:
请输入一个正整数:357
输出:
357
#
# 在____________上补充代码
#
while True:
try:
a = eval(input('请输入一个正整数: '))
if a > 0 and ____________:
print(a)
____________
else:
print("请输入正整数")
except:
print("请输入正整数")
#
# 在____________上补充代码
#
while True:
try:
a = eval(input('请输入一个正整数: '))
if a > 0 and int(a)==a:#type(a) == int
print(a)
break
else:
print("请输入正整数")
except:
print("请输入正整数")
44、在考生文件夹下有个文件PY201.py,在横线处填写代码,完成如下功能。根据列表中保存的数据采用turtle库画图直方图,显示输出在屏幕上,效果如下图所示。
#
# 在____________上补充代码
# 请不要修改其他代码
#
____________
ls = [69, 292, 33, 131, 61, 254]
X_len = 400
Y_len = 300
x0 = -200
y0 = -100
t.penup()
t.goto(x0, y0)
t.pendown()
t.fd(X_len)
t.fd(-X_len)
t.seth(____________)
t.fd(Y_len)
t.pencolor('red')
t.pensize(5)
for i in range(len(ls)):
t.____________
t.goto(x0 + (i+1)*50, ____________)
t.seth(90)
t.pendown()
t.fd(____________)
t.done()
#
# 在____________上补充代码
# 请不要修改其他代码
#
import turtle as t
ls = [69, 292, 33, 131, 61, 254]
X_len = 400
Y_len = 300
x0 = -200
y0 = -100
t.penup() #提起画笔
t.goto(x0, y0)
t.pendown() #放下画笔
t.fd(X_len)
t.fd(-X_len)
t.seth(90)
t.fd(Y_len)
t.pencolor('red')
t.pensize(5)
for i in range(len(ls)):
t.penup()
t.goto(x0 + (i+1)*50, y0)
t.seth(90)
t.pendown()
t.fd(ls[i])
t.done()
45、在考生文件夹下有个文件PY202.py,在省略号处填写一行或多行代码,完成如下功能。在已定义好的字典pdict里有一些人名及其电话号码。请用户输入一个人的姓名,在字典中查找该用户的信息,如果找到,生成一个四位数字的验证码,并将名字、电话号码和验证码输出在屏幕上,如示例所示。如果查找不到该用户信息,则显示“对不起,您输入的用户信息不存在。”示例如下:
输入:
Bob
输出:
Bob 234567891 1926
输入:bob
输出:
对不起,您输入的用户信息不存在。
#
# 在......上补充一行或多行代码
# 不得修改其他代码
#
import random
random.seed(2)
pdict= {'Alice':['123456789'],
'Bob':['234567891'],
'Lily':['345678912'],
'Jane':['456789123']}
name = input('请输入一个人名:')
......
#
# 在......上补充一行或多行代码
# 不得修改其他代码
#
import random
random.seed(2)
pdict= {'Alice':['123456789'],
'Bob':['234567891'],
'Lily':['345678912'],
'Jane':['456789123']}
name = input('请输入一个人名:')
if name in pdict:
a=random.randint(1000,9999)
print("{} {} {}".format(name,pdict[name][0],a))
else:
print("对不起,您输入的用户信息不存在")
46、考生文件夹下存在2个Python源文件和2个文本文件。其中,2个python源文件对应2个问题,2个文本文件分别摘自2019年和2018年的政府工作报告。请分别补充2个Python源文件,实现以下功能。
问题1(10分):数据统计。要求:修改PY301-1.py文件中代码,分别统计两个文件中出现次数最多的10词语,作为主题词,要求词语不少于2个字符,打印输出在屏幕上,输出示例如下:(示例词语非答案)
2019:改革:10,企业:9,…(略),深化:2
2018:改革:11,效益:7,…(略),深化:1
注意:输出格式采用英文冒号和英文逗号,标点符号前后无空格,各词语间用逗号分隔,最后一个词语后无逗号。
#
# 以下代码仅供参考。
#
d = {}
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
#
# 以下代码仅供参考。
#
import jieba
fa=open('data2019.txt','r')
txt=fa.read()
fa.close()
words=jieba.lcut(txt)
d = {}
for word in words:
if len(word)==1:
continue
else:
d[word]=d.get(word,0)+1
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
print("2019:",end='')
for i in range(10):
word,count=lt[i]
if i<9:
print("{}:{}".format(word,count),end=',')
else:
print("{}:{}".format(word,count))
fa=open('data2018.txt','r')
txt=fa.read()
fa.close()
words=jieba.lcut(txt)
d = {}
for word in words:
if len(word)==1:
continue
else:
d[word]=d.get(word,0)+1
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
print("2018:",end='')
for i in range(10):
word,count=lt[i]
if i<9:
print("{}:{}".format(word,count),end=',')
else:
print("{}:{}".format(word,count))
问题2(10分):数据关联。要求:修改PY301-2.py文件中代码,对比两组主题词的差异,输出两组的共有词语和分别的特有词语。输出示例如下:(示例词语非答案)
共有词语:改革,…(略),深化
2019特有:企业,…(略),加强
2018特有:效益,…(略),创新
注意:输出格式采用英文冒号和英文逗号,标点符号前后无空格,各词语间用逗号分隔,最后一个词语后无逗号。
#
# 以下代码仅供参考。
#
......
d = {}
......
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
......
#
# 以下代码仅供参考。
#
import jieba
fa=open('data2019.txt','r')
txt=fa.read()
fa.close()
words=jieba.lcut(txt)
d = {}
for word in words:
if len(word)==1:
continue
else:
d[word]=d.get(word,0)+1
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
da={}
for i in range(10):
da[i]=lt[i][0]
# da={0: '改革', 1: '发展', 2: '推进', 3: '加强', 4: '创新', 5: '企业', 6: '提高', 7: '实施', 8: '取得', 9: '全面'}
fa=open('data2018.txt','r')
txt=fa.read()
fa.close()
words=jieba.lcut(txt)
d = {}
for word in words:
if len(word)==1:
continue
else:
d[word]=d.get(word,0)+1
lt = list(d.items())
lt.sort(key = lambda x:x[1],reverse = True)
db={}
for i in range(10):
db[i]=lt[i][0]
#db={0: '改革', 1: '发展', 2: '加强', 3: '创新', 4: '推进', 5: '制度', 6: '经济', 7: '坚持', 8: '实施', 9: '实现'}
gongyou={}
m=0
for i in range(10):
for j in range(10):
if da[i]==db[j]:
gongyou[m]=da[i]
da[i],db[j]='',''
m=m+1
break
print("共有词语:",end='')
for i in range(m):
if i<m-1:
print("{}".format(gongyou[i]),end=',')
else:
print("{}".format(gongyou[i]))
print("2019特有:",end='')
j=0
for i in range(10):
if da[i]!='':
if j <10-m-1:
print("{}".format(da[i]),end=",")
else:
print("{}".format(da[i]))
j=j+1
print("2018特有:",end='')
j=0
for i in range(10):
if db[i]!='':
if j <10-m-1:
print("{}".format(db[i]),end=',')
else:
print("{}".format(db[i]))
j=j+1