计算机二级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个字符,数字中间对齐,不足部分用=填充。

n=eval(input())
print("{:=^14}".format(n))

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

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

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=a1n+[n*(n-1)d]/2或Sn=[n(a1+an)]/2。注意:以上n均属于正整数。

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

尝试自己动手看看能不能完成这道题
做了快二十道题,我的理解就是很多题目都是雷声大雨点小
看似很难,其实根据他给出的代码以及仔细分析题目,再加上扎实的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)之间的随机小数。

import random
random.seed(0)
s=0
for i in range(5):
    n=random.randint(1,97)
    s=s+pow(n,2)
print(s)
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放在循环外面

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()方法将字符连接起来
  • 使用递归函数:通过递归函数将字符串逐个字符进行逆序输出
    使用切片示例:
a=input()
print(a[::-1],end='')
print(len(a))

第二种方法示例:

a=input()
print(''.join(reversed(a)),end='')
print(len(a))

第三种方法示例:

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)用对应的中文字符 "〇一二三四五六七八九十"替换,输出替换后的结果。

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)】也是可以的!
祝大家二级都顺利通过!!!!!!!

猜你喜欢

转载自blog.csdn.net/m0_68165821/article/details/132916980