41、考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入字符串s,按要求把s输出到屏幕,格式要求:宽度为20个字符,等号字符=填充,居中对齐。如果输入字符串超过20位,则全部输出。
例如:键盘输入字符串s为"PYTHON",屏幕输出=PYTHON=
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
s = input("请输入一个字符串:")
print("{______}".format(s))
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
s = input("请输入一个字符串:")
print("{:=^20}".format(s))
42、考生文件夹下存在一个文件PY102.py,请写代码替换横线,不修改其他代码,实现以下功能:
根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2),输出不大于100的序列元素。
例如:屏幕输出实例为:
0,1,1,2,3,…(略)
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
a, b = 0, 1
while ______:
print(a, end=',')
a, b = ______
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
a, b = 0, 1
while a<=100:
print(a, end=',')
a, b = b,a+b
43、考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入一句话,用jeba分词后,将切分的词组按照在原话中逆序输出到屏幕上,词组中间没有空格。示例如下:
输入:
我爱妈妈
输出:
妈妈爱我
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import jieba
txt = input("请输入一段中文文本:")
______
for i in ls[::-1]:
______
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import jieba
txt = input("请输入一段中文文本:")
ls=jieba.lcut(txt)
for i in ls[::-1]:
print(i,end='')
44、考生文件夹下存在一个文件PY201.py,请写代码替换横线,不修改其他代码,实现以下功能:
使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,边长为200像素,效果如下图所示。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import turtle as ___(1)___
for i in range(___(2)___):
___(3)___(i*120)
t.fd(200)
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import turtle as t
for i in range(3):
t.seth(i*120)
t.fd(200)
45、考生文件夹下存在一个文件PY202.py,该文件是本题目的代码提示框架,其中代码可以任意修改。请在该文件中编写代码,以实现如下功能:
键盘输入小明学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入,示例格式如下:
数学 90
语文 95
英语 86
物理 84
生物 87
屏幕输出得分最高的课程及成绩,得分最低的课程及成绩,以及平均分(保留2位小数)。
注意,其中逗号为英文逗号,格式如下:
最高分课程是语文 95,最低分课程是物理 84,平均分是88.40
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
data = input() # 课程名 考分
...
while data:
...
data = input()
...
print("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(______))
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
data = input() # 课程名 考分
a=[]
b=[]
while data:
dat=data.split()
a.append(dat[0])
b.append(eval(dat[1]))
data=input()
for i in range(len(a)):
if b[i] == max(b):
ma=a[i]
mb=b[i]
if b[i]==min(b):
mi=a[i]
mib=b[i]
su=sum(b)
av=su/len(a)
print("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(ma,mb,mi,mib,av))
46、考生文件夹下存在三个Python源文件,分别对应三个问题,请按照文件内说明修改代码,实现以下功能:
二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座。给出一个CSV文件(PY301-SunSign.csv),内容示例如下:
序号,星座,开始月日,结束月日,Unicode
1,水瓶座,120,218,9810
2,双色座,219,320,9811
3,白羊座,321,419,9800
4,金牛座,420,520,9801
5,双子座,521,621,9802
…(略)
以第1行为例,120表示1月20日,218表示2月18日,9810是Unicode码。
问题1(5分):在PY301-1.py文件中修改代码,读入CSV文件中数据,获得用户输入。根据用户输入的星座名称,输出此星座的出生日期范围。
参考输入和输出示例格式如下:
请输入星座中文名称(例如,双子座):双子座
双子座的生日位于521-621之间
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
...
ls = []
...
print("{}的生日位于{}-{}之间".format(______))
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
a=input("请输入星座中文名称(例如,双子座):")
f=open('PY301-SunSign.csv','r')
s=f.readlines()
ls = []
for i in s:
ls.append(i.strip('\n').split(','))
for i in ls:
if a in i:
print("{}的生日位于{}-{}之间".format(a,i[2],i[3]))
f.close()
问题2(10分):在PY301-2.py文件中修改代码,读入CSV文件中数据,获得用户输入。用户键盘输入一组范围是1-12的整数作为序号,序号间采用空格分隔,以回车结束。屏幕输出这些序号对应的星座的名称、字符编码以及出生日期范围,每个星座的信息一行。本次屏幕显示完成后,重新回到输入序号的状态。
参考输入和输出示例格式如下:
请输入星座序号(例如,5):5 10
双子座(9802)的生日是5月21日至6月21日之间
天蝎座(9807)的生日是10月24日至11月22日之间
请输入星座序号(例如,5):
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
...
ls = []
...
print("{}({})的生日是{}月{}日至{}月{}日之间".format(______))
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
f=open('PY301-SunSign.csv','r')
s=f.readlines()
ls = []
for i in s:
ls.append(i.strip('\n').split(','))
while 1:
a=input('请输入星座序号(例如,5):').split()
for i in range(len(a)):
for j in ls:
if a[i] in j:
print("{}({})的生日是{}月{}日至{}月{}日之间".format(j[1],j[4],j[2][:-2],j[2][-2:],j[3][:-2],j[3][-2:]))
f.close()
'''
j:
['序号', '星座', '开始月日', '结束月日', 'Unicode']
['1', '水瓶座', '120', '218', '9810']
['2', '双鱼座', '219', '320', '9811']
['3', '白羊座', '321', '419', '9800']
['4', '金牛座', '420', '520', '9801']
['5', '双子座', '521', '621', '9802']
['6', '巨蟹座', '622', '722', '9803']
['7', '狮子座', '723', '822', '9804']
['8', '处女座', '823', '922', '9805']
['9', '天秤座', '923', '1023', '9806']
['10', '天蝎座', '1024', '1122', '9807']
['11', '射手座', '1123', '1221', '9808']
['12', '魔蝎座', '1222', '119', '9809']
'''
问题3(5分):在问题2的基础上,在PY301-3.py文件中修改代码,对键盘输入的每个序号做合法性处理。如果输入的数字不合法,请输出“输入星座编号有误!”,継纹输出后续信息,然后重新回到输入序号的状态。
参考输入和输出示例格式如下:
请输入星座序号(例如,5):5 14 11
双子座(9802)的生日是5月21日至6月21日之间
输入星座序号有误!
射手座(9808)的生日是11月23日至12月21日之间
请输入星座序号(例如,5):
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
...
ls = []
...
print("{}({})的生日是{}月{}日至{}月{}日之间".format(______))
...
if flag == False:
print("输入星座序号有误!")
...
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
f=open('PY301-SunSign.csv','r')
s=f.readlines()
ls = []
flag=1
for i in s:
ls.append(i.strip('\n').split(','))
while 1:
a=input("请输入星座序号(例如,5):").split()
for i in range(len(a)):
if eval(a[i])>12 or eval(a[i])<1:
flag=0
for j in ls:
if a[i] in j:
flag=1
print("{}({})的生日是{}月{}日至{}月{}日之间".format(j[1],j[4],j[2][:-2],j[2][-2:],j[3][:-2],j[3][-2:]))
if flag == False:
print("输入星座序号有误!")
f.close()