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
代码如下:
[code]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 |