计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
本文整理计算机二级 Python「基本操作题(15 分)」的常考题型与代码笔记。
编号说明 :
0101表示第 1 套第 1 题,0302表示第 3 套第 2 题,依此类推。每套 3 题,共整理 19 套(0101 ~ 1903)。

目录
- [第一套(0101 ~ 0103)](#第一套(0101 ~ 0103))
- [第二套(0201 ~ 0203)](#第二套(0201 ~ 0203))
- [第三套(0301 ~ 0303)](#第三套(0301 ~ 0303))
- [第四套(0401 ~ 0403)](#第四套(0401 ~ 0403))
- [第五套(0501 ~ 0503)](#第五套(0501 ~ 0503))
- [第六套(0601 ~ 0603)](#第六套(0601 ~ 0603))
- [第七套(0701 ~ 0703)](#第七套(0701 ~ 0703))
- [第八套(0801 ~ 0803)](#第八套(0801 ~ 0803))
- [第九套(0901 ~ 0903)](#第九套(0901 ~ 0903))
- [第十套(1001 ~ 1003)](#第十套(1001 ~ 1003))
- [第十一套(1101 ~ 1103)](#第十一套(1101 ~ 1103))
- [第十二套(1201 ~ 1203)](#第十二套(1201 ~ 1203))
- [第十三套(1301 ~ 1303)](#第十三套(1301 ~ 1303))
- [第十四套(1401 ~ 1403)](#第十四套(1401 ~ 1403))
- [第十五套(1501 ~ 1503)](#第十五套(1501 ~ 1503))
- [第十六套(1601 ~ 1603)](#第十六套(1601 ~ 1603))
- [第十七套(1701 ~ 1703)](#第十七套(1701 ~ 1703))
- [第十八套(1801 ~ 1803)](#第十八套(1801 ~ 1803))
- [第十九套(1901 ~ 1903)](#第十九套(1901 ~ 1903))
第一套(0101 ~ 0103)
0101
python
n = eval(input("请输入正整数:"))
print("{:->20,}".format(n)) #考点:->20,
考点 :
{:->20,}-------为填充字符,>右对齐,20为总输出宽度,,为千位分隔符。
0102
python
a = [3,6,9]
b = eval(input()) #例如:[1,2,3]
s = 0
for i in range((3)): #循环次数
s += a[i]*b[i]
print(s)
考点 :
eval(input())把输入的[1,2,3]直接转成列表;用range(3)控制循环次数;s += a[i]*b[i]累加两个列表的对应元素乘积。
0103
python
import random
random.seed(123) #随机数种子
for i in range(10):
print(random.randint(1,999), end=",") #随机数范围1-999
考点 :
random.seed()设置随机数种子固定随机序列;random.randint(1,999)产生[1,999]的随机整数;end=","控制输出不换行、以逗号分隔。
第二套(0201 ~ 0203)
0201
python
import random
brandlist = ['华为','苹果','诺基亚','OPPO','小米']
random.seed(0)
name= brandlist[random.randint(0,4)]
print(name)
考点 :用
random.randint(0,4)生成列表下标,再从列表中取值。
0202
python
import jieba
s = input("请输入一个字符串")
n = len(s)
m = len(jieba.lcut(s)) #jieba.lcut(s):jieba 精确模式分词,返回词语列表
print("中文字符数为{},中文词语数为{}。".format(n, m))
考点 :
jieba.lcut(s)精确模式分词返回词语列表;len(s)为字符数,len(jieba.lcut(s))为词语数。
0203
python
n = eval(input("请输入数量:"))
if n==1:
cost=n*160
elif 2<=n<=4:
cost=n*160*0.9
elif 5<=n<=9:
cost=n*160*0.8
elif 10<=n:
cost=n*160*0.7
print("总额为:",cost)
考点 :多分支
if / elif阶梯计价;连续比较2<=n<=4是 Python 特有写法。
第三套(0301 ~ 0303)
0301
python
ntxt = input("请输入4个数字(空格分隔):")
nls =ntxt.split() #split() 默认按空格切割字符串,返回列表。 没法识别数字需通过split来分割,成1个1个
x0 = eval(nls[0])
y0 = eval(nls[1])
x1 = eval(nls[2])
y1 = eval(nls[3])
r = pow(pow(x1-x0, 2) + pow(y1-y0, 2), 0.5) #pow(num, 0.5) 等价于求 num 的平方根
print("{:.2f}".format(r))
考点 :
split()默认按空格切割;eval()把字符串转数字;pow(num, 0.5)求平方根;{:.2f}保留 2 位小数。
0302
python
import jieba
txt = input("请输入一段中文文本:")
ls =jieba.lcut(txt) #对中文做分词,返回词语列表,lcut需要调用参数值
print("{:.1f}".format(len(txt)/len(ls)))
考点 :平均词长 = 字符数 / 词语数;
{:.1f}保留 1 位小数。
0303
python
n = eval(input("请输入一个数字:"))
print("{:+^11}".format(chr(n-1)+chr(n)+chr(n+1)))
# :+^11 +:填充字符 ^:居中对齐 11:总输出宽度
# chr(n‑1)+chr(n)+chr(n+1):把 3 个 Unicode 编码分别转为字符,字符串+拼接在一起。
考点 :
chr()编码转字符;{:+^11}中+为填充字符、^居中对齐、11总宽度。
第四套(0401 ~ 0403)
0401
python
s = input("请输入一个字符串:")
print("{:=^20}".format(s))
考点 :
{:=^20}------=填充、居中、总宽 20。
0402
python
a, b = 0, 1
while a<=100: #只输出不大于 100 的项,a 超过 100 直接退出。 背一下
print(a, end=',')
a, b = b,a+b #斐波那契双变量迭代:a,b = b, a+b 前两项之和等于后一先
考点 :斐波那契双变量迭代
a, b = b, a+b;end=','不换行输出。
0403
python
import jieba
txt = input("请输入一段中文文本:")
ls = jieba.lcut(txt)
for i in ls[::-1]:
print(i, end="")
# import jieba 导入分词库
# txt = input(...) 获取输入字符串
# ls = jieba.lcut(txt) 精确分词,返回词语列表
# "我爱妈妈" → ls = ['我','爱','妈妈']
# ls[::-1] 列表切片,逆序(反转列表)
# 切片语法 [起始:结束:步长],步长=-1代表倒着取全部元素。
# ls[::-1] → ['妈妈','爱','我']
# for i in ls[::-1]: 循环遍历逆序后的每一个词语
# print(i, end="")
# end="":打印完一个词不换行、不加任何符号,词语直接拼接在一起输出。
# 如果写成默认print(i),每个词会各占一行;end=" "会词语中间带空格,都不符合题目。
考点 :
ls[::-1]列表切片逆序;end=""取消换行实现拼接输出。
第五套(0501 ~ 0503)
0501
python
n = eval(input("请输入正整数:"))
print("{:*>15}".format(n))
考点 :
{:*>15}------*填充、右对齐、总宽 15。
0502
python
a = [3,6,9]
b = eval(input()) #例如:[1,2,3]
c = []
for i in range(3):
c.append(a[i]+b[i])
print(c)
考点 :空列表 +
append()逐个追加两列表对应元素之和。
0503
python
#以0为随机数种子,随机生成5个在1(含)到97(含)之间的随机数,计算这五个随机数的平方和。
import random
random.seed(0) #随机树种子
s = 0
for i in range(5):
n = random.randint(1,97) # 产生随机数
s = s+n**2 #等价的n*n=n**2
print(s)
考点 :
seed(0)+randint(1,97);n**2求平方。
第六套(0601 ~ 0603)
0601
python
n = eval(input("请输入正整数:"))
print("{:=^14}".format(n))
考点 :
{:=^14}------=填充、居中、总宽 14。
0602(有点难度)
python
#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())
j=1
for i in range(len(a)): #循环次数
b.insert(j,a[i]) # 在列表b的索引j位置,插入a的第i个元素。insert(索引,要插入的值) 背注意
j+=2 # j = j + 2,下一次插入位置往后挪2位
print(b)
考点 :
b.insert(j, a[i])在指定索引处插入元素;每次插入后索引j += 2后移。
0603
python
import random
random.seed(100) # 此处可多行
s = 0 #
for i in range(3):
n=random.randint(1,9) #注意需要定义有一个n来存放随机数
s=s+n**3 # 此处可多行
print(s)
考点 :必须先用变量接收随机数再计算;
n**3求立方。
第七套(0701 ~ 0703)
0701
python
s = input()
print("{:=>25,}".format(eval(s))) #eval(s):把输入的字符串转成数字。输入12345 → 数字 12345
考点 :
eval(s)把字符串转数字;{:=>25,}中=填充、右对齐、总宽 25、千位分隔。
0702
python
s = input()
print(s[::-1],end="") #s[::-1]逆序输出,end=""不换行输出
print(len(s))
考点 :字符串切片
s[::-1]逆序;len(s)求长度。
0703
python
#获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始数值,b为差,c为数值的数量,产生一个递增的等差数列,将这个数列以列表格式输出
a, b, c = eval(input()) #input输入数字,eval转为字符转为数字
ls = []
for i in range(c):
ls.append(a+b*i) # #等差数列通项公式:第i项 = 首项a + 公差b × i;把计算结果追加进列表ls
print(ls)
考点 :
a, b, c = eval(input())一次解包赋值;等差数列通项a + b*i。
第八套(0801 ~ 0803)
0801
python
s = input()
print("{:\"^30x}".format(eval(s)))
# : 格式说明符开始
# \" 指定填充字符为双引号(需要转义)
# ^ 居中对齐
# 30 总宽度 30
# x 十六进制小写
考点 :填充字符本身是双引号时需转义
\";x表示输出小写十六进制。
0802(有点难度)
python
n = input()
s = "〇一二三四五六七八九"
for c in "0123456789":
n = n.replace(c, s[int(c)])
print(n)
# n = n.replace(c, s[int(c)])
# int(c):字符 c 转数字,比如c='0' → 0
# s[int(c)]:取出对应的中文,s [0] 就是〇
# replace:把 n 中所有c字符替换成中文;再重新赋值给 n
考点 :
str.replace()字符替换;int(c)转数字后作为下标取出中文数字。
0803
python
a, b, c =eval(input())
ls = []
for i in range(c):
ls.append(str(a*(b**i))) #等比数列公式,首项(题目变量 a),公比(题目变量 b)i:序号,
print(",".join(ls)) #.join() 只能拼接字符串 str():直接 append 数字,运行报错!join只能处理字符串
考点 :等比数列通项
a * b**i;",".join(ls)只能拼接字符串,追加时需str()转换。
第九套(0901 ~ 0903)
0901(有点难度)
python
#程序接收用户输入的五个数,以逗号分隔。将这些数字按照输入顺序输出,每个数字占10个字符宽度,右对齐,所有数字显示在同一行
num = input().split(',') #按逗号,分割字符串,返回字符串列表
for i in num:
print("{:>10}".format(i),end="") #考点背一下
# {:>10}:占 10 个字符宽度,内容右对齐,左边补空格
# end="":print 默认会换行;end="" 取消换行,所有内容打印在同一行
考点 :
split(',')按逗号切分;{:>10}右对齐定宽输出;end=""同一行输出。
0902(有点小难)
python
# 在考生文件夹下有个文件PY102.py,在横线处填写代码,完成如下功能。
# 社会平均工作时间是每天8小时(不区分工作日和休息日),一位计算机科学家接受记者采访时说,
# 他每天工作时间比社会平均工作时间多3小时。如果这位科学家的当下成就值是1,
# 假设每工作1个小时成就值增加0.01%,计算并输出两个结果:这位科学家5年后的成就值,
# 以及达到成就值100所需要的年数。其中,成就值和年数都以整数表示,每年以365天计算。
scale = 0.0001 # 成就值增量
def calv(base, day):
val = base * pow((1 + scale), day * 11) #考点 (1 + scale), day * 11
return val
print('5年后的成就值是{}'.format(int(calv(1, 5 * 365))))
year = 1
while calv(1, year * 365) < 100: #考点 year * 365
year += 1
print('{}年后成就值是100'.format(year))
考点 :自定义函数 +
pow((1+scale), day*11)幂运算;while循环累计年份直到成就值达到 100。
0903
python
while True:
try:
a = eval(input('请输入一个正整数: '))
if a > 0 and type(a)==int: #数字类型要为int type(a)==int 书写格式
print(a)
break
else:
print("请输入正整数")
except:
print("请输入正整数")
##学到这里了 下面的也学完了
考点 :
while True+try/except异常处理;type(a)==int判断整数类型。
第十套(1001 ~ 1003)
1001(有点小难)
python
n = input('请输入一个正整数:')
for i in range(int(n)): #考点1
print('{:0>2}{}'.format(i+1, ">"*(i+1))) #考点2
考点 :
range(int(n))中input()是字符串需转 int;{:0>2}用0补足 2 位、右对齐;">"*(i+1)字符串重复拼接。
1002
python
ns = input("请输入一串数据:")
dnum,dchr = 0,0 #考点
for i in ns:
if i.isnumeric():
dnum += 1 #考点
elif i.isalpha():
dchr += 1 #考点
else:
pass
print('数字个数:{},字母个数:{}'.format(dnum,dchr)) #考点
考点 :
str.isnumeric()判断数字字符,str.isalpha()判断字母字符,两者配合计数。
1003
python
std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{}, 你的考试成绩是: 英语{}, 数学{}, Python语言{}, 总成绩{}.特此通知."
for st in std:
cnt = 0
for i in range(3):
cnt += st[i+1]
print(modl.format(st[0],st[1],st[2],st[3],cnt))
考点 :二维列表遍历;
st[i+1]取出成绩累加求总成绩;format()按顺序填充模板。
第十一套(1101 ~ 1103)
1101
python
s = input("请输入一个正整数: ")
cs=0 #考点1
for c in s:
cs += eval(c) #考点2
print('{:=^25}'.format(cs)) #考点3
考点 :遍历字符串逐位
eval(c)转数字累加求各位数字之和;{:=^25}居中定宽输出。
1102
python
s = input("请输入中文和字母的组合: ")
count=0 #考点
for c in s:
if '\u4e00<=c<=u9fff': #中文字符的表示范围
count += 1
print(count)
考点 :中文字符 Unicode 范围为
\u4e00~\u9fff,判断写法应为'\u4e00' <= c <= '\u9fff'。
1103
python
s = input("请输入一组数据: ")
ls = s.split(',') #考点一
lt = []
for i in ls:
lt.append(eval(i)) #考点二
print(max(lt))
考点 :
split(',')切分得到字符串列表;eval()逐项转成数字,再用max()求最大值。
第十二套(1201 ~ 1203)
1201
python
s = input("请输入一个小数: ")
s = s[::-1]
cs =0 #考点1
for c in s:
if c == '.':
break #考点2
cs += eval(c)
print('{:*>10}'.format(cs)) #考点三
考点 :先逆序,遇到小数点
break退出,统计小数部分各位数字之和;{:*>10}右对齐定宽。
1202
python
import time
t = input("请输入一个浮点数时间信息: ")
s = time.ctime(float(t)) #考点一
ls = s.split()
print(ls[3][0:2]) #考点二ls[3][0:2]注意
考点 :
time.ctime(float(t))把浮点数时间转为可读时间字符串;切分后取ls[3][0:2]得到小时部分。
1203
python
import random
s = input("请输入随机种子: ")
ls = []
for i in range(26):
ls.append(chr(ord('a') + i))
for i in range(10):
ls.append(chr(ord('0') + i)) #考点1
random.seed(eval(s)) #考点3
for i in range(10):
for j in range(8):
print(random.choice(ls), end='') #考点2 random.choice(ls)从ls中随机抽取出一个字符
print()
考点 :
chr(ord('a')+i)生成连续字符;random.choice(ls)从序列中随机抽取一个字符;seed()+ 双层循环生成 10 行 8 列字符。
第十三套(1301 ~ 1303)
1301
python
ls = eval(input())
s = ""
for item in ls:
if type(item) == type("香山"): #type(item)考点一
s += item #注意item考点二
print(s)
考点 :
type(item) == type("香山")判断元素是否为字符串类型。
1302
python
import random
random.seed(25)
n = random.randint(1,100) #考点1
for m in range(1,7):
x = eval(input("请输入猜测数字:"))
if x == n:
print("恭喜你,猜对了!")
break
elif x>n: #考点2
print("大了,再试试")
else:
print("小了,再试试")
if m==6: #考点3注意m
print("谢谢!请休息后再猜")
考点 :猜数字小游戏,最多猜 6 次;用
m==6判断次数是否用完。
1303
python
def f(n):
s=0 #考点1
if n%2==1: #考点2 n%2==1判断为偶数
for i in range(1, n+1, 2):
s += 1/i
else:
for i in range(2, n+1, 2):
s += 1/i
return s
n = int(input())
print("{:.2f}".format(f(n))) #考点3保留2f小数,format(f(n)),注意f(n)
考点 :
%2==1判断奇数;range(1, n+1, 2)步长为 2 只取奇数;奇数时和偶数时取不同的循环起点;最后保留 2 位小数。
第十四套(1401 ~ 1403)
1401
python
# 获得用户输入的一个整数n,输出一个n-1行的数字三角形阵列。该阵列每行包含的整数序列为从该行序号开始到n-1,例如第1行包含1到n-1的整数,第i行包含从i到n-1的整数;数字之间用英文空格分隔。
n = eval(input("请输入一个整数:"))
for i in range(1,n):
for j in range(1,n):
if j>=i: #考点1背
print(j,end='') #考点2背
print()
考点 :嵌套循环 + 条件
j>=i输出下三角;end=''同行输出,外层print()换行。
1402
python
s=input("请输入5个小写字母:")
s=s.upper() #小写字母变为大写 考点1
print(','.join(s[::-1])) #输出为逆序 考点2
考点 :
s.upper()转大写;s[::-1]逆序;','.join()用逗号连接字符串。
1403
python
import random
n = eval(input('请输入一个整数:')) #考点1
random.seed(100)
for i in range(1,11):
if i<10:
print(random.randint(1,n),end=',') #考点1
else:
print(random.randint(1,n))
考点 :循环 10 次输出随机数,前 9 个用全角逗号分隔、最后一个用
print()默认换行收尾。
第十五套(1501 ~ 1503)
1501(注意审题)
python
#让用户输入一个符号作为填充字符,将PYTHON字符串以30字符宽、居中、其余部分以填充字符的形式格式化输出。
a = input("请输入填充符号:")
s = "PYTHON"
print("{:{}^30}".format(s,a))
考点 :填充字符本身也是由参数传入时,写成
{:{}^30},即用{}占位接收填充字符。
1502(有点难 01)
python
myinput = input("请输入:")
ls = myinput.split(",") # (1)空
s = 0
for c in ls:
if c.strip(" ").isdigit():
s += eval(c) # (2)空 也可以写成 s = s + eval(c)
print("数字和是:" + str(s))
# 第 (1) 空:myinput.split(",")
# split(','):用英文逗号把输入字符串切分成列表。
# 示例输入 1,海淀区,ab,56,3,中关村,分割后得到列表:['1','海淀区','ab','56','3','中关村']。
# 第 (2) 空:s += eval(c)
# 循环遍历列表里每一项c;isdigit()判断这个字符串是不是纯数字。
# 如果是数字字符串,eval(c)把字符串转成数字,累加到s上。
# s += eval(c)等价于 s = s + eval(c),两种写法都可以得分
# 获取一个由英文逗号、字母、汉字、数字字符组成的输入,计算该输入中所有数字的和,并输出。
# 示例如下:
# 输入:1,海淀区,ab,56,3,中关村
# 输出:数字和是:60
考点 :
split(",")切分;str.strip(" ").isdigit()判断是否纯数字;s += eval(c)累加数字和。
1503(有点难 01)
python
f = open("data1.txt") # (1)空
ls = []
for line in f:
for c in line:
if c not in ls: # (2)空
ls.append(c)
f.close()
print(len(ls))
考点 :文件遍历
for line in f;if c not in ls去重后统计不重复字符个数。
第十六套(1601 ~ 1603)
1601
python
f=eval(input("请输入一个浮点数:"))
print("浮点数是:{:>10.2f}".format(f)) #背一下保留2位小数
考点 :
{:>10.2f}右对齐、总宽 10、保留 2 位小数。
1602(有点难 01)
python
h,w = eval(input("请输入起始英文字母的序号和连续输出的个数,逗号隔开:"))
cstr = ''
for i in range(w): #W背
c = chr(ord('a')+h+i) #考点
cstr += c
print(cstr)
考点 :
chr(ord('a') + h + i)按序号生成连续小写字母;字符串累加拼接。
1603(有点难 01)
python
import random as r # 导入random库,起别名r
r.seed(1) # 设置随机种子=1,固定随机序列,保证每次运行生成一样的随机数(考试必考点)
s=input("请输入三个整数n,m,k: ") # 获取用户输入字符串,如输入:5,2,10
slist=s.split(",") # 用逗号分割字符串,得到列表 ['5','2','10']
# 把列表里的字符串转为数字,依次赋值n,m,k
n,m,k = eval(slist[0]),eval(slist[1]),eval(slist[2])
for i in range(n): # 循环n次
print(r.randint(k,m)) # 生成 [k,m]之间的随机整数并打印
考点 :
import random as r起别名;seed()固定随机序列;randint(k,m)注意参数顺序。
第十七套(1701 ~ 1703)
1701(有点难 01)
python
# 获得用户输入的一个由姓名、年龄字符串组成的若干学生信息,
# 学生信息之间用英文逗号分隔,将输入的学生信息输出,每个信息一行,
# 将姓名和年龄用英文逗号分隔第一行输出姓名、年龄标题信息。
sinfo=input()
info_list = sinfo.split(',') # 按逗号切分为列表
print("姓名,年龄")
for strname in info_list:
sname=strname[:-2] # 取字符串【除最后2个字符以外】的前面所有字符,作为姓名
sage = strname[-2:] # 取字符串【最后2个字符】,作为年龄
print("{},{}".format(sname,sage))
考点 :字符串切片
[:-2]取姓名、[-2:]取年龄;format()拼接输出。
1702(有点难 01)
python
import random
random.seed(20)
sum=0
for i in range(10):
n = random.randint(1, 20) # 生成 [1,20] 的随机整数
sum+=n
print("第{}个数:{}".format(i, n)) # 输出当前随机数
print("10个随机数的平均数是:{}".format(round(sum/10,1)))
考点 :累加求和;
round(sum/10, 1)保留 1 位小数。
1703(有点难 02)
python
def allFactor(n):
if n <=1: return [n]
if n <=3: return [1,n]
i=1
rlist = [] # 创建空列表,用于保存因子数。 考点一背就行
while i <= n:
if n % i == 0: # 如果n能被i整除,i就是n的因子
rlist.append(i)
i += 1 # 递增变量,以判断下一个数值是否为因子。 考点二背就行
return rlist
try:
n=eval(input("请输入一个正整数:"))
print("整数{}的因子是:{}".format(n,allFactor(n)))
except:
print("输入错误!")
考点 :求因子用
n % i == 0判断整除并append;i += 1递增遍历;try/except捕获输入错误。
第十八套(1801 ~ 1803)
1801
python
# 获得用户输入的一个长度小于20的英文单词,以20字符宽居中输出这个单词。
# 第一行输出20个"="符号,第二行和第一行宽度一致,左右两边输出"|",单词居中,其他位置用"*"填充。
f = input("请输入一个单词:")
print("{}".format("====================")) # 20个=
print("|{:*^18}|".format(f)) #居中填充*,总宽度18
考点 :两行宽度需一致,第二行左右各一个
|占 2 个字符,所以中间宽度为 18({:*^18})。
1802(有点难 01)
python
def vfun(x,b):
for i in b: #遍历列表b中所有元素
x += int(i) #字符串元素转整数,累加到x
return x
lc = input().split(",") #按逗号分割输入,得到字符串列表
print(vfun(10,lc))
考点 :形参接收列表,遍历时用
int(i)把字符串元素转成整数再累加。
1803(有点难 01)
python
ss = input("请输入一个字符串: ")
for s in ss:
if s.isalpha(): #利用isalpha函数来判断是否为字母
print(s.upper(),end="") #转大写,不换行输出
else:
continue #不是字母,跳过本次循环
考点 :
isalpha()过滤字母;s.upper()转大写;end=""不换行输出。
第十九套(1901 ~ 1903)
1901
python
# 请用户输入一个整数作为圆的半径,计算圆的面积。
# 将半径和面积显示在屏幕上。
# 半径以浮点数方式居中显示,小数点后2位,总宽度为10,空白处以 "=" 填充;
# 圆的面积以得点数方式右对齐显示,小数点后2位,总宽度为10,空白处以 "*" 填充。
pi= 3.14159
r = eval(input("请输入半经"))
print("圆的半径是{:=^10.2f},面积是{:*>10.2f}".format(r, pi * r * r))
考点 :同一句
format()中同时使用{:=^10.2f}(居中填充=)与{:*>10.2f}(右对齐填充*)。
1902
python
# 请用户输入2~5个整数,用英文逗号连接。将输入的数计算平均值,将数据与结果显示在屏幕上。
ls = eval(input())
print("输入是:{},平均数是:{}".format(ls,sum(ls)/len(ls)))
考点 :
eval(input())直接得到列表;sum(ls)/len(ls)求平均值。
1903(有点难)
python
a, i = 0, 0
ss = input("请输入字符串: ")
for c in ss:
if "a"<=c<="z": # 判断是不是小写英文字母
i=i+1
else:
break # 一旦遇到非小写字母,立刻跳出循环
if i < len(ss):
print("不全是英文字母", ss[i])
else:
print("全部都是英文字母")
考点 :
"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("") |