您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 3浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【计算机二级Python】历年上机实操题实现

Better Bench 发布时间:2021-03-12 22:02:16 ,浏览量:3

目录
  • 相关链接
  • 第一套
  • 第二套
  • 第三套
  • 第四套

相关链接
  • 【计算机二级Python】考试攻略及资料汇总
  • 【计算机二级Python】模拟试卷第1套选择题
  • 【计算机二级Python】模拟试卷第2套选择题
  • 【计算机二级Python】模拟试卷第2套选择题
  • 【计算机二级Python】模拟试卷第3套选择题
  • 【计算机二级Python】模拟试卷第4套选择题
  • 【计算机二级Python】模拟试卷第5套选择题
  • 【计算机二级Python】模拟试卷第6套选择题
  • 【计算机二级Python】模拟试卷第7套选择题
  • 【计算机二级Python】模拟试卷第8套选择题
  • 【计算机二级Python】上机历年实操题答案
第一套

(1)键盘输入正整数n,按要求把n输出到屏幕,格式要求:宽度为20个字符,减号字符-填充,右对齐,带千位分隔符。如果输入正整数超过20位,则按照真实长度输出。例如:键盘输入正整数n为1234,屏幕输出---------------1,234

n = eval(input("请输入正整数:"))
s = "{:->20,}".format(n)
print(s)

(2)a和b是两个列表变量,列表a为[3, 6, 9]己给定,键盘输入列表b, 计算a中元素与b中对应元素乘积的累加和。例如:键盘输入列表b为[1,2,3],累加和为13+26+3*9=42,因此,屏幕输出计算结果为42

a = [3,6,9]
b =  eval(input()) #例如:[1,2,3]
s = 0
for i in range(len(a)):
    s += a[i]*b[i]
print(s)

(3)以123为随机数种子,随机生成10个在1 (含)到999 (含)之间的随机数,每个随机数后跟随一一个逗号进行分隔,屏幕输出这10个随机数。

import random
random.seed(123)
for i in range(10):
    print(random.randint(1,1000), end=",")

(4)使用turtle库的turtle.right()函数和turtle.fd()函数绘制一个菱形,边长为 200 像素,4个内角度数为2个60度和2个120度,效果如图所示 在这里插入图片描述

import turtle as t
t.right(-30)    #起始顶点绝对角度设为正30度
for i in range(4):    #画4边,转向4次
    t.fd(200)    
    degree = 60*(1+i%2)    #其他3顶点右转角度分别为60、120、60度
    t.right(degree)
t.done()

(5)键盘输入一-组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一-行,空行回车结束录入,示例格式如下: 张三男23 李四女21 王五男18

计算并输出这组人员的平均年龄(保留2位小数)和其中男性人数,格式如下: 平均年龄是20.67男性人数是2


nstr  = input()
malecount = 0
allnumber = 0
age = 0
while nstr:
    nlist =nstr.split()
    allnumber +=1
    age +=int(nlist[2])  
    if nlist[1] == '男':
        malecount +=1   
    nstr = input()
    if nstr =='':
        print('平均年龄是{0:.2f},男性人数是{1}'.format(age/allnumber,malecount))
        break

(6)考生文件夹下存在 3 个 Python 源文件,分别对应3个问题, 1个文TXT文件,作为本题目输入数据,请按照源文件内部说明修改代码,实现以下功能: 《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版TXT文件,文件名为“命运.txt ”。

问题 1 ( 5 分):在PY301_1.py文件中修改代码,对“命运.txt ”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号’ : ”分隔,示例格式如下: 理:224 问题 2 ( 5 分):在 PY301_2.py文件中修改代码,对“命运.txt ”文件进行字符频次统计,按照频次由高到低,屏幕输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,示例格式如下: 理斯卫 … (后略,共 10 个字符) 问题 3 ( 10 分):在 PY301_3 . py文件中修改代码,对“命运.txt ”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等符号,但不包含空格和回车。将排序后的字符及频次输出到考生文件夹下,文件名为“命运-频次排序.txt ”。字符与频次之间采用英文冒号” : ”分隔,各字符之间采用英文逗号’ , ’分隔,参考 CSV格式,最后无逗号,文件内部示例格式如下: 理:224,斯:120,卫:100

问题一

