1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python_杂学系列_2.复习代码

Python_杂学系列_2.复习代码

时间:2023-08-26 03:35:54

相关推荐

Python_杂学系列_2.复习代码

系列文章目录

文章目录

系列文章目录前言一、有四个数字:1、2、3、4二、递归函数三、迭代器四、九九乘法表五、不定长参数*args,**kwargs六、当前时间,计算海里七、字典推导式八、计算机九、输出0-100的偶数,素数十、个人的BMI指数11. 文本进度条12.敏感词替换13.判断水仙花数14. 找出最大数15.计算三角形面积16.下载模拟操作17. 判断4位回文数18. 数据加密19.逢七拍手游戏20.登录系统账号检测21.猜数游戏22. 刮刮乐23.商品价格区间排序24.好友管理系统25.中文数字对照表26.手机通讯录27.生词本28.学生信息管理系统29.斐波那契数列30.随机生成验证码31.绘制多角星总结

前言

仅供python复习


一、有四个数字:1、2、3、4

for i in range(1,5):for j in range(1,5):for k in range(1,5):if( i != k ) and (i != j) and (j != k):print (f'{i},{j},{k}')##-----------------------------------;# list = [1,2,3,4]# for i in list:#list1 = list.copy()#list1.remove(i)#for j in list1:# list2 = list1.copy()# list2.remove(j)# for k in list2:# print(i, j, k)

二、递归函数

num1 = int(input("请输入要求的阶层:"))def forr(num):if num == 1:return 1else:return num * forr(num - 1)a = forr(num1)print(a)while 1:num2 = int(input("请输入要求的阶层:"))a = forr(num2)print(a)ch = input("是否继续进行运算(输入Y或N)?")if ch == "N" or ch == "n":break

三、迭代器

st=[1,2,3,4,]it=iter(st)print(next(it))print(next(it))print(next(it))print(next(it))

四、九九乘法表

for j in range(1,10):for i in range(1,j+1):print('%d*%d=%d'%(i,j,i*j),end='\t')i+=1print()j+=1

五、不定长参数*args,**kwargs

def re(*args):print(args)re(1, 2.1, "luyi", True)def re(**kwargs):print(kwargs)re(a=1, b=2.1, c="luyi", d=True)def id(time, air, tem):print(f'明天几号:{time}')print(f"明天几号:{air}")print(f"明天几号:{tem}")id(1, 2, 3)

六、当前时间,计算海里

import timeprint(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))hl=input("请输入海里:")gl=float(hl)/1.825print("计算出来的公里为:",gl)

七、字典推导式

def getPairs(dict):for k,v in dict.items() :print(k,v,sep=':')getPairs({x : x ** 3 for x in (1,2,3,4)})

八、计算机

num_one = int(input('请输入第一个数:'))num_two = int(input('请输入第二个数:'))def oper(parm_one, parm_two):operator = input('请选择要执行的运算符:+、-、*、/' + '\n')if operator == "+":print("计算结果为:", +parm_one + parm_two)elif operator == '-':print("计算结果为:", parm_one - parm_two)elif operator == '*':print("计算结果为:", parm_one * parm_two)elif operator == '/':if parm_two == 0:print('被除数不能为0')else:print("计算结果为:", parm_one / parm_two)oper(num_one, num_two)

九、输出0-100的偶数,素数

i=0while i<100:if i%2==0:print(i)i+=1

i=2for i in range(2,100):j=2for j in range(2,i):if i%j==0 :breakelse : print(i)

十、个人的BMI指数

"""根据用户输入的数据实现计算BMI值"""'''体质指数(BMI)=体重(kg)÷身高*身高(m)成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32'''# 将输入的身高体重转换为float类型height = float(input('请输入您的身高(m):'))weight = float(input('请输入您的体重(kg):'))BMI = weight / (height * height)print('您的BMI值为%.2f' % BMI)if BMI < 18.5:print('体重过轻')elif 18.5 <= BMI <= 23.9:print('体重正常')elif 24 <= BMI <= 27:print('体重过重')elif 28 <= BMI <= 32:print('体重肥胖')else:print('非常肥胖')

11. 文本进度条

