脚本宝典收集整理的这篇文章主要介绍了全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
#解法一
ls= input().split(',') #将从键盘上输入的用逗号隔开的字符串转换为列表
#例如输入:10,@
#ls为['10', '@']
#ls[0]为'10' ,eval(ls[0])*2+len(ls[0])表达式值为22
#ls[1]为'@'
print(ls[0].center(eval(ls[0])*2+len(ls[0]),ls[1]))
#'10'.center(22,"@")即为输出结果,考察字符串的center方法
#str.center(x,y) 会用字符串str构造一个新的字符串,
#新的字符串长度是x, 两边填充y。此处的x是数字,y是填充字符
# str:'10'
# x:22
# y:"@"
#输出结果为"@@@@@@@@@@10@@@@@@@@@@"
'''
参考讲解:
1. 理解 input 的结果是返回一个字符串
2. split 是字符串的方法,能够以逗号把字符串分割成列表,但列表的元素都是字符串
3. 用 ls[0] 和 ls[1] 分别取得输入的数字和后面的符号
4. 题目要求用一行表达式来解决这个问题,所以增加了难度
5. 此时要想起来用字符串的操作方法 center,问题就迎刃而解了,这个方法 str.center(x,y) 会用字符串 str 构造一个新的字符串,新的字符串长度是 x , 两边填充 y。此处的 x 是数字,y 是字符
6. 要记得 ls[0] 里的 10 是一个字符串,所以要记得用 eval 把它变成数字,乘 2,加上 10 自己的长度,就得到了所需的 x;y 就是 ls[1] 里的字符
7. 这道题关键是深入理解,并灵活运用 center
'''
#解法二
ls= input().split(',')
print(eval(ls[0])*ls[1]+ ls[0] + eval(ls[0])*ls[1])
#studs列表中的元素是字典
studs= [{'sid':'103','Chinese': 90},
{'sid':'101','Chinese': 80},
{'sid':'102','Chinese': 70}]
scores = {}
for stud in studs:
sv = stud.items() #sv被赋值为二维列表,形如[('sid','103'),('Chinese',90)]
for it in sv:
if it[0] == 'sid': #第一次访问:it = ('sid','103')
k = it[1] # k = '103'
else: #第二次访问:it = ('Chinese',90) it[1] = 90
scores[k] = it[1] #scores["103"] = 90
so = list(scores.items()) #形如:[('103':90),('101':80),...]
so.sort(key = lambda x:x[0],reverse = False) #按学号进行排序
for l in so:
print('{}:{}'.format(l[0],l[1])) #遍历输出排序后结果
'''
要点:
1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;
3. 对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv = stud.items(),是第一个空的答案;
4. 题目要求提取学生的学号,所以需要比较键it[0]是否是'sid',是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值,scores[k] = v,是第二个空的答案
5. 经过对studs列表里的各条字典处理完之后,新的scores字典就全部生成。
6. 题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so = list(scores.items())
7. 用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;
8. 对排好序的列表输出每组列表。
'''
#代码如下:
import jieba
Tempstr = input()
ls = jieba.lcut(Tempstr)
print(ls)
#代码如下:
r = 10
dr = 50
head = 90
for i in range (4):
turtle.pendown()
turtle.circle(r)
r += dr
turtle.penup()
turtle.seth(-head)
turtle.fd(dr)
turtle.seth(0)
turtle.done()
flag = 1
while flag:
try:
n = eval(input())
xin = input().split(',')
yin = input().split(',')
flag =0
sum = 0
for i in range(n):
sum += int(xin[i]) * int(yin[i])
print("x和y的内积是:", sum)
except:
print("请输入整数!")
flag =1
#代码如下:
jl = [[],[],[],[],[]] # 定义空的二维列表jl,例如:
#jl[1]用于存放左臂高压值:[104,154,131,...]
#jl[2]用于存放左臂低压值:[82,88,82,...]
#jl[3]用于存放右臂高压值:[136,155,139,...]
#jl[4]用于存放右臂低压值:[90,85,74,...]
zyc = [] #存放左臂压差值列表[22,66,...]
yyc = [] #存放右臂压差值列表[46,60,...]
#用with语句打开xueyajilu.txt文件
with open("xueyajilu.txt", 'r',encoding='utf-8') as fi:
for l in fi: #对文件中的每一行内容进行处理
if len(l): #过滤空行
lls = l.split(',')
#print(l.split(','))
#例如第一行的lls:['2018/7/2 6:00', '140', '82', '136', '90']
#注意第一列是时间,不需要,跳过
for i in range(1,5): #i从1开始,就是为了跳过第一列时间
jl[i].append(eval(lls[i])) #构建二维列表jl
zyc.append(eval(lls[1])- eval(lls[2])) #左臂压差:左臂高压值 - 左臂低压值
yyc.append(eval(lls[3])- eval(lls[4])) #右臂压差:右臂高压值 - 右臂低压值
cnt = len(zyc) #记录条数
res = [] #构建对比表
res.append(list(("高压最大值",max(jl[1]),max(jl[3]))))
#"高压最大值"、左臂高压最大值和右臂高压最大值构建列表增加到res[0]
res.append(list(("低压最大值",max(jl[2]),max(jl[4]))))
#"低压最大值"、左臂低压最大值和右臂低压最大值构建列表增加到res[1]
res.append(list(("压差平均值",sum(zyc)//cnt,sum(yyc)//cnt)))
#"压差平均值"、左臂高低压差平均值和右臂高低压差平均值构建列表增加到res[2] //:取整除 - 返回商的整数部分(向下取整)
res.append(list(("高压平均值",sum(jl[1])//cnt,sum(jl[3])//cnt)))
#"高压平均值"、左臂高压平均值和右臂高压平均值构建列表增加到res[3] //:取整除 - 返回商的整数部分(向下取整)
res.append(list(("低压平均值",sum(jl[2])//cnt,sum(jl[4])//cnt)))
#"低压平均值"、左臂低压平均值和右臂低压平均值构建列表增加到res[4] //:取整除 - 返回商的整数部分(向下取整)
print('{0:<10}{1:<10}{2:<10}'.format("对比项", "左臂", "右臂")) #输出标题行
for r in range(len(res)):
print('{0:<10}{1:<10}{2:<10}'.format(res[r][0],res[r][1],res[r][2]))
#输出左右臂的高压最大值、低压最大值、压差平均值、高压平均值、低压平均值
输出结果:
对比项 左臂 右臂
高压最大值 168 155
低压最大值 93 90
压差平均值 62 60
高压平均值 147 141
低压平均值 85 81
要点:
1. 这道题的关键问题是把数据按照列的方式来处理
2. 参考答案给出的是一般思路,把文件里读出来的数据分别按列的方式,拷贝到一维列表中去,对一维列表进行各种max,min,sum,len操作
3. 其次,是当列数有些多的时候,程序看起来很冗余,需要做一些优化合并
4. 前四个计算公式类似的,放到一个二维列表里,加个循环结构,就可以把四条语句缩成一条
5. 显示输出要求像表格一样输出,又要比较高效率,就引入了一个二维列表,把要输出的行头和内容,变成列表,再加到二维列表中去
以上是脚本宝典为你收集整理的全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天全部内容,希望文章能够帮你解决全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。