fate = open('命运-网络版.txt','r',encoding = 'utf-8')
lines = fate.read()
fuhao = ['《','》','-','。','?','(',')',',',':','"','、','!','\n','\u3000',' ']  #这里\u3000代表全角空格,在考试中没有这种问题存在。在题录中的命运-网络版.txt我呢本中存在全角空格
d={}       #定义一个空字典,用于存储相同字符出现的个数
for word in lines:
   if word in fuhao:  #除去符号
       continue
   else:
       d[word] = d.get(word,0) + 1   #相同字符出现则加1
fate.close()
ls = list(d.items())   #可以通过print(ls)尝试打印出ls的内容是什么样子。
ls.sort(key = lambda x:x[1],reverse = True)#本行代码题目已经给出的,将ls按照统计数量进行从大大小排序,当reverse=False时:为正向排序;当reverse=True时:为反向排序。
print('{}:{}'.format(ls[0][0],ls[0][1]))

问题二

# 把第一问的输出改为
for i in range(10):
   print(ls[i][0],end= '')   #将字符输出,不包含回车符,字符无间隙

问题三

#把第一问的输出改为
file = open('命运-频次排序.txt','w',encoding='utf-8')
for tu in ls:
    filestr = tu[0]+':'+str(tu[1])+','
    file.write(filestr)
file.close()
第二套

(1)计算下列数学表达式的结果并输出,小数后保留三位 在这里插入图片描述

import math 
x = math.sqrt((pow(3,4)+5*pow(6,7))/8)
print('{:0.3f}'.format(x))
print()

(2)用Python内置函数及jieba库中已有的计算字符串S的中外文字符个数以及中文词语个数。注意,中文字符包含中文标点符号。

中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾

import jieba
s = '中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。'
n = len(s)
m = len(jieba.lcut(s))
print('中文字符数为{},中文词语数为{}'.format(n,m))

(3)使用turtle的fd函数和seth函数绘制一个边长为200的正方形 在这里插入图片描述

import turtle

d = 0
for i in range(4):
    turtle.fd(200)
    d =d +90
   	turtle.seth(d)
print()

(4)输出列表中个元素的数量,格式是

军事:1 农林:1 师范:2 理综:4 综合:5 理工:6

# 方法一
from collections import Counter
ls = ['理综','理工','综合','理综','理工','综合','理综','理工','综合','理综','理工','理工','综合','师范','理工','综合','农林','师范','军事']
# 利用Counter进行统计元素数量
tempdict = dict(Counter(ls).most_common())
# 对字典的值进行排序
tutemp = sorted(tempdict.items(), key = lambda kv:kv[1],reverse =false)
for i in tutemp:
    print('{}:{}'.format(i[0],i[1]))、
# 方法二
ls = ['理综','理工','综合','理综','理工','综合','理综','理工','综合','理综','理工','理工','综合','师范','理工','综合','农林','师范','军事']
d = {}
for word in ls:
    d[word] = d.get(word,0)+1
# 字典排序
tutemp = sorted(d.items(),key = lambda kv:kv[1],reverse = False)
for i in tutemp:
    print('{}:{}'.format(i[0],i[1]))

(5)

第三套

(1)随机选择一个手机品牌屏幕输出。

题目给出的文件如下: import ___ brandlist=[‘华为’,‘苹果’,‘诺基亚’,‘0PPO’,‘小米’] random.seed(0) … print(name)

import random
brandlist=['华为','苹果','诺基亚','OPPO','小米']
random.seed(0)
random.seed()
idx=random.randint(0,4)
name= brandlist[idx]
print(name)

(3)键盘输入一段文本,保存在一个字符串变量s中,分别用Python内置函数及jieba库中已有函数计算字符串s的中文字符个数及中文词语个数。注意:中文字符包含中文标点符号。 例如,键盘输入:俄罗斯举办世界杯 ,屏幕输出:中文字符数为8,中文词语数为3。

import jieba
s=input("请输入一个字符串")
n=len(s)
m=len(jieba.lcut(s))
print("中文字符数为{},中文词语数为{}。".format(n,m))

(4)某商店出售某品牌运动鞋,每双定价160,1双不打折,2双(含)到4双(含)打九折,5双(含)到9双(含)打八折,10双(含)以上打七折,键盘输入购买数量,屏幕输出总额(保留整数)。 示例格式如下:输入:1 输出:总额为160

n=eval(input("请输入数量:"))
if n            
关注
打赏
1665674626
查看更多评论
0.2648s