import timeincomplete_sign = 50 # .的数量print('='*23+'开始下载'+'='*25)for i in range(incomplete_sign + 1):completed = "*" * i # 表示已完成incomplete = "." * (incomplete_sign - i) # 表示未完成percentage = (i / incomplete_sign) * 100 # 百分比print("\r{:.0f}%[{}{}]".format(percentage, completed, incomplete), end="")time.sleep(0.5)print("\n" + '='*23+'下载完成'+'='*25)"""本案例涉及到print()函数、for循环、以及format()方法的使用。首先定义一个变量接收总的任务量,然后在for循环体中编写表示已完成、未完成、完成百分比,最后使用format()方法将字符串进行格式化输出,需要说明的是\r在这里表示将默认输出的内容返回到第一个指针,后面的内容会覆盖掉前面的内容,这样就达到了实时显示进度条的功能。\r 默认表示将输出的内容返回到第一个指针,这样的话,后面的内容会覆盖前面的内容"""

12.敏感词替换

"""敏感词过滤思路:给定一个字符串,判断字符串中的文字是否在用户输入的数据中,如果存在使用*替换"""sensitive_character = '你好' # 敏感词库test_sentence = input('请输入一段话:')for line in sensitive_character: # 遍历输入的字符是存在敏感词库中if line in test_sentence: # 判断是否包含敏感词test_sentence = test_sentence.replace(line, '*')print(test_sentence)# 你好,我是张三

13.判断水仙花数

