【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, 200
h = a
a = b
b = h
print(a, b)

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


a, 200
jh(a, b)

方法三:

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

方法四:

a, 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, 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', 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'], 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', encoding='utf-8') as f:
        x = f.read()

    with open('汉字.txt', 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', encoding='utf-8') as f:
        x = f.read()
        x = list(x)
    x = random.choice(x)
    with open('汉字.txt', 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', 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~(详细)案例】


每日一言:

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

有兴趣的话,可以扫一下公众号二维码关注一下,相互交流,相互学习,一起成长,一起进步。

520

持续更新中…

原文地址:https://blog.csdn.net/m0_66318554

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Python中的函数(二) 在上一篇文章中提到了Python中函数的定义和使用,在这篇文章里我们来讨论下关于函数的一些更深的话题。在学习C语言函数的时候,遇到的问题主要有形参实参的区别、参数的传递和改变、变量的作用域。同样在Python中,关于对函数的理解和使用也存在这些问题。下面来逐一讲解。一.函
Python中的字符串 可能大多数人在学习C语言的时候,最先接触的数据类型就是字符串,因为大多教程都是以&quot;Hello world&quot;这个程序作为入门程序,这个程序中要打印的&quot;Hello world&quot;就是字符串。如果你做过自然语言处理方面的研究,并且用Python
Python 面向对象编程(一) 虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程。下面就来了解一下如何在Python中进行对象编程。一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。 类是对现实世界中一些事物的封装,
Python面向对象编程(二) 在前面一篇文章中谈到了类的基本定义和使用方法,这只体现了面向对象编程的三大特点之一:封装。下面就来了解一下另外两大特征:继承和多态。 在Python中,如果需要的话,可以让一个类去继承一个类,被继承的类称为父类或者超类、也可以称作基类,继承的类称为子类。并且Pytho
Python中的函数(一) 接触过C语言的朋友对函数这个词肯定非常熟悉,无论在哪门编程语言当中,函数(当然在某些语言里称作方法,意义是相同的)都扮演着至关重要的角色。今天就来了解一下Python中的函数用法。一.函数的定义 在某些编程语言当中,函数声明和函数定义是区分开的(在这些编程语言当中函数声明
在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方便和顺手,就是web.py。它由一名黑客所创建,但是不幸的是这位创建者于2013年自杀了。据说现在由
将Sublime Text 2搭建成一个好用的IDE 说起编辑器,可能大部分人要推荐的是Vim和Emacs,本人用过Vim,功能确实强大,但是不是很习惯,之前一直有朋友推荐SUblime Text 2这款编辑器,然后这段时间就试了一下,就深深地喜欢上这款编辑器了...
Python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt这个函数,必须用语句&quot;#include&lt;math.h&gt;&quot;引入math.h这个头文件,否则是无法正常进行调用的。那么在Python中,如果要引用一些内置的函数,该怎么处理呢?在Python中
Python的基础语法 在对Python有了基础的认识之后,下面来了解一下Python的基础语法,看看它和C语言、java之间的基础语法差异。一.变量、表达式和语句 Python中的语句也称作命令,比如print &quot;hello python&quot;这就是一条语句。 表达式,顾名思义,是
Eclipse+PyDevʽjango+Mysql搭建Python web开发环境 Python的web框架有很多,目前主流的有Django、Tornado、Web.py等,最流行的要属Django了,也是被大家最看好的框架之一。下面就来讲讲如何搭建Django的开发环境。一.准备工作 需要下载的
在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便。 Ulipad下载地址: https://github.com/limodou/ulipad http://files.cnblogs.com/dolphin0520/u...
Python中的函数(三) 在前面两篇文章中已经探讨了函数的一些相关用法,下面一起来了解一下函数参数类型的问题。在C语言中,调用函数时必须依照函数定义时的参数个数以及类型来传递参数,否则将会发生错误,这个是严格进行规定的。然而在Python中函数参数定义和传递的方式相比而言就灵活多了。一.函数参数的
在Notepad++中搭配Python开发环境 Python在最近几年一度成为最流行的语言之一,不仅仅是因为它简洁明了,更在于它的功能之强大。它不仅能够完成一般脚本语言所能做的事情,还能很方便快捷地进行大规模的项目开发。在学习Python之前我们来看一下Python的历史由来,&quot;Pytho
Python中的条件选择和循环语句 同C语言、Java一样,Python中也存在条件选择和循环语句,其风格和C语言、java的很类似,但是在写法和用法上还是有一些区别。今天就让我们一起来了解一下。一.条件选择语句 Python中条件选择语句的关键字为:if 、elif 、else这三个。其基本形式如
关于raw_input( )和sys.stdin.readline( )的区别 之前一直认为用raw_input( )和sys.stdin.readline( )来获取输入的效果完全相同,但是最近在写程序时有类似这样一段代码:import sysline = sys.stdin.readline()
初识Python 跟学习所有的编程语言一样,首先得了解这门语言的编程风格和最基础的语法。下面就让我们一起来了解一下Python的编程风格。1.逻辑行与物理行 在Python中有逻辑行和物理行这个概念,物理行是指在编辑器中实际看到的一行,逻辑行是指一条Python语句。在Python中提倡一个物理行只
当我们的代码是有访问网络相关的操作时,比如http请求或者访问远程数据库,经常可能会发生一些错误,有些错误可能重新去发送请求就会成功,本文分析常见可能需要重试的场景,并最后给出python代码实现。
1.经典迭代器 2.将Sentence中的__iter__改成生成器函数 改成生成器后用法不变,但更加简洁。 3.惰性实现 当列表比较大,占内存较大时,我们可以采用惰性实现,每次只读取一个元素到内存。 或者使用更简洁的生成器表达式 4.yield from itertools模块含有大量生成器函数可
本文介绍简单介绍socket的常用函数,并以python-kafka中的源码socketpair为例,来讲解python socket的运用
python实践中经常出现编码相关的异常,大多网上找资料而没有理解原理,导致一次次重复错误。本文对常用Unicode、UTF-8、GB2312编码的原理进行介绍,接着介绍了python字符类型unicode和str以及常见编解码错误UnicodeEncodeError和UnicodeDEcodeEr