【python二级-练习题】
python江湖
- 1、求长方形面积
- 题目描述:
- 代码如下:
- 2、随机密码验证
- 题目描述:
- 代码如下:
- 3、信息分配表(字典)
- 题目描述:
- 代码如下:
- 4、全模式分词(jieba)
- 题目描述:
- 代码如下:
- 5、数字金字塔
- 题目描述:
- 代码如下:
- 6、求最大值、最小值及平均值
- 题目描述:
- 代码如下:
- 7、交换变量
- 题目描述:
- 代码如下:
- 8、输入密码-三次机会
- 题目描述:
- 代码如下:
- 9、水仙花数
- 题目描述:
- 代码如下:
- 10、增加与去掉
- 题目描述:
- 代码如下:
- 11、添加通讯录信息
- 题目描述:
- 代码如下:
- 12、写入Python成绩
- 题目描述:
- 文件准备:
- 代码如下:
- 运行效果如下:
- 13、随机组名
- 题目描述:
- 文件准备:
- 代码如下:
- 运行结果如下1:
- 运行结果如下2:
- 运行效果如下3:
- 上一章链接:[【MySQL~(详细)案例】](https://blog.csdn.net/m0_66318554/article/details/124949034)
- 每日一言:
- 持续更新中...
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*breturn Sc = float(input())
k = float(input())
print("{:->10.2f}".format(mj(c, k)))
2、随机密码验证
题目描述:
利用random随机库里的函数,生成一个由四个大小写字母组成的验证码,显示在控制台,然后让用户输入验证码进行验证,不区分大小写,输入正确提示验证成功,错误提示验证失败!
代码如下:
方法一:
import randomsj = ''
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, strings = 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] += 1else: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 - ia += pow(10, i)for j in range(c):print(' ', end='')print(pow(a, 2))
方法二:
import mathn, 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, aan = [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 = aa = bb = tprint(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 ^ bb = a ^ b # b = (a^b)^b = aa = a ^ b # a = (a^b)^a = bprint(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('登录成功')breakelse:count = count-1print('密码不对,请重新输入,还有', count, '次机会')
else:print('您已经输错密码超过3次,请明天再试!')
方法三:
i = 3
while True:name = input("输入名字:")word = int(input("输入密码:"))if name == '张三' and word == 666666:print("登录成功")breakelse:i -= 1if i == 0:print("您已经输错密码超过3次,请明天再试!")break
方法四:
cs = 0
while 1:name = input("输入用户名:")mm = eval(input("输入密码:"))if name == "张三" and mm == 666666:print("登录成功!")breakelse:cs += 1if cs == 3:print("您已经输错密码超过3次,请明天再试!")break
9、水仙花数
题目描述:
输出所有的水仙花数(水仙花数指的是:一个三位数等于其个位数的立方和,例如153 = 13 + 53 + 33)。
代码如下:
方法一:
for i in range(100, 1000):a = i % 10b = i % 100 // 10c = i // 100if a * a * a + b * b * b + c * c * c == i:print(i)
或
for n in range(100, 1000):i = n // 100j = n // 10 % 10k = n % 10if 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+cs2 = 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] = valueprint(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 csvfile = 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']) < 70:row['Python-score'] = '及格'else:row['Python-score'] = '不及格'print("name:", row['name'], file=file, end='\n')print("Python-score:", row['Python-score'], file=file, end='\n')
# f = open("Python成绩2.csv", mode="w")
# csv_writer = csv.writer(f)file.close()
print("over!")
运行效果如下:
Python成绩2.csv
13、随机组名
题目描述:
从D盘中读取“姓氏.txt”,再从D盘中读取“汉字.txt”,随机抽取姓氏和汉子组成20个名字,并将名字保存到列表names中,最后将names打印输出到控制台。
文件准备:
姓氏.txt
汉字.txt
代码如下:
方法一:
# -*- coding = utf-8 -*-
# @Time : 2022/6/18 9:18
# @Author : lxw_pro
# @File : 随机组名.py
# @Software : PyCharm
import randomfor i in range(20):with open('姓名.txt', 'r', encoding='utf-8') as f:x = f.read()with open('汉字.txt', 'r', encoding='utf-8') as h:m = h.read()x = list(x)# print(x)m = list(m)# print(m)random.shuffle(m)# print(m)string = ""for j in range(0, random.randint(1, 2)):string += random.choice(m)# print(string)x = random.choice(x)print(x+string)
f.close()
h.close()
[^1]当然了,这里运行的结果也是随机生成的
运行结果如下1:
方法二:
import randomdef names():with open('姓名.txt', 'r', encoding='utf-8') as f:x = f.read()x = list(x)x = random.choice(x)with open('汉字.txt', 'r', encoding='utf-8') as h:m = h.read()m = list(m)f.close()h.close()m = ''.join(random.choice(m) for i in range(2))name = x + mreturn namefor i in range(20):print(names())
运行结果如下2:
或
import randomfor j in range(20):with open('姓名.txt', 'r', encoding='utf-8') as f:x = f.read()x = list(x)x = random.choice(x)with open('汉字.txt', 'r', encoding='utf-8') as h:m = h.read()m = list(m)f.close()h.close()m = ''.join(random.choice(m) for i in range(2))name = x + mprint(name)
运行效果如下3:
上一章链接:【MySQL~(详细)案例】
每日一言:
所谓一生活过几生,关键的问题不在长度而在宽度,勇敢地选择不一样的生活,多一次冒险,就多一次体验不同人生的机会。
有兴趣的话,可以扫一下公众号二维码关注一下,相互交流,相互学习,一起成长,一起进步。
持续更新中…
【python二级-练习题】相关推荐
- Python二级备考:扇入和扇出的区别
遇到一道Python二级练习题. 第一次听说扇入扇出. 扇入:是指直接调用该模块的上级模块的个数.扇入大表示模块的复用程序高.扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好. ...
- python二级值得考吗_来自python二级考试的吐槽
ennnnnn,终于盼到3月,终于开始了满怀期待的计算机等级考试,来,咱们点开试题看看里面有什么吧 ......................... en ..................... ...
- 这些Python基础练习题你会几个?
在人工智能大火的当今,Python 作为人工智能时代的首选语言已经越来越收到追捧:但是许多非科班.零基础的小伙伴常常苦于没有合适的入门 Python 的教程而感到苦恼:本人是一名资深Python开发, ...
- python字典练习题
python字典练习题 写代码:有如下字典按照要求实现每一个功能dict = {"k1":"v1","k2":"v2", ...
- python考级证书-python二级证书有用吗
计算机Python二级证书到底有什么用?综合来看有6个好处. 1.满足竞争需求 在大学扩招.大学生贬值.经济下行.就业困难的多重压力之下,大学生越来越难独善其身,竞争压力越来越大,就拿计算机考证人数来 ...
- python中输出n开始的5个奇数_送你99道Python经典练习题,练完直接上手做项目,免费送了来拿吧...
学python没练习题怎么行.今天,给大家准备一个项目: 99道编程练习,这些题如果能坚持每天至少完成一道,一定可以帮大家轻松 get Python 的编程技能.目前,这个项目已经获得了 2924 S ...
- python练习题及答案-python编程练习题和答案.doc
您所在位置:网站首页 > 海量文档  > 计算机 > Python python编程练习题和答案.doc3页 本文档一 ...
- python进阶练习题:IRR计算 - 盈利能力的评价【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:IRR计算 - 盈利能力的评价[难度:2级]: <跨度风格="字体重量:粗体;颜色:金"> IRR </跨度>或内部收益率,是基于所 ...
- 全国计算机等级考试Python二级知识点_1
❤关注我,不迷路❤ 点击进入完整的Python专栏 全国计算机等级考试Python二级知识点整合_1 知识点模块 具体内容 备注 安装 下载地址:www.python.org/downloads 协议 ...
最新文章
- @Override is not allowed when implementing interface method
- jsp常见获取地址函数之间的不同
- 微软职位内部推荐-SENIOR DEVELOPMENT LEAD
- html5 table的表头拖动,可拖动table表头的实现
- 自定义报错返回_Spring Cloud Feign的使用和自定义配置
- 【机器视觉】 reset_fuzzy_measure算子
- 配置虚拟机 Linux 静态IP
- android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...
- appium 5-27屏幕旋转、
- 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
- 在Akka中实现主从/网格计算模式
- mac安装gdb及为gdb进行代码签名
- 老电脑慢得像蜗牛还有救吗?
- 如何做数据库分页查询
- (转) hash 函数及其重要性
- 将element-china-area-data获取的地区编码转为文字存储
- 扫描仪共享工具(BlindScanner Pro) 3.23 特别版
- asuswrt 单臂路由_Padavan(老毛子) 最简单臂路由组网 VLAN 设置
- 够哦了下攻击力开房间的发的goole
- Android程序打包安装过程