4大---

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值