1.101
描述
参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。
输入输出示例
输入 输出
示例 1 1,2,3,4,5 12345
习题讲解
答案:
ls= input("请输入一个字符串,由逗号隔开每个字符:").split(',')(1)
print(''.join(ls))(2)
要点:
描述
参照代码模板完善代码,实现下述功能。
有一个列表 studs 如下:
studs= [{‘sid’:‘103’,‘Chinese’: 90,‘Math’:95,‘English’:92},{‘sid’:‘101’,‘Chinese’: 80,‘Math’:85,‘English’:82},{‘sid’:‘102’,‘Chinese’: 70,‘Math’:75,‘English’:72}]
将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。内容示例如下:
101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
输入输出示例
输入 输出
示例 1 无 101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
习题讲解
答案:
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]
scores = {}
for stud in studs:
sv = stud.items() (1)
v = []
for it in sv:
if it[0] =='sid':
k = it[1]
else:
v.append(it[1])
scores[k] = v(2)
# print(scores)
so = list(scores.items())(3)
so.sort(key = lambda x:x[0],reverse = False)
for l in so:
print('{}:{}'.format(l[0],l[1]))
要点:
描述
参照代码模板完善代码,实现下述功能。
从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。
输入:
请输入填充符号:@
请输入要显示的字符串:qq
请输入字符串总长度:r
请输入一个正整数
请输入字符串总长度:3.4
请输入一个正整数
请输入字符串总长度:4
输出:
@qq@
输入输出示例
输入 输出
示例 1 @
qq
4 @qq@
习题讲解
答案:
#请在____处填写一行代码#请在… 处填写多行代码#不要修改已给出代码
a = input() # 请输入填充符号
c = input() # 请输入要显示的字符串
flag = 1 (1)
while flag:
try:
b = eval(input()) # 请输入字符串总长度
except:
flag = 1
print("请输入一个正整数")
else:
if type(b)== int (2)and b>0:
flag = 0
else:
flag = 1
print("请输入一个正整数")
print('{0:{1}^{2}}'(3).format(c,a,b))
4.201
描述
参照代码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制螺旋状的正方形,正方形边长从 1 像素开始,第一条边从 0 度方向开始,效果如下图所示。
自动评阅说明
使用字符串形式输出 ①,②,____③____中应填代码即可以自动评阅得分
例如,如果代码为:
d = 0 | d = 0for i in range(1): | for i in range(1):
turtle.fd(2) | turtle.fd(100)
d = 3 | d = (i + 100) * 100
turtle.seth(d) | turtle.seth(d)
则在提交代码页面输入:
print(‘1’, ‘100’, ‘(i + 100) * 100’)
提交后即可以查看得分
注:如果有运算符,请在运算符两侧加上空格
习题讲解
答案:
import turtle
d = 0
k = 1
for j in range(10):
for i in range(4):
turtle.fd(k)
d += 91
turtle.seth(d)
k += 2
turtle.done()
要点:
读取其中的内容,提取题干和四个选项的内容,利用 jieba 分词并统计出现频率最高的 3 个词,其中要删除以下的常用字和符号“的 ,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。
输入输出示例
输入 输出
示例 1 从文件 question.txt 中读取所有内容 第3题的主题是:
类型:5
集合:2
组合:2
习题讲解
答案:
import jieba
fi = open("question.txt",'r')
con = ''
num = 0
for l in fi:
l=l.replace('\n','').strip().split('.') //返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,
//Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
# print(l)
try:
ft = eval(l[0])
except:
pass
else:
num = ft
con += l[1]
print('第{}题的主题是:'.format(num))
conls = jieba.lcut(con) //直接返回列表
dict = {}
for word in conls:
dict[word] = dict.get(word, 0) + 1
dictls = list(dict.items())
dictls.sort(key = lambda x:x[1], reverse = True) //按照第二个元素排序,倒叙排序
k = 0
for it in dictls:
if it[0] in '的 ,::可以是和中以下B':
continue
else:
if k == 3:
break
else:
print('{}:{}'.format(it[0],it[1]))
k += 1
fi.close()
要点:
描述
老王的血压有些高,医生让家属给老王测血压。老王的女儿记录了一段时间的血压测量值,在文件 xueyajilu.txt 中,内容示例如下:
2018/7/2 6:00,140,82,136,90,69
2018/7/2 15:28,154,88,155,85,63
2018/7/3 6:30,131,82,139,74,61
2018/7/3 16:49,145,84,139,85,73
2018/7/4 5:03,152,87,131,85,63
文件内各部分含义如下:
测量时间,左臂高压,左臂低压,右臂高压,右臂低压,心率
参照代码模板完善代码,实现下述功能,可以修改给定代码。
(1)使用字典和列表类型进行数据分析,获取老王的
• 左臂和右臂的血压平均值
• 左臂和右臂的高压最高值、低压最高值
• 左臂和右臂的高/低压差平均值
• 心率的平均值
给出左臂和右臂血压情况的对比表,输出到屏幕上,请注意每行三列对齐。示例如下:
(2)上述显示的五个项目,如果左臂有大于 50% 的项目高于右臂,则输出“结论:左臂血压偏高”;如果等于 50% 的项目高于右臂,则输出“结论:左臂血压与右臂血压相当”;如果小于 50% 的项目高于右臂,则输出“结论:右臂血压偏高”。示例如下:
结论:左臂血压偏高, 心率的平均值为66
(注意:此处为格式示例,实际数据与此不同)
输入输出示例
输入 输出
示例 1 读取文件 xueyajilu.txt 内容
结论:左臂血压偏高, 心率的平均值为66
习题讲解
答案:
fi = open("xueyajilu.txt",'r')
jl = [[],[],[],[],[]] # 1:zb_h, zb_l,yb_h,yb_l
zyc = []
yyc = []
xl = []
for l in fi:
lls=l.replace('\n','').strip().split(',')
for i in range(1,5):
jl[i].append(eval(lls[i]))
zyc.append(eval(lls[1])-eval(lls[2]))
yyc.append(eval(lls[3])-eval(lls[4]))
xl.append(eval(lls[5]))
fi.close()
cnt = len(xl)
res = []
res.append(list(("高压最大值",max(jl[1]),max(jl[3]))))
res.append(list(("低压最大值",max(jl[2]),max(jl[4]))))
res.append(list(("压差平均值",sum(zyc)//cnt,sum(yyc)//cnt)))
res.append(list(("高压平均值",sum(jl[1])//cnt,sum(jl[3])//cnt)))
res.append(list(("低压平均值",sum(jl[2])//cnt,sum(jl[4])//cnt)))
res.append(list(("心率平均值",sum(xl)//cnt,0)))
zbg = 0
ybg = 0
print('{:<10}{:<10}{:<10}'.format("对比项", "左臂", "右臂"))
for r in range(len(res)-1):
print('{:<10}{:<10}{:<10}'.format(res[r][0],res[r][1],res[r][2]))
if res[r][1]> res[r][2]:
zbg += 1
else:
ybg += 1
if zbg > ybg:
print('结论:左臂血压偏高',end ='')
elif zbg == ybg:
print('结论:左臂血压与右臂血压相当',end ='')
else:
print('结论:右臂血压偏高',end ='')
print(', 心率的平均值为{}'.format(res[5][1]))
输出结果:
对比项 左臂 右臂
高压最大值 163 155
低压最大值 93 90
压差平均值 61 57
高压平均值 146 140
低压平均值 85 82
结论:左臂血压偏高, 心率的平均值为66
要点: