python二级-练习题

Posted lxw-pro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python二级-练习题相关的知识,希望对你有一定的参考价值。

python江湖


1、求长方形面积

题目描述:

编写代码实现从键盘输入两个浮点数计算以这两个浮点数为边长的长方形的面积,显示在控制台,数据长度为10,不足部分用 - 补齐,保留2位小数。

代码如下:

方法一:

# -*- coding = utf-8 -*-
# @Time : 2022/6/15 19:20
# @Author : lxw_pro
# @File : python二级练习.py
# @Software : PyCharm
a = float(input("请输入长方形的长度:"))
b = float(input("请输入长方形的宽度:"))
S = a*b
print("长方形的面积是::->10.2f".format(S))

方法二:

a, b = input().split(',')
print(":->10.2f".format(float(a)*float(b)))

方法三:

def mj(a, b):
    S = a*b
    return S


c = float(input())
k = float(input())
print(":->10.2f".format(mj(c, k)))

2、随机密码验证

题目描述:

利用random随机库里的函数,生成一个由四个大小写字母组成的验证码,显示在控制台,然后让用户输入验证码进行验证,不区分大小写,输入正确提示验证成功,错误提示验证失败!

代码如下:

方法一:

import random

sj = ''
for i in range(2):
    zimu = chr(random.randint(65, 90)) + chr(random.randint(97, 122))
    sj = sj + zimu
print(sj)
user_input = input()
# 把验证码和用户输入的字符全部变成小写或大写,然后对比
if user_input.upper() == sj.upper():
    print("验证码正确")
else:
    print("验证码错误,请重新输入")

方法二:

import random, string

s = string.ascii_letters
# 大写string.ascii_uppercase
# 小写string.ascii_lowercase
a = ''
for i in range(4):
    r = random.choice(s)
    # print(r, end='')
    a += r
print(a)

sr = input()
if sr.lower() == a.lower():
    print("验证正确")
else:
    print("验证失败")

3、信息分配表(字典)

题目描述:

定义了一个拥有4个元素的字典Infor,用姓名作为字典的key,用部门和工资组成的列表作为字典的value,将每个人的部门和工资显示在控制台,例如:张三的工资是:5500,部门是:人力部;筛选出工资最高的员工,将其姓名和工资打印到控制台,例如:工资最高的员工是张三,其工资为5800。

代码如下:

方法一:

members = '张三': ['人力部', 5500], '雨生': ['后勤部', 4500], '蛮全': ['市场部',6500], '伟哥': ['开发部', 8500]
zd = 
for key in members:
    print(f'key的工资是:members[key][1], 部门是members[key][0]')
for values in members.values():
    zd[values[1]] = values[0]
max_val = max(zd.keys())
max_name = zd[max_val]
print(f'工资最高的部门是:max_name,该部门工资是:max_val')

4、全模式分词(jieba)

题目描述:

从data.txt文件读入一篇文章,用jieba库的函数cut的全模式做分词,统计词汇长度为2的词出现的次数,输出出现次数最多的前10个词汇及其出现次数。

代码如下:

提示:data.txt文件可以随便找一篇文章复制粘贴即可

import jieba
er = 
with open('data.txt', 'r', encoding="utf-8") as f:
    h = f.readlines()
for i in h:
    q = jieba.lcut(i, cut_all=True)
    for j in q:
        if len(j) == 2:
            if j in er:
                er[j] += 1
            else:
                er[j] = 1
dp = list(er.items())
dp.sort(key=lambda x: int(x[1]), reverse=True)
for i in range(10):
   print(f"dp[i][0]:dp[i][1]")

5、数字金字塔

题目描述:

使用循环按示例要求输出10行内容,打印到控制台:

代码如下:

方法一:

import math
a = 0
b = 10
for i in range(b):
    c = b - i
    a += pow(10, i)
    for j in range(c):
        print(' ', end='')
    print(pow(a, 2))

方法二:

import math

n, m, z = 10, 0, ' '
for i in range(n):
    a = n - i
    # print(a)
    m += pow(10, i)
    # print(m)
    print(z*a, pow(m, 2))

6、求最大值、最小值及平均值

题目描述:

定义一个函数,传入n个参数,然后通过字典的方式返回n个数的最大值、最小值和平均值,例如:“max”:最大值,“min”:最小值,“average”:平均值,(思路:要使用到可变参数)

代码如下:

import math
def zd(n):
    n = list(n)
    da = max(n)
    xx = min(n)
    aa = sum(n)/len(n)
    return da, xx, aa


n = [13, 14, 15, 9, 20, 52]
a = list(zd(n))
# fh = f"“max”:a[0], “min”:a[1], “average”:a[2]"
# print(fh)
pa = 
pa['max'] = a[0]
pa['min'] = a[1]
pa['average'] = a[2]
print(pa)

7、交换变量

题目描述:

已知变量a的值为100,变量b的值为200,请编写代码实现将a和b的值进行交换,并在控制台打印出来。

代码如下:

方法一:

a, b = 100, 200
a, b = b, a
print(a, b)

方法二:

a, b = 100, 200
h = a
a = b
b = h
print(a, b)

def jh(a, b):
    t = a
    a = b
    b = t
    print(a, b)


a, b = 100, 200
jh(a, b)

方法三:

a, b = 100, 200
a = a + b  
b = a - b
a = a - b
print(a, b)

方法四:

a, b = 100, 200
a = a ^ b
b = a ^ b  # b = (a^b)^b = a
a = a ^ b  # a = (a^b)^a = b
print(a, b)

