全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天

文章目录

  • Python 二级等考(第三季)精品题5
    • 单项选择题
      • 第一题
      • 第二题
      • 第三题
      • 第四题
      • 第五题
      • 第六题
      • 第七题
      • 第八题
      • 第九题
      • 第十题
      • 第十一题
      • 第十二题
      • 第十三题
      • 第十四题
      • 第十五题
      • 第十六题
      • 第十七题
      • 第十八题
      • 第十九题
      • 第二十题
      • 第二十一题
      • 第二十二题
      • 第二十三题
      • 第二十四题
      • 第二十五题
      • 第二十六题
      • 第二十七题
      • 第二十八题
      • 第二十九题
      • 第三十题
      • 第三十一题
      • 第三十二题
      • 第三十三题
      • 第三十四题
      • 第三十五题
      • 第三十六题
      • 第三十七题
      • 第三十八题
      • 第三十九题
      • 第四十题
    • 程序设计题
      • 第一题
      • 第二题
      • 第三题
      • 第四题
      • 第五题
      • 第六题

Python 二级等考(第三季)精品题5

单项选择题

第一题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第1张图片

第二题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第2张图片

第三题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第3张图片

第四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第4张图片

第五题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第5张图片

第六题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第6张图片

第七题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第7张图片

第八题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第8张图片

第九题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第9张图片

第十题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第10张图片

第十一题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第11张图片

第十二题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第12张图片

第十三题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第13张图片

第十四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第14张图片

第十五题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第15张图片

第十六题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第16张图片

第十七题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第17张图片

第十八题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第18张图片

第十九题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第19张图片

第二十题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第20张图片

第二十一题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第21张图片

第二十二题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第22张图片

第二十三题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第23张图片

第二十四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第24张图片

第二十五题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第25张图片

第二十六题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第26张图片

第二十七题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第27张图片

第二十八题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第28张图片

第二十九题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第29张图片

第三十题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第30张图片

第三十一题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第31张图片

第三十二题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第32张图片

第三十三题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第33张图片

第三十四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第34张图片

第三十五题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第35张图片

第三十六题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第36张图片

第三十七题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第37张图片

第三十八题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第38张图片

第三十九题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第39张图片

第四十题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第40张图片

程序设计题

第一题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第41张图片

#解法一
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])

第二题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第42张图片

#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. 对排好序的列表输出每组列表。
'''

第三题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第43张图片

#代码如下:
import jieba
Tempstr = input()
ls = jieba.lcut(Tempstr)
print(ls)

第四题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第44张图片

#代码如下:
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()

第五题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第45张图片
全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第46张图片

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

第六题

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第47张图片
全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天_第48张图片

#代码如下:
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. 参考答案给出的是一般思路,把文件里读出来的数据分别按列的方式,拷贝到一维列表中去,对一维列表进行各种maxminsumlen操作
3. 其次,是当列数有些多的时候,程序看起来很冗余,需要做一些优化合并
4. 前四个计算公式类似的,放到一个二维列表里,加个循环结构,就可以把四条语句缩成一条
5. 显示输出要求像表格一样输出,又要比较高效率,就引入了一个二维列表,把要输出的行头和内容,变成列表,再加到二维列表中去

你可能感兴趣的:(python)