【Python二级-练习(详细版)】

news2024/11/15 13:45:28

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)
    • 每日一言:


又是一年一度的程序员节日,在这里,用几年前放在草稿中的几个简单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']) < 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 random

for 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 random

def 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 + m
    return name


for i in range(20):
    print(names())
运行结果如下2:

在这里插入图片描述

import random

for 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 + m

    print(name)
运行效果如下3:

在这里插入图片描述


上一章链接:【MySQL~(详细)案例】


每日一言:

所谓一生活过几生,关键的问题不在长度而在宽度,勇敢地选择不一样的生活,多一次冒险,就多一次体验不同人生的机会。

有兴趣的话,可以搜索一下公众号【程序人生6】关注一下,相互交流,相互学习,一起成长,一起进步。

  • 我开始觉得,人生应该主动点。不管做什么,有什么困难,需要自己主动去明白它,那么心境就很不一样,不会有被蹂躏的感觉,要蹂躏也是自己蹂躏自己。
  • 艰难的生活永无止境,但因此,生长也永无止境。
  • 一个勇敢而率真的灵魂,能用自己的眼睛去观察,用自己的心去爱,用自己的理智去判断。不做影子,而做人。
  • 我依旧敢和生活定妆,敢在逆境里撒野,直面生活的污水,永远乐意在新一轮的月亮和日落欢呼。
  • 记忆是一种相聚的方式,放下是一种自由的形式。不必悲伤,不必忧愁,邂逅的回忆都是美好的故事。
  • 今天不想跑,所以才去跑,这才是长距离跑者的思维方式。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1133797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年腾讯云双11活动云服务器价格表

2023年腾讯云双11活动已经拉开了序幕&#xff0c;腾讯云推出了一系列的优惠活动&#xff0c;下面给大家分享腾讯云双11活动云服务器价格表&#xff0c;对于有需要购买云服务器的用户来说&#xff0c;无疑是一份非常有价值的参考。 一、腾讯云双十一活动入口 活动入口&#xff…

Python:实现日历功能

背景 日常生活中&#xff0c;每天都要用到日历&#xff0c;日历成为我们生活中的必需品&#xff0c;那么如何制作日历呢&#xff0c;其实方法有很多&#xff0c;可以直接在excel中制作&#xff0c;也可以手画等等。 学习过编程的朋友&#xff0c;能否想到用Python编写一…

吐血整理,Jmeter服务端性能测试-线程阻塞问题案例分析(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、Jstack打印快照…

vue3根据数据取消el-table选中状态获取到最新数据

原始数据&#xff1a; //el-table点击复选框事件 function getSelected(selection, row){//判断是否是已选过数据 0为没有选&#xff0c;>0有选过if(initial.value>0 ){let isCheck false //是否取消 true取消 false不取消//循环判断已选的数据是否包含当前点击获取到的…

相交链表-力扣

一、题目描述 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 二、题解 注意题目所说的相交&#xff0c;相交节点不只是数值上的相等&#xff0c;而是相交以后两条链变成一条链。 解决改题目&#xff0c;我们可以&#xff1a;…

APP 专项测试之兼容性测试

1、APP 兼容性测试认识 随着 APP 应用范围越来越广&#xff0c;用户群体越来越大&#xff0c;终端设备的型号也越来越多&#xff0c;移动终端碎片化加剧&#xff0c;使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。 APP 兼容性测试通常会考虑&#xff1a;操作系统、厂…

分享从零开始学习网络设备配置--任务4.2 使用IPv6静态及默认路由实现网络连通

任务描述 某公司利用IPv6技术搭建网络&#xff0c;公司3个部门所有PC机连接在同一交换机上&#xff0c;PC1代表行政部划分到VLAN10中&#xff0c;PC2代表财务部划分到VLAN20中&#xff0c;PC3代表销售部划分到VLAN30中&#xff0c;R1代表公司出口路由器&#xff0c;R2模拟Inter…

【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)

零基础全方位带你学习探索Docker容器开发实战指南&#xff08;底层实现系列&#xff09; Docker简介对比虚拟化技术的优势 底层特性Linux Container&#xff08;LXC&#xff09;底层实现隔离性 Linux namespacepid namespace&#xff08;隔离空间机制&#xff09;net namespace…

