Python计算机二级题目
本文最后更新于78 天前,其中的信息可能已经过时,如有错误请发送邮件到liumiao0429@foxmail.com

基础题

1.格式控制

键盘输入正整数n,按要求把n输出到屏幕,格式要求:宽度为20个字符,减号字符-填充,右对齐,带千

位分隔符。如果输入正整数超过20位,则按照真实长度输出。

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

#输入一个字符,作为填充字符,打印一个字符串,并使得该字符串居中,且左右两侧填充该字符。
a =input("输入字符:")
s = "Python"
print("{:{}^30}".format( s,a))

格式化 : 填充 对齐 宽度 【千位分隔符 保留小数 其他】
减号字符-填充 –
左对齐 < 右对齐 > 居中 ^
带千位分隔符 ,
进制转换 二进制 b 八进制o 十六进制 x

2.数据容器操作

a和b是两个列表变量,列表a为[3,6,9]已给定,键盘输入列表b,将a列表的三个元素插入到b列表中对应的前三个元素的后面,并显示输出在屏幕上。

例如:键盘输入列表b为[1,2,3],因此,屏幕输出计算结果为[1,3,2,6,3,9]

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

按照小写字母a到z顺序组成包含26个学母的字符表,其中,第一个字符a序号为0,依次递增。程序获得用户输入的起始字母序号及连续输出字母的个数,分别记为变量h和w,以逗号隔开,并根据字符表输出从起始字母序号h开始的连续w个字母。

h,w = eval(input("请输入起始英文字母的序号和连续输出的个数,逗号隔开:"))
cstr = ''
for i in range(h,w):
    c = chr(ord('a')+h+i)
    print(c)
    cstr += c
print(cstr)

若m整除n,则m是n的因子。例如:9的因子有1、3、9。定义一个因子函数,用于求整数n的所有因子列表。用户输入一个整数n,调用该因子函数,输出整数n所有因子的列表;如果输入非法字符,则检测异常,输出“输入有误!”。

def allFactor(n):
    if n <=1: return [n]
    if n <=3: return [1,n]
    i=1
    rlist=[]
    while i <= n:
        if n % i == 0:
            rlist.append(i)
        i+=1
    return rlist

try:
    n=eval(input("请输入一个正整数:"))
    print("整数{}的因子是:{}".format(n,allFactor(n)))
except:
    print("输入错误!")

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

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

进阶题-标准库使用

random 随机生成

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

import random
random.seed(123) #随机种子
for i in range(10): 
print(random.randint(1,999), end=",")

jieba库

键盘输入一句话,用jieba分词后,将切分的词组按照在原话中逆序输出到屏幕上,词组中间没有空格

输入:我爱妈妈

输出:妈妈爱我

import jieba
txt = input("请输入一段中文文本:")
ls=jieba.lcut(txt)
for i in ls[::-1]:
    print(i,end='')

turtle 图形库

在屏幕上绘制正方形及其内接圆形。其中,正方形左下角坐标为(0,0),边长为黑色,长度200像素,线宽1像素,内切圆为绿色,线宽5像素,内部以红色填充。

import turtle as t
for i in range(4):
    t.fd(200)
    t.left(90)
t.penup()
t.goto(100,0)
t.pendown()
t.color("green","red")
t.pensize(5)
t.begin_fill()
t.pensize()
t.circle(100)
t.end_fill()
t.done()

已知turtle库的circle(r,steps=0)函数可以绘制多边形,其中r代表多边形的边长,steps代表多边形的边数,默认是0。使用turtle库的circle函数,在屏幕上绘制5个等距排列的多边形,边长50像素,颜色按顺序从颜色列表color中获取。最左边的五边形最低的顶点坐标是[-200,0],自左到右每个五边形的最低顶点间的距离是70像素。效果如下图所示。

import turtle as t
color = ['red','green','blue','orange','pink']
for i in range(5):
    t.penup()
    t.goto([-200+i*70,0])
    t.pendown()
    t.pencolor(color[i])
    t.circle(50, steps = 5)
t.done()

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

import turtle
turtle.right(-30)
turtle.fd(200)
turtle.right(60)
turtle.fd(200)
turtle.right(120)
turtle.fd(200)
turtle.right(60)
turtle.fd(200)
turtle.right(120)

键盘输入一组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一行,空行回车结束录入,示例格式如下:

张三 男 23

李四 女 21

王五 男 18

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

data = input()  # 姓名 年龄 性别
sumage=0
n=0
man=0
while data:
    ls=data.split(" ")
    n+=1
    
    sumage+=int(ls[2])
    if ls[1]=="男":
        man+=1
    data = input()

