• 计算机二级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))
    
    • 1
    • 2

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

    s=input()
    print("{:\"^30x}".format(eval(s)))
    
    • 1
    • 2

    !注意这里的一个坑,采用双引号(”)填充时如果直接填"则会发现报错,因为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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、字符串

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

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

    第二种方法示例:

    a=input()
    print(''.join(reversed(a)),end='')
    print(len(a))
    
    • 1
    • 2
    • 3

    第三种方法示例:

    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))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    n = input()
    s = "〇一二三四五六七八九十"
    for c in "0123456789":
        n = n.replace(c,s[int(c)])
    print(n)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    其中在循环中,使用 replace() 方法将字符串 n 中的当前数字字符替换成对应的中文数字字符。使用 int© 将字符 c 转换成整数作为索引,然后通过 s[int©] 获取对应的中文数字。
    替大家试过了s【eval(c)】也是可以的!
    祝大家二级都顺利通过!!!!!!!

  • 相关阅读:
    校园失物招领微信小程序(30167)
    ConsulManager0.9.6 新增RDS云监控指标抓取与自建MySQL接入支持
    C++异常和断言
    快速搭建PHP管理后台
    Android字体大小dp,sp,px系统设置字体大小变化表现
    象群游牧优化算法(EHO)(Matlab完整代码实现)
    联盟链学习笔记-网络的创建
    centos7 下安装tomcat8 -小白教程
    Linux 中的 chpasswd 命令及示例
    Kubernetes leader election 源码分析
  • 原文地址:https://blog.csdn.net/m0_68165821/article/details/132916980