计算机二级python基础题刷题笔记

1.关于format格式化输出

:引导符号(必须有)

<填充>:用于填充的单个字符,比如"=","+"

<对齐>:<左对齐,>右对齐,^居中对齐

<宽度>:槽的设定,输出宽度

<,>:数字的千位分隔符适用于整数和浮点数

<.精度>:浮点数小数部分的精度或字符串的最大输出长度

<类型>:整数类型b,c,d,o,x,X浮点数类型e,E,f,%

b 表示二进制(binary),例如:0b1010 表示十进制的 10;

c 通常不作为整数类型的前缀;

d 表示十进制(decimal),例如:123 表示十进制的 123;

o 表示八进制(octal),例如:0o123 表示十进制的 83;

x 表示十六进制(lowercase hexadecimal),例如:0x1a 表示十进制的 26;

X 表示十六进制(uppercase hexadecimal),例如:0X1A 表示十进制的 26。

1、键盘输入正整数n,按要求把n输入到屏幕,格式要求:宽度为14个字符,数字中间对齐,不足部分用=填充。

python 复制代码
n=eval(input())
print("{:=^14}".format(n))

2、获得用户输入的一个数字,对该数字以30字符宽度,十六进制,居中输出,字母小写,对于字符采用双引号(")填充

python 复制代码
s=input()
print("{:\"^30x}".format(eval(s)))

!注意这里的一个坑,采用双引号(")填充时如果直接填"则会发现报错,因为python会把它当成一个字符串,所以如果字符串中需要包含双引号字符,可以使用转义字符 \ 来表示

2、列表相加减

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

len(ls):列表ls的元素个数

list(x):将x转变成列表类型

ls.append(x):在列表ls最后增加一个元素x

ls.insert(i,x):在列表ls第i位置增加元素x

python 复制代码
a=[3,6,9]
b=eval(input())
j=1
for i in range(len(a)):
    b.insert(j,a[i])
    j+=2
print(b)

2、获得用户输入的以逗号分隔的三个数字,记为a,b,c,以a为七十数值,b为差,c为数值的数量,产生一个递增的等差数列,将这个数列以列表的格式输出。

等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的一种数列,常用A、P表示。这个常数叫做等差数列的公差,公差常用字母d表示。 [1]

例如:1,3,5,7,9......2n-1。通项公式为:an=a1+(n-1)d。首项a1=1,公差d=2。前n项和公式为:Sn=a1 n+[n*(n-1)d]/2或Sn=[n(a1+an)]/2。注意:以上n均属于正整数。

python 复制代码
#请完善如下代码
a,b,c = 
ls = []
for i in range(c):
	ls.
print(ls)

尝试自己动手看看能不能完成这道题

做了快二十道题,我的理解就是很多题目都是雷声大雨点小

看似很难,其实根据他给出的代码以及仔细分析题目,再加上扎实的python基础语法,还是很容易的

python 复制代码
#请完善如下代码
a,b,c = eval(input())#序列解包
ls = []#创建一个空列表
for i in range(c):#range(c)循环c次因为要生成c个数量它是从【0,c)的左闭右开的范围所以不需要-1
	ls.append(a+b*i)#append在末尾追加
print(ls)

3.随机数

1、以0为随机数种子,随机生成5个在1(含)到97(含)之间的随机数,计算这五个随机数的平方和。

设置随机数种子的目的是得到一个固定答案方便评分

格式为seed(a=None) 初始化随机数种子,默认值为当前系统时间

randint(a,b): 生成一个(a,b)之间的整数

sample(pop,k):从pop类型中随机选取k个元素,以列表类型返回。

random():生成一个(0.0,1.0)之间的随机小数。

python 复制代码
import random
random.seed(0)
s=0
for i in range(5):
    n=random.randint(1,97)
    s=s+pow(n,2)
print(s)
python 复制代码
import random
random.seed(0)
c=[]
for i in range(5):
   c.append(random.randint(1,97))
sum=0
for i in range(5):
    sum+=c[i]**2
print(sum)

2、以100为随机数种子,随机生成3个在1(含)到9(含)之间的随机数,计算这三个随机数的立方和。

将s=0放在for循环内部和外部的区别在于变量s的作用域和生命周期。具体区别如下:

将s=0放在for循环内部:

for i in range(5):

s = 0

s += i

在每次循环开始时,都会重新初始化变量s为0,然后进行累加操作。这意味着每次循环的s都是独立的,互不影响。

将s=0放在for循环外部:

s = 0

for i in range(5):

s += i

在循环外部初始化变量s为0,然后每次循环都对s进行累加操作。这意味着s的作用范围是整个循环,每次循环都会在原来的基础上进行累加。

综上所述,将s=0放在for循环内部会在每次循环时重新初始化变量,而将其放在外部则会在整个循环中保持变量的累加状态。

根据题意我们需要累加所以我们需要把s放在循环外面

python 复制代码
import random
random.seed(100)
s = 0
for i in range(3):
    s+=pow(random.randint(1,9),3)
print(s)

4、字符串

1、获得用户输入的一个字符串,将字符串逆序输出,同时紧接着输出字符串的个数

  • 使用切片[::-1]:通过使用切片操作符[::-1],可以将字符串进行逆序输出
  • 使用reversed()函数结合join()方法:使用reversed()函数将字符串转换成迭代器,并结合join()方法将字符连接起来
  • 使用递归函数:通过递归函数将字符串逐个字符进行逆序输出
    使用切片示例:
python 复制代码
a=input()
print(a[::-1],end='')
print(len(a))

第二种方法示例:

python 复制代码
a=input()
print(''.join(reversed(a)),end='')
print(len(a))

第三种方法示例:

python 复制代码
def reverse_string(s):
    if len(s) == 0:
        return s
    else:
        return reverse_string(s[1:]) + s[0]
a=input()
b = reverse_string(a)
print(b,end='')
print(len(b))

2、获得用户输入的一个数字,其中数字字符(0到9)用对应的中文字符 "〇一二三四五六七八九十"替换,输出替换后的结果。

python 复制代码
n = input()
s = "〇一二三四五六七八九十"
for c in "0123456789":
    n = n.replace(c,s[int(c)])
print(n)

其中在循环中,使用 replace() 方法将字符串 n 中的当前数字字符替换成对应的中文数字字符。使用 int© 将字符 c 转换成整数作为索引,然后通过 s[int©] 获取对应的中文数字。

替大家试过了s【eval(c)】也是可以的!

祝大家二级都顺利通过!!!!!!!

相关推荐
Code成立8 分钟前
《Java核心技术 卷I》用户图形界面鼠标事件
java·开发语言·计算机外设
赛丽曼19 分钟前
Python中的HTML
python·html
luky!27 分钟前
算法--解决熄灯问题
python·算法
Xiao Fei Xiangζั͡ޓއއ28 分钟前
一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
c语言·开发语言·笔记·程序人生·面试·蓝桥杯·学习方法
记录无知岁月30 分钟前
【MATLAB】目标检测初探
开发语言·yolo·目标检测·matlab·yolov3·yolov2
深度学习lover41 分钟前
<项目代码>YOLOv8 番茄识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·番茄识别
IT古董41 分钟前
【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)
人工智能·python·线性代数·机器学习
远望清一色44 分钟前
基于MATLAB身份证号码识别
开发语言·图像处理·算法·matlab
baijin_cha1 小时前
机器学习基础04_朴素贝叶斯分类&决策树分类
笔记·决策树·机器学习·分类
生信与遗传解读1 小时前
基于python的线性代数相关计算
python·线性代数·机器学习