print("平均年龄是{:.2f} 男性人数是{}".format(sumage/n,man))

综合题

《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件,文件名为“命运. txt”。

问题1 (5分) :在PY301-1. py文件中修改代码,对“命运. txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号”:”分隔,示例格式如下:

理:224

f=open("命运.txt","r")
txt=f.read()
d = {}

for i in txt:
    if i not in ",。… !‘’”“  ":
        d[i]=d.get(i,0)+1



l=list(d.items())
l.sort(key=lambda x:x[1],reverse=True)

print("{}:{}".format(l[0][0],l[0][1]))
f.close()

问题2 (5分) :在PY301-2. py文件中修改代码,对“命运. txt”文件进行字符频次统计,按照频次由高到低,屏幕输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,示例格式如下:

理斯卫…(后略,共10个字符)

问题3 (10分) :在PY301-3. py文件中修改代码,对“命运. txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等符号,但不包含空格和回车。将排序后的字符及频次输出到考生文件夹下,文件名为“命运-频次排序. txt”。字符与频次之间采用英文冒号”:”分隔,各字符之间采用英文逗号”,”分隔,参考CSV格式, 最后无逗号,文件内部示例格式如下:

理:224,斯:120,卫:100

错题本

import jieba
s = input("请输入一个字符串")#俄罗斯举办世界杯
n = len(s)
m = len(jieba.lcut(s))
print("中文字符数为{},中文词语数为{}。".format(n, m))
#中文字符数为8,中文词语数为3。
txt = input("请输入类型序列: ")
t=txt.split()
d = {}
for i in range(len(t)):
    d[t[i]]=d.get(t[i],0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True)  # 按照数量排序
for k in ls:
    print("{}:{}".format(k[0], k[1]))

f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
f.close()
f=open("vote1.txt","w")
D={}
NUM=0
for vote in votes:
    num = len(vote.split())
    if num==1 and vote in names:
        D[vote[:-1]]=D.get(vote[:-1],0)+1
        NUM+=1
    else:
        f.write(vote)
f.close()        
l=list(D.items())
l.sort(key=lambda s:s[1],reverse =True)
name=l[0][0]
score=l[0][1]
print("有效票数为:{} 当选村长村民为:{},票数为:{}".format(NUM,name,score))


n = input()
s = "〇一二三四五六七八九"
for c in "0123456789":
     n=n.replace(c,s[int(c):int(c)+1])
print(n)
sumtime = 0
percls = []
ts = {}
with open('out.txt', 'r') as f:
        for i in f:
                
                i=i.split(',')
                ts [i[0]]=i[2]
                sumtime+=eval(i[1])


print('the total execute time is ', sumtime)

tns = list(ts.items())
tns.sort(key=lambda x: x[1], reverse=True)
for i in range(3):
    print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1],tns[i][0]))


n = eval(input("请输入一个整数:"))
for i in range(1,n):
    for j in range(1,n):
        if j>=i:
            print(j,end=" ")
    print()
import random
n=eval(input("获得用户输入的一个整数:"))
random.seed(100)
for i in range(1,11):
if i<10:
print(random.randint(1,n),end=',')
else:
print(random.randint(1,n))
h,w = eval(input("请输入起始英文字母的序号和连续输出的个数,逗号隔开:"))
cstr = ''
for i in range(w):
    c = chr(ord("a")+h +i)
    cstr += c
print(cstr)
def allFactor(n):
    if n <=1: return [n]
    if n <=3: return [1,n]
    i=1
    rlist=[]
    while i <= n:
        if n % i == 0:
            rlist.append(i)
        i+=1
    return rlist

try:
    n=eval(input("请输入一个正整数:"))
    print("整数{}的因子是:{}".format(n,allFactor(n)))
except:
    print("输入错误!")

import turtle as t
for i in range(4):
    t.fd(200)
    t.left(90)
t.penup()
t.goto(100,0)
t.pendown()
t.color("green","red")
t.pensize(5)
t.begin_fill()
t.circle(100)
t.end_fill()
t.done()
import turtle as t
color = ['red','green','blue','orange','pink']
for i in range(5):
    t.penup()
    t.goto(-200+i*70,0)
    t.pendown()
    t.pencolor(color[i])
    t.circle(50 , steps = 5)
t.done()
呈上拙作,望不吝赐教 --LM

评论

  1. Android Chrome
    3 月前
    2025-3-15 22:13:05

    今天开心嘛!

    • 博主
      Windows Edge
      3 月前
      2025-3-19 13:23:15

      不开心

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
隐藏
变装