num3 = int(input("请输入一个三位数:"))hundreds_place = int(num3 // 100 % 10) # 百位ten_place = int(num3 / 10 % 10) # 十位one_place = int(num3 % 10) # 个位if hundreds_place ** 3 + ten_place ** 3 + one_place ** 3 == num3:print(f"{num3}是水仙花数")else:print(f"{num3}不是水仙花数")

14. 找出最大数

num_one = int(input("请输入一个整数:"))num_two = int(input("请输入一个整数:"))num_three = int(input("请输入一个整数:"))if num_one > num_two:if num_one > num_three:print("最大的数是:", num_one)else:print("最大的数是:", num_three)else:if num_two > num_three:print("最大的数是:", num_two)else:print("最大的数是:", num_three)

15.计算三角形面积

one_len = float(input('输入三角形第一边长: '))two_len = float(input('输入三角形第二边长: '))three_len = float(input('输入三角形第三边长: '))# 计算半周长s = (one_len + two_len + three_len) / 2# 计算面积area = (s * (s - one_len) * (s - two_len) * (s - three_len)) ** 0.5print('三角形面积为%0.1f' % area)

16.下载模拟操作

select = input('是否需要下载?(y/n):')if select == 'y' or select == 'Y':print('----正在请求下载----')elif select == 'n' or select == 'N':print('----3秒后将返回首页----')elif select != 'y' and 'n':print('输入有误,请重新选择')

17. 判断4位回文数

def hui(palindrome_num):# palindrome_num = int(input("请输入一个四位数:"))single = (palindrome_num //1000)ten = (palindrome_num //100 % 10)hundred = (palindrome_num //10 % 10)ths = int(palindrome_num % 10)reverse_order = ths * 1000 + hundred * 100 + ten * 10 + singleif palindrome_num == reverse_order:print(palindrome_num,"是回文数")else:print(palindrome_num,"不是回文数")while 1:s1=int(input("请输入一个四位数:"))hui(s1)ch=input("是否继续判断(请输入y/n)?")if ch=="n":break

18. 数据加密

raw_data = input('请输入密码:')num_asc = 0 # ASCII累加值str_pwd = '' # ASCII拼接值for i in raw_data:ascii_val = ord(i) # 1.获取每个元素的ASCII值num_asc = ascii_val + num_asc # 2.对遍历的ASCII值进行累加操作str_pwd += str(ascii_val) # 3.拼接操作reversal_num = str_pwd[::-1] # 4.将拼接的ASCII值倒序排列encryption_num = int(reversal_num) + num_asc # 5.进行运算操作print(f"加密后的密码为:{encryption_num}")

19.逢七拍手游戏

# 包含7和7的倍数小游戏(100以内)for i in range(1, 101):# 把i转成字符串,使用find方法(字符串中不包含时,返回-1)include = str(i).find("7")# 判断条件:既不包含7,也不是7的倍数if include == -1 and int(i) % 7 != 0:# 输出,去掉了换行符,加了、print(i, end="、")# 如果包含7 输出*elif include != -1 or int(i) % 7 == 0:print("*", end='、')

20.登录系统账号检测

"""用户名:admin密码:123"""count = 0 # 用于记录用户错误次数while count < 3:user = input("请输入您的账号:")pwd = input("请输入您的密码:")if user == 'admin' and pwd == '123': # 进行账号密码比对print('登录成功')breakelse:print("用户名或密码错误")count += 1 # 初始变量值自增1if count == 3:# 如果错误次数达到3次,则提示并退出print("输入错误次数过多,请稍后再试")else:print(f"您还有{3-count}次机会") # 显示剩余次数

21.猜数游戏

import randomprint("猜数字游戏,输入一个1-100以内的数字")random_num = random.randint(1, 100)# print(random_num) # 打开注释可查看生成的随机数for frequency in range(1,6):number = input("请输入一个数字:")if number.isdigit() is False:print('请输入一个正确的数字')elif int(number) < 0 or int(number) > 100:print("请输入1-100范围的数字")elif random_num == int(number):print("恭喜你用了%d次猜对了" % frequency)breakelif random_num > int(number):print("很遗憾,你猜小了")else:print("很遗憾,你猜大了")if frequency == 5:print("很遗憾,%d次机会已用尽,游戏结束,答案为%d" %(frequency, random_num))# import random# name = input('您的大名是?')# print('您好,' + name + '!我们来玩儿猜数字游戏吧!')# minNum = int(input('请输入一个最小值:'))# maxNum = int(input('再输入一个最大值:'))# secret = random.randint(minNum, maxNum)# guess = 0# tries = 0# while guess != secret and tries < 5:#guess = int(input('猜数字游戏开始,请输入数字:'))#if guess > secret:# print('您输入的数字大了!')#elif guess < secret:# print('您输入的数字小了!')#tries += 1#print('这是您第' + str(tries) + '次尝试!')# if guess == secret:#print('恭喜,您猜对了!')#print('游戏结束,再见!^_^')# else:#print('哦哟,机会用完了,下次再来吧!')

22. 刮刮乐

reward_info = ["谢谢惠顾", "一等奖", "三等奖", "谢谢惠顾", "谢谢惠顾", "三等奖", "二等奖", "谢谢惠顾"]num = int(input("请输入刮去的位置(1~8):"))if 0 <= num <= len(reward_info):info = reward_info[num - 1]print(f"{info}")else:print("输入的位置不合规!")

23.商品价格区间排序

price_li = [399, 4369, 539, 288, 109, 749, 235, 190, 99,1000]section_li = []max_section = int(input("请输入最大价格:"))min_section = int(input("请输入最小价格:"))for i in price_li:if min_section <= i <= max_section:section_li.append(i)print("1.价格降序排序")print("2.价格升序排序")choice_num = int(input("请选择排序方式:"))if choice_num == 1:section_li.sort(reverse=True)else:section_li.sort()print(section_li)

24.好友管理系统

"""好友系统增加删除修改查询"""# friend = ['张三', '李四', '王五']friends = []print("欢迎使用好友系统")print("1:添加好友")print("2:删除好友")print("3:备注好友")print("4:展示好友")print("5:退出")while True:num = int(input("请输入您的选项:"))if num == 1:add_friend = input("请输入要添加的好友:")friends.append(add_friend)print('好友添加成功')elif num == 2:del_friend = input("请输入删除好友姓名:")friends.remove(del_friend)print("删除成功")elif num == 3:before_friend = input("请输入要修改的好友姓名:")after_friend = input("请输入修改后的好友姓名:")friend_index = friends.index(before_friend)friends[friend_index] = after_friendprint("备注成功")elif num == 4:if len(friends) == 0:print("好友列表为空")else:for i in friends:print(i)elif num == 5:break

25.中文数字对照表

uppercase_numbers = ("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")number = input("请输入一个数字:")for i in range(len(number)):print(uppercase_numbers[int(number[i])], end="")

26.手机通讯录

# 实际案例中,将删除查找联系人功能(index方法没有涉及)person_info = []print("=" * 20)print('欢迎使用通讯录:')print("1.添加联系人")print("2.查看通讯录")print("3.删除联系人")print("4.修改联系人信息")print("5.查找联系人")print("6.退出")print("=" * 20)while True:per_dict = {}fun_num = input('请输入功能序号:')if fun_num == '1':per_name = input('请输入联系人的姓名:')phone_num = input('请输入联系人的手机号:')per_email = input('请输入联系人的邮箱:')per_address = input('请输入联系人的地址:')# 判断输入的是否为空if per_name.strip() == '':print('请输入正确信息')continueelse:per_dict.update({'姓名': per_name,'手机号': phone_num,'电子邮箱': per_email,'联系地址': per_address})person_info.append(per_dict) # 保存到列表中print('保存成功')elif fun_num == '2':if len(person_info) == 0:print('通讯录无信息')for i in person_info:for title, info in i.items():print(title + ':' + info)elif fun_num == '3': # 删除if len(person_info) != 0:del_name = input('请输入要删除的联系人姓名:')for i in person_info:if del_name in i.values():person_info.remove(i)print(person_info)print('删除成功')else:print('该联系人不在通讯录中')else:print('通讯录无信息')elif fun_num == '4': # 修改if len(person_info) != 0:modi_info = input('请输入要修改联系人姓名:')for i in person_info:if modi_info in i.values():# 获取所在元组在列表中的索引位置index_num = person_info.index(i)dict_cur_perinfo = person_info[index_num]for title, info in dict_cur_perinfo.items():print(title + ':' + info)modi_name = input('请输入新的姓名:')modi_phone = input('请输入新的手机号:')modi_email = input('请输入新的邮箱:')modi_address = input('请输入新的地址:')dict_cur_perinfo.update(姓名= modi_name)dict_cur_perinfo.update(手机号= modi_phone)dict_cur_perinfo.update(电子邮箱= modi_email)dict_cur_perinfo.update(联系地址= modi_address)print(person_info)else:print('通讯录无信息')elif fun_num == '5': # 查找if len(person_info) != 0:query_name = input('请输入要查找的联系人姓名:')for i in person_info:if query_name in i.values():index_num = person_info.index(i)for title, info in person_info[index_num].items():print(title + ':' + info)breakelse:print('该联系人不在通讯录中')else:print('通讯录无信息')elif fun_num == '6': # 退出break

27.生词本

data_set = set()print('=' * 20)print('欢迎使用生词记录器')print('1.查看单词本')print('2.背单词')print('3.添加新单词')print('4.删除单词')print('5.清空单词本')print('6.退出')print('=' * 20)while 1:word_data_dict = {}fun_num = input('请输入功能编号:')if fun_num == '1': # 查看生词本if len(data_set) == 0:print('生词本内容为空')else:print(data_set)elif fun_num == '2': # 背单词if len(data_set) == 0:print('生词本内容为空')else:for random_words in data_set:w = random_words.split(':')in_words = input("请输入" + w[1]+':\n')if in_words == w[2].strip():print('太棒了')else:print('再想想')elif fun_num == '3': # 添加新单词new_words = input('请输入新单词:')new_china = input('请输入单词翻译:')word_data_dict.update({'单词': new_words, '翻译': new_china})dict_str = str(word_data_dict).replace('{', '') \.replace('}', '').replace("'", '')data_set.add(dict_str)print('单词添加成功')dict_str = dict_str.replace(',','')print(dict_str)elif fun_num == '4': # 删除单词if len(data_set) == 0:print('生词本为空')else:li_st = list(data_set)print(li_st)del_wd = input("请输入要删除的单词:")for i in li_st:if del_wd in i:data_set.remove(i)print('删除成功')breakelse:print('请输入正确的单词')elif fun_num == '5': # 清空if len(data_set) == 0:print('生词本为空')else:data_set.clear()print('清空')elif fun_num == '6':break

28.学生信息管理系统

"""使用自定义函数,完成对程序的模块化学生信息包含:姓名、性别、手机号该系统具有的功能:添加、删除、修改、显示、退出系统设计思路:提示用户选择功操作获取用户选择的功能根据用户的选择,分别调用不同的函数"""# 新建一个列表,用来保存学生的所有信息stu_info = []# 功能打印def print_menu():print('=' * 30)print('学生管理系统')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.显示所有学生信息')print('0.退出系统')# 定义一个添加学生信息的函数def add_stu_info():# 提示并获取学生的姓名new_name = input('请输入新学生的姓名:')# 提示并获取学生的性别new_sex = input('请输入新学生的性别:')# 提示并获取学生的手机号new_phone = input('请输入新学生的手机号码:')new_info = dict()new_info['name'] = new_namenew_info['sex'] = new_sexnew_info['phone'] = new_phonestu_info.append(new_info)# 定义删除学生信息的函数def del_stu_info(student):del_num = int(input('请输入要删除的序号:')) - 1if del_num in range(0,len(student)):del student[del_num]else:print('数据不存在')# 定义修改学生信息的函数,具体代码如下:def modify_stu_info():if len(stu_info) !=0:stu_id = int(input('请输入要修改学生的序号:'))new_name = input('请输入要修改学生的姓名:')new_sex = input('请输入要修改学生的性别:(男/女)')new_phone = input('请输入要修改学生的手机号码:')stu_info[stu_id - 1]['name'] = new_namestu_info[stu_id - 1]['sex'] = new_sexstu_info[stu_id - 1]['phone'] = new_phoneelse:print('学生信息表为空')# 定义显示学生信息的函数def show_stu_info():print('学生的信息如下:')print('=' * 30)print('序号 姓名 性别 手机号码')i = 1for tempInfo in stu_info:print("%d %s %s %s" %(i, tempInfo['name'], tempInfo['sex'], tempInfo['phone']))i += 1# 在main函数中执行不同的功能def main():while True:print_menu() # 打印菜单key = input("请输入功能对应的数字:") # 获取用户输入的序号if key == '1': # 添加学生信息add_stu_info()elif key == '2': # 删除学生信息del_stu_info(stu_info)elif key == '3': # 修改学生信息modify_stu_info()elif key == '4': # 查看所有学生的信息show_stu_info()elif key == '0':quit_confirm = input('确认退出?(Yes or No):')if quit_confirm == 'Yes':break # 跳出循环else:print('输入有误,请重新输入')if __name__ == '__main__':main()

29.斐波那契数列

"""使用递归解决 斐波那契数列"""def fib(n):if n == 1 or n == 2:return 1return fib(n - 1) + fib(n - 2)number = int(input('请输入一个正整数: '))result = fib(number)print("第%d个斐波那契数为:%d" % (number, result))# def factorial(n):#if n < 1:# return -1#if n == 1 or n == 2:# return 1#else:# return factorial(n - 1) + factorial(n - 2)### number = int(input('请输入一个正整数:'))# result = factorial(number)# print("%d 的斐波那契数列最大值:%d" % (number, result))

30.随机生成验证码

"""随机生成6位的验证码(字母数字随机组合,包含大小写)chr()函数返回值是当前整数对应的ascii字符。"""import randomdef verifycode():code_list = ''# 每一位验证码都有三种可能(大写字母,小写字母,数字)for i in range(6): # 控制验证码生成的位数state = random.randint(1, 3)if state == 1:first_kind = random.randint(65, 90) # 大写字母random_uppercase = chr(first_kind)code_list = code_list + random_uppercaseelif state == 2:second_kinds = random.randint(97, 122) # 小写字母random_lowercase = chr(second_kinds)code_list = code_list + random_lowercaseelif state == 3:third_kinds = random.randint(0, 9)code_list = code_list + str(third_kinds)return code_listif __name__ == '__main__':verifycode = verifycode()print(verifycode)

31.绘制多角星

import turtle as tt.color('black', 'red') # 设置画笔颜色,以及填充颜色t.setup(450, 400) # 设置主窗口的大小为450*400t.begin_fill() # 在绘制要填充的形状之前调用while True:t.forward(150)# 向当前画笔移动150个像素t.left(150) # 逆时针移动150if abs(t.pos()) < 1: # 如果当位置绝对值小于跳出循环breakt.end_fill()# 结束填充位置t.done()# 停止画笔绘制,窗体不关闭

总结

一定要好好复习

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。