Unity的碰撞检测(一)

&#xff08;一&#xff09;测试前准备工作 1.创建两个游戏对象&#xff0c;分别取名为”Player”和”Enemy”&#xff0c;并且为名为”Player”的游戏对象设置Tag也为”Player”&#xff0c;二者在场景中如图1所示&#xff1a; 图 1 绿为Enemy&#xff0c;红为Player 2.编写脚…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

理性推广 | C1N短网址帮您节省运营成本!

今天所讲便是利用短链接“低成本推广”帮你节省隐性成本。 什么是短链接 1.短链接起源 说起短链接起源不得不提到微博&#xff0c;在微博推出后因为有字数限制&#xff0c;一般字数不超过140字&#xff0c;所以微博内容如果发布很长的链接就会占用很多内容&#xff0c;根据这…

OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验

1. 介绍 感知哈希算法&#xff08;Perceptual Hash Algorithm&#xff0c;简称pHash&#xff09; 是哈希算法的一种&#xff0c;主要用来做相似图片的搜索工作。 2. 原理 感知哈希算法&#xff08;pHash&#xff09;首先将原图像缩小成一个固定大小的像素图像&#xff0c;然后…

嵌入式算法——傅里叶变换算法

文章引注 https://mp.weixin.qq.com/s/5VIpNWci9YLY3m4gcYd6-w 摘要 傅里叶变换的核心在于&#xff0c;“任何连续周期信号可以由一组适当的正弦曲线组合而成”&#xff0c;在这个基础上对信号的中特定频率的正弦波进行分解或者重组&#xff0c;基于频率方面分析波形。 1、傅…

java _JDBC 开发

目录 一.封装JDBCUtiles 二.事务 三.批处理 四.数据库连接池 C3P0 Druidf(德鲁伊&#xff09;阿里 五.Apache-DBUtiles 六.Apache-DBUtils 七.DAO 和增删改查 通用方法 - BasicDao 一.封装JDBCUtiles 说明&#xff1a;在jdbc操作中&#xff0c;获取连接和释放资源&#…

民宿如何经营与管理?【民宿小程序】

随着旅游业的快速发展&#xff0c;越来越多的人选择经营民宿&#xff0c;将自己的房屋开放给旅客入住。然而&#xff0c;要成功经营一家民宿&#xff0c;并保持良好的运营状态&#xff0c;需要有效的管理和营销策略。在这个过程中&#xff0c;民宿小程序能够发挥重要作用。 民宿…

Python---练习:for循环 求1-100的和/所有偶数的和

案例&#xff1a; 使用for循环&#xff0c;求1 ~ 100的和 之前用while循环&#xff0c;做过算出1--100的和。 相关链接&#xff1a; Python--练习&#xff1a;使用while循环求1..100的和-CSDN博客 结合着看看for循环怎么实现。 思考&#xff1a; 先把for循环的基本语法写…

使用udevil自动挂载U盘或者USB移动硬盘

最近在折腾用树莓派&#xff08;实际上是平替香橙派orangepi zero3&#xff09;搭建共享文件服务器&#xff0c;有一个问题很重要&#xff0c;如何在系统启动时自动挂载USB移动硬盘。 1 使用/etc/fstab 最开始尝试了用/etc/fstab文件下增加:"/dev/sda1 /home/orangepi/s…

Unity 中忽略图片透明度的 Image 组件的修改版本

只需将此组件添加到画布中的空对象即可。请注意&#xff0c;仅支持简单 图像类型。 using System.Collections.Generic; using UnityEngine; using UnityEngine.Sprites; using UnityEngine.UI; #if UNITY_2017_4 || UNITY_2018_2_OR_NEWER using UnityEngine.U2D; #endif#if U…

分类预测 | MATLAB实现SSA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)

分类预测 | MATLAB实现SSA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09; 目录 分类预测 | MATLAB实现SSA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09;分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.MATLA…

微信小程序如何跳转页面

1.wx.navigateTo&#xff1a;用于跳转到其他页面&#xff0c;并保留当前页面。通过该 API 跳转后&#xff0c;可以通过返回按钮回到原页面。 wx.navigateTo({url: /pages/otherPage/otherPage })2.wx.redirectTo&#xff1a;用于跳转到其他页面&#xff0c;并关闭当前页面。通…