计算机二级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)】也是可以的!

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

相关推荐
databook12 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar13 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805114 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_14 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机20 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机21 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python