def demo(a,b):
    a = a ^ b
    b = a ^ b  # b = (a^b)^b = a
    a = a ^ b  # a = (a^b)^a = b
    print(a, b)


a, b = 100, 200
demo(a, b)

8、输入密码-三次机会

题目描述:

给用户三次输入用户名和密码的机会,要求如下:如输入第一行输入用户名为 ‘张三’,第二行输入密码为 ‘666666’,输出
‘登录成功!’,退出程序;当输入密码错误时提示“密码错误,请重新输入!”;当 3 次输入用户名或密码都不正确输出 “您已经输错密码超过3次,请明天再试!。”

代码如下:

方法一:

for i in range(3):
  a, b = input(), input()
  if a=="张三" and b=="666666":
    print("登录成功!")
    break
else:
  print("您已经输错密码超过3次,请明天再试!")

方法二:

count = 3
for i in range(3):
    name = input("请输入用户名:")
    pw = int(input("请输入用户密码:"))
    if name == '张三' and pw == 666666:
        print('登录成功')
        break
    else:
        count = count-1
        print('密码不对,请重新输入,还有', count, '次机会')
else:
    print('您已经输错密码超过3次,请明天再试!')

方法三:

i = 3
while True:
  name = input("输入名字:")
  word = int(input("输入密码:"))
  if name == '张三' and word == 666666:
    print("登录成功")
    break
  else:
    i -= 1
    if i == 0:
      print("您已经输错密码超过3次,请明天再试!")
      break

方法四:

cs = 0
while 1:
    name = input("输入用户名:")
    mm = eval(input("输入密码:"))
    if name == "张三" and mm == 666666:
        print("登录成功!")
        break
    else:
        cs += 1
        if cs == 3:
            print("您已经输错密码超过3次,请明天再试!")
            break

9、水仙花数

题目描述:

输出所有的水仙花数(水仙花数指的是:一个三位数等于其个位数的立方和,例如153 = 13 + 53 + 33)。

代码如下:

方法一:

for i in range(100, 1000):
  a = i % 10
  b = i % 100 // 10
  c = i // 100
  if a * a * a + b * b * b + c * c * c == i:
    print(i)

for n in range(100, 1000):
    i = n // 100
    j = n // 10 % 10
    k = n % 10
    if n == i ** 3 + j ** 3 + k ** 3:
      print(n)

方法二:

for a in range(1, 10):
    for b in range(10):
        for c in range(10):
            s1 = a*100+b*10+c
            s2 = pow(a, 3)+pow(b, 3)+pow(c, 3)
            if s1 == s2:
                print(s1)

for i in range(1, 10):
    for j in range(0, 10):
        for k in range(0, 10):
            if i ** 3 + j ** 3 + k ** 3 == i * 100 + j * 10 + k:
                print(i*100+j*10+k)

方法三:

for i in range(100, 1000):
    a1 = int(str(i)[0])
    a2 = int(str(i)[1])
    a3 = int(str(i)[2])
    if i == a1 ** 3 + a2 ** 3 + a3 ** 3:
        print(i)

for i in range(100, 1000):
    s = str(i)
    if int(s[0])**3+int(s[1])**3+int(s[2])**3 == i:
        print(s)

10、增加与去掉

题目描述:

本题要求在1行内以逗号间隔输入五菜一汤,菜单中有一个菜为“水煮肉片”,利用append和remove方法增加一个“东坡肉”,去掉一个“水煮肉片”,并输出修改后的菜单。

代码如下:

ct = input("请输入五菜一汤,并且用,隔开:").split(",")
ct.append("东坡肉")
ct.remove("水煮肉片")
print(ct)

11、添加通讯录信息

题目描述:

编程实现添加通讯录信息,定义自定dctInfo,将姓名作为字典的key,由电话、QQ、地址组成的子字典作为dctInfo的value,例如:“张三”:
“电话”: “1355555”, “QQ”: “3333”, “地址”:“贵州省……”,……
要求使用for循环从控制台输入4个人的信息,保存字典dctInfo中,然后将dctInfo打印输出在控制台。

代码如下:

for i in range(4):
    dic = 
    key = input()
    value = input().split(',')
    dic[key] = value
    print(dic)

字典知识忘记的话:可以点点 python字典学习链接


12、写入Python成绩

题目描述:

从D盘中读取“Python成绩.csv”,根据读取到的分数按照分数段将成绩修改为“优”(90分以上、含90分)、“良”(80-89,含80)、“中”(70-79,含70)、“及格”(60-69,含60)、“不及格”(60分一下)5个等次,并将最后的结果写入到D盘下的“Python成绩1.csv”中。

文件准备:

Python成绩.csv

代码如下:

import csv

file = open('Python成绩2.csv', mode='w', encoding='utf-8')
with open('Python成绩.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        if int(row['Python-score']) >= 90:
            row['Python-score'] = '优'
        elif 80 <= int(row['Python-score']) < 90:
            row['Python-score'] = '良'
        elif 70 <= int(row['Python-score']) < 80:
            row['Python-score'] = '中'
        elif 60 <= int(row['Python-score'])以上是关于python二级-练习题的主要内容,如果未能解决你的问题,请参考以下文章

python绘制方形螺旋 青少年编程电子学会python编程等级考试二级真题解析2021年9月

全国计算机二级python考试学习信息 二级python考试练习习题 二级python考试资料 二级python资料大全 python等级考试资料 Python二级考试知识点 全国二级Python指南

Python小练习004

python二级练习和考试复习(检查内存使用情况)

python二级练习和考试复习(字节大小计算)

python二级练习和考试复习(分块)