计算机二级 Python 基本操作题(15分)真题笔记(0101~1903 全套)
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
本文整理计算机二级 Python「基本操作题(15 分)」的常考题型与代码笔记。 编号说明:0101 表示第 1 套第 1 题,0302 表示第 3 套第 2 题,依此类推。 每套 3 题,共整理 19 套(0101 ~ 1903)。
目录
- 第一套(0101 ~ 0103)+ 第二套(0201 ~ 0203)+ 第三套(0301 ~ 0303)+ 第四套(0401 ~ 0403)+ 第五套(0501 ~ 0503)+ 第六套(0601 ~ 0603)+ 第七套(0701 ~ 0703)+ 第八套(0801 ~ 0803)+ 第九套(0901 ~ 0903)+ 第十套(1001 ~ 1003)+ 第十一套(1101 ~ 1103)+ 第十二套(1201 ~ 1203)+ 第十三套(1301 ~ 1303)+ 第十四套(1401 ~ 1403)+ 第十五套(1501 ~ 1503)+ 第十六套(1601 ~ 1603)+ 第十七套(1701 ~ 1703)+ 第十八套(1801 ~ 1803)+ 第十九套(1901 ~ 1903)
第一套(0101 ~ 0103)
0101
1 | n = eval(input("请输入正整数:")) |
考点:{:->20,} —— - 为填充字符,> 右对齐,20 为总输出宽度,, 为千位分隔符。
0102
1 | a = [3,6,9] |
考点:eval(input()) 把输入的 [1,2,3] 直接转成列表;用 range(3) 控制循环次数;s += a[i]*b[i] 累加两个列表的对应元素乘积。
0103
1 | import random |
考点:random.seed() 设置随机数种子固定随机序列;random.randint(1,999) 产生 [1,999] 的随机整数;end="," 控制输出不换行、以逗号分隔。
第二套(0201 ~ 0203)
0201
1 | import random |
考点:用 random.randint(0,4) 生成列表下标,再从列表中取值。
0202
1 | import jieba |
考点:jieba.lcut(s) 精确模式分词返回词语列表;len(s) 为字符数,len(jieba.lcut(s)) 为词语数。
0203
1 | n = eval(input("请输入数量:")) |
考点:多分支 if / elif 阶梯计价;连续比较 2<=n<=4 是 Python 特有写法。
第三套(0301 ~ 0303)
0301
1 | ntxt = input("请输入4个数字(空格分隔):") |
考点:split() 默认按空格切割;eval() 把字符串转数字;pow(num, 0.5) 求平方根;{:.2f} 保留 2 位小数。
0302
1 | import jieba |
考点:平均词长 = 字符数 / 词语数;{:.1f} 保留 1 位小数。
0303
1 | n = eval(input("请输入一个数字:")) |
考点:chr() 编码转字符;{:+^11} 中 + 为填充字符、^ 居中对齐、11 总宽度。
第四套(0401 ~ 0403)
0401
1 | s = input("请输入一个字符串:") |
考点:{:=^20} —— = 填充、居中、总宽 20。
0402
1 | a, b = 0, 1 |
考点:斐波那契双变量迭代 a, b = b, a+b;end=',' 不换行输出。
0403
1 | import jieba |
考点:ls[::-1] 列表切片逆序;end="" 取消换行实现拼接输出。
第五套(0501 ~ 0503)
0501
1 | n = eval(input("请输入正整数:")) |
考点:{:*>15} —— * 填充、右对齐、总宽 15。
0502
1 | a = [3,6,9] |
考点:空列表 + append() 逐个追加两列表对应元素之和。
0503
1 | #以0为随机数种子,随机生成5个在1(含)到97(含)之间的随机数,计算这五个随机数的平方和。 |
考点:seed(0) + randint(1,97);n**2 求平方。
第六套(0601 ~ 0603)
0601
1 | n = eval(input("请输入正整数:")) |
考点:{:=^14} —— = 填充、居中、总宽 14。
0602(有点难度)
1 | #a和b是两个列表变量,列表a为[3,6,9]已给定,键盘输入列表b,将a列表的三个元素插入到b列表中对应的前三个元素的后面,并显示输出在屏幕上。 |
考点:b.insert(j, a[i]) 在指定索引处插入元素;每次插入后索引 j += 2 后移。
0603
1 | import random |
考点:必须先用变量接收随机数再计算;n**3 求立方。
第七套(0701 ~ 0703)
0701
1 | s = input() |
考点:eval(s) 把字符串转数字;{:=>25,} 中 = 填充、右对齐、总宽 25、千位分隔。
0702
1 | s = input() |
考点:字符串切片 s[::-1] 逆序;len(s) 求长度。
0703
1 | #获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始数值,b为差,c为数值的数量,产生一个递增的等差数列,将这个数列以列表格式输出 |
考点:a, b, c = eval(input()) 一次解包赋值;等差数列通项 a + b*i。
第八套(0801 ~ 0803)
0801
1 | s = input() |
考点:填充字符本身是双引号时需转义 \";x 表示输出小写十六进制。
0802(有点难度)
1 | n = input() |
考点:str.replace() 字符替换;int(c) 转数字后作为下标取出中文数字。
0803
1 | a, b, c =eval(input()) |
考点:等比数列通项 a * b**i;",".join(ls) 只能拼接字符串,追加时需 str() 转换。
第九套(0901 ~ 0903)
0901(有点难度)
1 | #程序接收用户输入的五个数,以逗号分隔。将这些数字按照输入顺序输出,每个数字占10个字符宽度,右对齐,所有数字显示在同一行 |
考点:split(',') 按逗号切分;{:>10} 右对齐定宽输出;end="" 同一行输出。
0902(有点小难)
1 | # 在考生文件夹下有个文件PY102.py,在横线处填写代码,完成如下功能。 |
考点:自定义函数 + pow((1+scale), day*11) 幂运算;while 循环累计年份直到成就值达到 100。
0903
1 | while True: |
考点:while True + try/except 异常处理;type(a)==int 判断整数类型。
第十套(1001 ~ 1003)
1001(有点小难)
1 | n = input('请输入一个正整数:') |
考点:range(int(n)) 中 input() 是字符串需转 int;{:0>2} 用 0 补足 2 位、右对齐;">"*(i+1) 字符串重复拼接。
1002
1 | ns = input("请输入一串数据:") |
考点:str.isnumeric() 判断数字字符,str.isalpha() 判断字母字符,两者配合计数。
1003
1 | std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]] |
考点:二维列表遍历;st[i+1] 取出成绩累加求总成绩;format() 按顺序填充模板。
第十一套(1101 ~ 1103)
1101
1 | s = input("请输入一个正整数: ") |
考点:遍历字符串逐位 eval(c) 转数字累加求各位数字之和;{:=^25} 居中定宽输出。
1102
1 | s = input("请输入中文和字母的组合: ") |
考点:中文字符 Unicode 范围为 \u4e00 ~ \u9fff,判断写法应为 '\u4e00' <= c <= '\u9fff'。
1103
1 | s = input("请输入一组数据: ") |
考点:split(',') 切分得到字符串列表;eval() 逐项转成数字,再用 max() 求最大值。
第十二套(1201 ~ 1203)
1201
1 | s = input("请输入一个小数: ") |
考点:先逆序,遇到小数点 break 退出,统计小数部分各位数字之和;{:*>10} 右对齐定宽。
1202
1 | import time |
考点:time.ctime(float(t)) 把浮点数时间转为可读时间字符串;切分后取 ls[3][0:2] 得到小时部分。
1203
1 | import random |
考点:chr(ord('a')+i) 生成连续字符;random.choice(ls) 从序列中随机抽取一个字符;seed() + 双层循环生成 10 行 8 列字符。
第十三套(1301 ~ 1303)
1301
1 | ls = eval(input()) |
考点:type(item) == type("香山") 判断元素是否为字符串类型。
1302
1 | import random |
考点:猜数字小游戏,最多猜 6 次;用 m==6 判断次数是否用完。
1303
1 | def f(n): |
考点:%2==1 判断奇数;range(1, n+1, 2) 步长为 2 只取奇数;奇数时和偶数时取不同的循环起点;最后保留 2 位小数。
第十四套(1401 ~ 1403)
1401
1 | # 获得用户输入的一个整数n,输出一个n-1行的数字三角形阵列。该阵列每行包含的整数序列为从该行序号开始到n-1,例如第1行包含1到n-1的整数,第i行包含从i到n-1的整数;数字之间用英文空格分隔。 |
考点:嵌套循环 + 条件 j>=i 输出下三角;end='' 同行输出,外层 print() 换行。
1402
1 | s=input("请输入5个小写字母:") |
考点:s.upper() 转大写;s[::-1] 逆序;','.join() 用逗号连接字符串。
1403
1 | import random |
考点:循环 10 次输出随机数,前 9 个用全角逗号分隔、最后一个用 print() 默认换行收尾。
第十五套(1501 ~ 1503)
1501(注意审题)
1 | #让用户输入一个符号作为填充字符,将PYTHON字符串以30字符宽、居中、其余部分以填充字符的形式格式化输出。 |
考点:填充字符本身也是由参数传入时,写成 {:{}^30},即用 {} 占位接收填充字符。
1502(有点难 01)
1 | myinput = input("请输入:") |
考点:split(",") 切分;str.strip(" ").isdigit() 判断是否纯数字;s += eval(c) 累加数字和。
1503(有点难 01)
1 | f = open("data1.txt") # (1)空 |
考点:文件遍历 for line in f;if c not in ls 去重后统计不重复字符个数。
第十六套(1601 ~ 1603)
1601
1 | f=eval(input("请输入一个浮点数:")) |
考点:{:>10.2f} 右对齐、总宽 10、保留 2 位小数。
1602(有点难 01)
1 | h,w = eval(input("请输入起始英文字母的序号和连续输出的个数,逗号隔开:")) |
考点:chr(ord('a') + h + i) 按序号生成连续小写字母;字符串累加拼接。
1603(有点难 01)
1 | import random as r # 导入random库,起别名r |
考点:import random as r 起别名;seed() 固定随机序列;randint(k,m) 注意参数顺序。
第十七套(1701 ~ 1703)
1701(有点难 01)
1 | # 获得用户输入的一个由姓名、年龄字符串组成的若干学生信息, |
考点:字符串切片 [:-2] 取姓名、[-2:] 取年龄;format() 拼接输出。
1702(有点难 01)
1 | import random |
考点:累加求和;round(sum/10, 1) 保留 1 位小数。
1703(有点难 02)
1 | def allFactor(n): |
考点:求因子用 n % i == 0 判断整除并 append;i += 1 递增遍历;try/except 捕获输入错误。
第十八套(1801 ~ 1803)
1801
1 | # 获得用户输入的一个长度小于20的英文单词,以20字符宽居中输出这个单词。 |
考点:两行宽度需一致,第二行左右各一个 | 占 2 个字符,所以中间宽度为 18({:*^18})。
1802(有点难 01)
1 | def vfun(x,b): |
考点:形参接收列表,遍历时用 int(i) 把字符串元素转成整数再累加。
1803(有点难 01)
1 | ss = input("请输入一个字符串: ") |
考点:isalpha() 过滤字母;s.upper() 转大写;end="" 不换行输出。
第十九套(1901 ~ 1903)
1901
1 | # 请用户输入一个整数作为圆的半径,计算圆的面积。 |
考点:同一句 format() 中同时使用 {:=^10.2f}(居中填充 =)与 {:*>10.2f}(右对齐填充 *)。
1902
1 | # 请用户输入2~5个整数,用英文逗号连接。将输入的数计算平均值,将数据与结果显示在屏幕上。 |
考点:eval(input()) 直接得到列表;sum(ls)/len(ls) 求平均值。
1903(有点难)
1 | a, i = 0, 0 |
考点:"a" <= c <= "z" 判断小写字母;用 i 记录小写字母个数,break 后通过 i < len(ss) 判断是否中途退出循环。
总结 · 高频考点速查
考点写法定宽格式化{:->20,}、{:=^20}、{:*>15}、{:+^11}、{:{ }^30}小数位数{:.2f}、{:.1f}、{:>10.2f}、round(x, 1)进制/编码chr()、ord()、{:x}随机数random.seed()、random.randint(a,b)、random.choice(ls)、import random as r字符串split()、strip()、replace()、upper()、isalpha()、isnumeric()、isdigit()、[::-1]、join()列表append()、insert(j, x)、max()、sum()、切片逆序中文分词jieba.lcut(s)时间time.ctime()、float()文件open()、for line in f、f.close()异常try / except、while True其他pow(x, 0.5) 开方、%2==1 判奇、type(x)==type("")






