美文网首页Python知识锦集
Python 二级基础编程题

Python 二级基础编程题

作者: IIronMan | 来源:发表于2018-09-15 21:58 被阅读3次
  • 1、画一个太极图


    太极图
    import turtle
    turtle.circle(100)
    turtle.circle(50,180)
    turtle.circle(-50,180)
    turtle.penup()
    turtle.goto(0,140)
    turtle.pendown()
    turtle.circle(10)
    turtle.penup()
    turtle.goto(0,40)
    turtle.pendown()
    turtle.circle(10)
    turtle.done()
    
  • 2、在Python Turtle Graphics中,绘制一个同心切


    同心切
    import turtle as t
    t.circle(40)
    t.circle(60)
    t.circle(80)
    t.done()
    
  • 3、在Python Turtle Graphics中,绘制一个同心圆


    同心圆
    import turtle as t
    def DrwaCctCircle(n):
          t.penup()
          t.goto(0,-n)
          t.pendown()
          t.circle(n)
    for i in range(20,80,20):
          DrwaCctCircle(i)
    t.done()
    
  • 4、PyInstaller 库用来对 Python 源程序进行打包。给定一个源文件 py.py,请给出将其打包成一个可执行文件的命令。

     pyinstaller -F py.py
    
  • 5、PyInstaller 库用来对 Python 源程序进行打包。给定一个源文件 py.py 和一个图标文件 py.ico,请利用这两个文件进行打包,生成一个可执行文件。

    pyinstaller -I py.ico -F py.py
    
  • 6、txt 表示一段中文文本,请补充代码,输出该文本所有可能的分词结果。

    import jieba
    txt = "中华人民共和国教育部考试中心委托专家制定了全国计算机等级考试二级程序设计考试大纲"
    ls = jieba.lcut(txt, cut_all=True)
    print(ls)
    
  • 7、ls 是一个列表,内容如下:请补充如下代码,在数字 789 后增加一个字符串 "012"。

    ls = [123, "456", 789, "123", 456, "789"]
    ls.insert(3,"012")
    print(ls)
    

    解释:

    list.insert(index, obj)
    index -- 对象 obj 需要插入的索引位置。
    obj -- 要插入列表中的对象。
    
  • 8、ls 是一个列表,内容如下:请=将列表 ls 逆序打印

    ls = [123, "456", 789, "123", 456, "789"]
    ls.reverse()
    print(ls)
    
  • 9、获得输入正整数 N,判断 N 是否为质数,如果是则输出 True,否则输出 False。本题不考虑输入异常情况。

    N = eval(input())
    if N == 1 :
         flag = False
         print(flag)
    else:
         flag = True
         for i in range(2,N):
         if N % i == 0:
            flag = False
            break
    print(flag)
    
  • 10、输出如下数列在 1000000 以内的值,以逗号分隔:k(0)= 1, k(1)=2, k(n) = k(n–1)2 + k(n–2)2,其中,k(n) 表示该数列。此题没有输入 ,输出一组数值,用逗号分隔开。

    a, b = 1, 2
    ls = []
    ls.append(str(a))
    while b<1000*1000:
          a, b = b, a**2 + b**2
          ls.append(str(a))
    
    print(",".join(ls))
    
  • 11、编写程序随机产生 20 个长度不超过 3 位的数字,让其首尾相连以字符串形式输出,随机种子为 17

    import random as r
    r.seed(17)
    s = ""
    for i in range(20):
       s += str(r.randint(0,999))
    print(s)
    
  • 12、仅使用 Python 基本语法,即不使用任何模块,编写 Python 程序计算下列数学表达式的结果并输出,小数点后保留3位。


    表达式
    x = pow((3**4 + 5*(6**7))/8, 0.5)
    print("{:.3f}".format(x))
    
  • 13、以中国共产党第十九次全国代表大会报告中一句话作为字符串变量 s,完善 Python 程序,分别用 Python 内置函数及 jieba 库中已有函数计算字符串 s 的中文字符个数及中文词语个数。注意,中文字符包含中文标点符号。(提交的代码应包括题目中给出的部分)

    import jieba
    s = "中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。"
    n = len(s) 
    m = len(jieba.lcut(s))
    print("中文字符数为{},中文词语数为{}。".format(n, m))
    
  • 14、0x4DC0 是一个十六进制数,它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦,请输出第 51 卦(震卦)对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。

    print("二进制{0:b}、十进制{0}、八进制{0:o}、十六进制{0:x}".format(0x4DC0+50))
    
  • 15、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形,效果如下图所示。请结合格式框架,补充横线处代码。

    import turtle
    d = 0
    for i in range(4):
        turtle.fd(200)
        d = d+90
        turtle.seth(d)
    
  • 16、列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。

    按 ls 中默认顺序输出

    综合:1
    理工:2
    师范:3
    农林:4
    民族:5
    军事:6

    解法一:

    ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", \
    "综合", "综合", "师范", "理工", "综合", "理工", "综合", "综合", \
    "综合", "综合", "综合", "理工", "理工", "理工", "理工", "师范", \
    "综合", "农林", "理工", "综合", "理工", "理工", "理工", "综合", \
    "理工", "综合", "综合", "理工", "农林", "民族", "军事"]
    d = {}
    for word in ls:
       d[word] = d.get(word, 0) + 1
    for k in d:
       print("{}:{}".format(k, d[k]))
    

    解法二:

    ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", "综合", "综合",\
    "师范", "理工", "综合", "理工", "综合", "综合", "综合", "综合", "综合","理工",\
    "理工", "理工", "理工", "师范", "综合", "农林", "理工", "综合", "理工", "理工", \
    "理工", "综合", "理工", "综合", "综合", "理工", "农林", "民族", "军事"]
    
    print("综合:{}".format(ls.count("综合")))
    print("理工:{}".format(ls.count("理工")))
    print("师范:{}".format(ls.count("师范")))
    print("农林:{}".format(ls.count("农林")))
    print("民族:{}".format(ls.count("民族")))
    print("军事:{}".format(ls.count("军事")))
    
  • 17、文本中左侧一段输出 N 的值,右侧一段根据 N 的值输出等号,中间用 @ 分隔,等号个数为 N 与 5 的整除商的值,例如,当 N 等于 10 时,输出 2 个等号。

    N = eval(input())   # N取值范围是0—100,整数
    print("{:>3}%@{}".format(N,"="*(N//5)))
    
  • 18、以论语中一句话作为字符串变量 s,补充程序,分别输出字符串 s 中汉字和标点符号的个数。

    s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
    n = 0  # 汉字个数
    m = 0  # 标点符号个数
    m = s.count(',') + s.count('?')
    n = len(s) - m
    print("字符数为{},标点符号数为{}。".format(n, m))
    
  • 19、使用程序计算整数 N 到整数 N+100 之间所有奇数的数值和,不包含 N+100,并将结果输出。整数 N 由用户给出,代码片段如下,补全代码。不判断输入异常。

    N = input("请输入一个整数: ")
    s = 0
    for i in range(eval(N),eval(N)+100):
          if i%2 != 0:
                s += I
    print(s)
    
  • 20、使用 turtle 库的 turtle.fd() 函数和 turtle.left() 函数绘制一个六边形,边长为 200 像素,效果如下图所示,请结合格式框架,补充横线处代码。


    六边形
    import turtle as t
    for i in range(6):
        t.fd(200)
        t.left(60)
    
  • 21、经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写 getInput() 函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。

    def getInput():
    try:
      txt = input()   # "请输入整数: "
      while eval(txt) != int(txt):
          txt = input()   # "请输入整数: "
    except:
      return getInput()
    return eval(txt)
    print(getInput())
    
  • 22、根据输入字符串 s,输出一个宽度为 15 字符,字符串 s 居中显示,以“=”填充的格式。如果输入字符串超过 15 个字符,则输出字符串前 15 个字符。提示代码如下:

    s = input()  # "请输入一个字符串:"
    print("{:=^15}".format(s[0:15]))
    
  • 23、根据斐波那契数列的定义,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),输出不大于 100 的序列元素,提示代码如下:

    a, b = 0, 1
    while a<=100:
       print(a, end=',')
       a, b = b, a + b
    
  • 24、如下是一个完整程序,根据提示代码完成如下任务,输出如“2020年10月10日10时10分10秒”样式的时间信息。

    import time
    timestr = "2020-10-10 10:10:10"
    t = time.strptime(timestr, "%Y-%m-%d %H:%M:%S")
    print(time.strftime("%Y年%m月%d日%H时%M分%S秒", t))
    
  • 25、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个等边三角形,边长为 200 像素,效果如下图所示。请结合程序整体框架,根据提示代码完成程序。


    三角形
    import turtle as t
    for i in range(3):
       t.seth(i * 120)
       t.fd(200)
    
  • 26、编写代码完成如下功能:

    (1)建立字典 d,包含内容是:"数学":101, "语文":202, "英语":203, "物理":204, "生物":206。
    (2)向字典中添加键值对"化学":205。
    (3)修改"数学"对应的值为 201。
    (4)删除"生物"对应的键值对。
    (5)按顺序打印字典 d 全部信息,参考格式如下(注意,其中冒号为英文冒号,逐行打印):

     d = {"数学":101, "语文":202, "英语":203, "物理":204, "生物":206}
     d["化学"] = 205
     d["数学"] = 201
     del d["生物"]
     for key in d:
          print("{}:{}".format(d[key], key))
    
  • 27、根据输入正整数 n,作为财务数据,输出一个宽度为 20 字符,n 右对齐显示,带千位分隔符的效果,使用减号字符“-”填充。如果输入正整数超过 20 位,则按照真实长度输出。提示代码如下:

    n = input()  # 请输入整数
    print("{:->20,}".format(eval(n)))
    
  • 28、PyInstaller 库可以对程序打包,给定一个 Python 源程序文件 a.py,图标文件为 a.ico,将其打包为在 Windows 平台上带有上述图标的单一可执行文件,使用什么样的命令?

    pyinstaller –i a.ico –F a.py
    
  • 29、以 123 为随机数种子,随机生成 10 个在 1 到 999(含)之间的随机数,以逗号分隔,打印输出,请补充横线处代码。提示代码如下

    import random
    random.seed(123)
    for i in range(10):
       print(random.randint(1,999), end=",")
    
  • 30、使用 turtle 库的 turtle.right() 函数和 turtle.fd() 函数绘制一个菱形四边形,边长为 200 像素,效果如下图所示。请勿修改已经给出的第一行代码,并完善程序。


    菱形
    import turtle as t
    t.right(-30)
    for i in range(2):
       t.fd(200)
       t.right(60*(i+1))
    for i in range(2):
       t.fd(200)
       t.right(60*(i+1))
    
  • 31、补充完善如下代码,使得程序能够计算 a 中各元素与 b 逐项乘积的累加和。

    a = [[1,2,3], [4,5,6], [7,8,9]]
    b = [3,6,9]
    s = 0
    for c in a:
       for j in range(3):
             s += c[j]*b[j]
    print(s)
    
  • 32、编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出,给出代码提示如下。

    n = input()
    nums = n.split(",")
    s = 0
    for i in nums:
       s += eval(i)
    print(s)
    
  • 33、编写程序,获得用户输入的数值 M 和 N,求 M 和 N 的最大公约数。提示代码如下。

    def GreatCommonDivisor(a,b):
         if a > b:
             a,b = b,a
         r = 1
         while r != 0:
               r = a % b
               a = b
               b = r
         return a
    m = eval(input())
    n = eval(input())
    print(GreatCommonDivisor(m,n))
    
  • 34、jieba 是一个中文分词库,一些句子可能存在多种分词结果,请补充横线处代码,产生字符串 s 可能的所有分词结果列表,提示代码如下。

    import jieba
    s = "世界冠军运动员的乒乓球拍卖完了"
    ls = jieba.lcut(s,True)
    print(ls)
    
  • 35、使用 turtle 库的 turtle.circle() 函数、turtle.seth() 函数和 turtle.left() 函数绘制一个四瓣花图形,效果如下图所示。请结合程序整体框架,补充横线处代码,从左上角花瓣开始,逆时针作画。


    四瓣花
    import turtle as t
    for i in range(4):
         t.seth(90 * (i + 1))
         #90,180,270,360
         t.circle(200,90)
         #-90,0,90,180
         t.seth(-90 + i * 90)
         t.circle(200,90)
    
  • 36、编写程序,实现将列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素数去除,并输出去除素数后列表 ls 的元素个数。请结合程序整体框架,补充横线处代码。

    def is_prime(n):
        for i in range(2,n):
            if n % i == 0:
                return False
        return True
    
    ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
    for i in ls.copy():
        if is_prime(i) == True:
            ls.remove(i)
    print(len(ls))
    
  • 37、获得输入正整数 N,判断 N 是否为质数,如果是则输出 True,否则输出 False。本题不考虑输入异常情况。

    N = eval(input())
    if N == 1 :
       flag = False
       print(flag)
    else:
       flag = True
       for i in range(2,N):
           if N % i == 0:
               flag = False
               break
       print(flag)
    
  • 38、请补充横线处的代码,让 Python 帮你随机选一个饮品吧!

    import random
    random.seed(1)
    listC = ['加多宝','雪碧','可乐','勇闯天涯','椰子汁']
    print(random.choice(listC))
    
  • 39、请补充横线处的代码,listA中存放了已点的餐单,让Python帮你增加一个“红烧肉”,去掉一个“水煮干丝”。

    listA = ['水煮干丝','平桥豆腐','白灼虾','香菇青菜','西红柿鸡蛋汤']
    listA.append("红烧肉")
    listA.remove("水煮干丝")
    print(listA)
    
  • 40、请补充横线处的代码。dictMenu中存放了你的双人下午套餐(包括咖啡2份和点心2份)的价格,让Python帮忙计算并输出消费总额。

    dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
    sum = 0
    for i in dictMenu.values():
              sum +=  I
    print(sum)
    
  • 41、获得输入正整数 N,反转输出该正整数,不考虑异常情况。

    N = input()
    print(N[::-1])
    
  • 42、给定一个数字 123456,请采用宽度为 25、右对齐方式打印输出,使用加号“+”填充。

    print("{:+>25}".format(123456))
    
  • 43、给定一个数字12345678.9,请增加千位分隔符号,设置宽度为30、右对齐方式打印输出,使用空格填充。

    print("{:>30,}".format(12345678.9))
    
  • 44、获得用户输入的一个字符串,请输出其全小写形式。

    s = input()
    print(s.lower())
    
  • 45、获得用户输入的一个字符串,输出其中字母 a 的出现次数。

    s = input()
    print(s.count("a"))
    
  • 46、获得用户输入的一个字符串,替换其中出现的字符串"py"为"python",输出替换后的字符串

    s = input()
    s1 = s.replace("py","python")
    print(s1)
    
  • 47、获得用户输入的一组数字,采用逗号分隔,输出其中的最大值。

    data = input()
    a = data.split(",")
    b = []
    for i in a:
         b.append(int(i))
    print(max(b))
    
  • 48、s="9e10"是一个浮点数形式字符串,即包含小数点或采用科学计数法形式表示的字符串,编写程序判断s是否是浮点数形式字符串。如果是则输出True,否则输出False。

    s="9e10"
    if type(eval(s)) == type(10.0):
        print(True)
    else:
        print(False)
    
  • 49、s="123"是一个整数形式字符串,编写程序判断 s 是否是整数形式字符串。如果是则输出 True,否则输出 False。要求代码不超过 2 行。

    s = "123"
    print(True if type(eval(s)) == type(1) else False)
    
  • 50、while True:可以构成一个“死循环”。请编写程序利用这个死循环完成如下功能:循环获得用户输入,直至用户输入字符 y 或 Y 为止,并退出程序。

    while True:
          s = input()
          if s == 'y' or s == 'Y':
                break
    
  • 51、请编写一个史上最佛系的程序,获得用户输入时无提示,获得用户输入后计算 100 除以输入值,结果运算正常就输出结果,并退出,永远不报错退出。

    while True:
    try:
       s = input()
       print(100/(eval(s)))
       break
    except:
       ""
    
  • 52、如下函数返回两个数的平方和与n的乘积,请补充横线处代码。

    n = 2
    def psum(a,b):
        global n
        return (a**2 + b**2)*n
    
    a=eval(input())
    b=eval(input())
    print(psum(a,b))
    
  • 53、打开一个文件 a.txt,如果该文件不存在则创建,存在则产生异常并报警。请补充如下代码。

    try:
       f = open("a.txt", "x")
    except:
       print("文件存在,请小心读取!")
    
  • 54、ls 是一个列表,内容如下:

    ls = [123, "456", 789, "123", 456, "789"]
    

    请补充如下代码,在数字 789 后增加一个字符串 "012"。

    ls = [123, "456", 789, "123", 456, "789"]
    ls.insert(3, "012")
    print(ls)
    
  • 55、ls 是一个列表,内容如下:

    ls = [123, "456", 789, "123", 456, "789"]
    

    请补充如下代码,将列表 ls 逆序打印

    ls = [123, "456", 789, "123", 456, "789"]
    ls.reverse()
    print(ls)
    
  • 56、ls 是一个列表,内容如下:

    ls = [123, "456", 789, "123", 456, "789"]
    

    请补充如下代码,将列表 ls 中第一次出现 789 位置的序号打印出来。注意,不要直接输出序号,采用列表操作方法

    ls = [123, "456", 789, "123", 456, "789"]
    print(ls.index(789))
    
  • 57、d 是一个字典,内容如下:

    d = {123:"123", 456:"456", 789:"789"}
    

    请补充如下代码,将字典 d 中所有值以列表形式输出

    d = {123:"123", 456:"456", 789:"789"}
    print(list(d.values()))
    
  • 58、d 是一个字典,内容如下:

    d = {123:"123", 456:"456", 789:"789"}
    

    请补充如下代码,将字典 d 中所有键以列表形式输出

    d = {123:"123", 456:"456", 789:"789"}
    print(list(d.keys()))
    
  • 59、使用 turtle 库绘制正方形螺旋线,效果如下图所示。阅读程序框架,补充横线处代码。


    import turtle
    n = 10
    for i in range(1,10,1):
        for j in [90,180,-90,0]:
             turtle.seth(j)
             turtle.fd(n)
             n += 
    
  • 60、使用 turtle 库绘制叠加等边三角形,效果如下图所示。阅读程序框架,补充横线处代码。

    import turtle
    turtle.pensize(2)    # 设置画笔宽度为2像素
    turtle.color('red')
    turtle.fd(160)   # 向小海龟当前行进方向前进160像素
    turtle.seth(120)
    turtle.fd(160)
    turtle.seth(-120)
    turtle.fd(160)
    turtle.penup()
    turtle.seth(0)
    turtle.fd(80)
    turtle.pendown()
    turtle.seth(60)
    turtle.fd(80)
    turtle.seth(180)
    turtle.fd(80)
    turtle.seth(-60)
    turtle.fd(80)
    turtle.hideturtle()
    turtle.done()
    
  • 61、使用 turtle 库绘制八角星形,效果如下图所示。阅读程序框架,补充横线处代码。

    import turtle as t
    t.colormode(255)
    **t.color(255,215,0)  #设置颜色取值为金色(255,215,0)**
    t.begin_fill()
    **for x in range(1,9):  #绘制8条线**
         t.forward(200)
         t.left(225)
    t.end_fill()
    t.hideturtle()
    t.done()
    
  • 62、使用 turtle 库绘制5种多边形,效果如下图所示。阅读程序框架,补充横线处代码。

    from turtle import *
    for i in range(5):
      **penup()    #画笔抬起**
      goto(-200+100*i,-50)
      pendown()
      **circle(40, steps=3 + i)    #画某个形状**
    done()
    
  • 63、获得输入正整数 N,计算 1 到 N 之间所有奇数的平方和,不含 N,直接输出结果。本题不考虑输入异常情况。

    N = eval(input())
    sum = 0
    for i in range(N):
        if i%2 != 0:
            sum += i**2
    print(sum)
    
  • 64、获得输入正整数 N,判断 N 是否为质数,如果是则输出 True,否则输出 False。本题不考虑输入异常情况。

    N = eval(input())
    if N == 1 :
        flag = False
        print(flag)
    else:
        flag = True
        for i in range(2,N):
           if N % i == 0:
               flag = False
               break
    print(flag) 
    
  • 65、获得输入正整数 N,计算其各位数字的平方和,直接输出结果。本题不考虑输入异常情况。

    N = input()
    s = 0
    for c in N:
       s += eval(c)**2
    print(s)
    
  • 66、循环从用户处获得一组数据,直到用户直接输入回车退出,打印输出所有数据的和。本题不考虑输入异常情况。

    N = input("请输入一个整数:")
    s = 0
    while N != "":
       s += eval(N)
       N = input("请输入一个整数:")
    
    print(s)
    
  • 67、编写程序从用户处获得一个不带数字的输入,如果用户输入中含数字,则要求用户再次输入,直至满足条件。打印输出这个输入。

    while True:
    N = input("请给出一个不带数字的输入: ")
    flag = True
    for c in N:
        if c in "1234567890":
            flag = False
            break
     if flag:
        break
    print(N)
    
  • 68、考虑异常情况,编写程序从用户处获得一个全数字(可以含小数点或复数标记)输入,如果用户输入不符合,则要求用户再次输入,直至满足条件。打印输出这个输入。

    while True:
       try:
         N = input("请给出一个全数字输入: ")
         print(eval(N))
         break
       except:
         pass 
    
  • 69、不考虑异常情况,编写程序从用户处获得一个浮点数输入,如果用户输入不符合,则要求用户再次输入,直至满足条件。打印输出这个输入。

    while True:
    N = input("请输入一个浮点数:")
    if type(eval(N)) == type(1.0):
        print(N)
        break
    
  • 70、考虑异常情况,编写程序从用户处获得一个浮点数输入,如果用户输入不符合,则要求用户再次输入,直至满足条件。打印输出这个输入。

    while True:
    try:
        N = input("请给出一个浮点数: ")
        if type(eval(N)) == type(1.0):
            print(eval(N))
            break
    except:
        pass
    
  • 71、输出如下数列在 1000000 以内的值,以逗号分隔:k(0)= 1, k(1)=2, k(n) = k(n–1)2 + k(n–2)2,其中,k(n) 表示该数列。

    a, b = 1, 2
    ls = []
    ls.append(str(a))
    while b<1000*1000:
        a, b = b, a**2 + b**2
        ls.append(str(a))
    
    print(",".join(ls))
    
  • 72、编写程序随机产生 20 个长度不超过 3 位的数字,让其首尾相连以字符串形式输出,随机种子为 17

    import random as r
    r.seed(17)
    s = ""
    for i in range(20):
        s += str(r.randint(0,999))
    print(s)
    

相关文章

网友评论

    本文标题:Python 二级基础编程题

    本文链接:https://www.haomeiwen.com/subject/mzosgftx.html