计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)

计算机二级 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+bend=',' 不换行输出。

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 fif 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 判断整除并 appendi += 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 ff.close()
异常 try / exceptwhile True
其他 pow(x, 0.5) 开方、%2==1 判奇、type(x)==type("")
相关推荐
weixin199701080161 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
滚雪球~2 小时前
量化交易 防止Windows电脑自动更新并重启
python·量化
L@ncor3 小时前
第二章可能出现的问题
人工智能·python
y = xⁿ3 小时前
大模型基础概念
python
ctlover3 小时前
排序与查找算法详解
开发语言·python
用户8356290780513 小时前
如何使用 Python 给 Word 文档添加水印
后端·python
泡干脆面就番茄4 小时前
深度学习:PyTorch框架初识——MNIST手写数字识别
python·深度学习
shirsl4 小时前
算法 Day 5 树 / 二叉树 + DFS
数据结构·python·算法
门思科技4 小时前
开源网关有哪些:主流类型梳理
网络·python·物联网