目录
作业1:拿硬币
作业2:孪生数
作业3:列表最大值、最小值、平均值、求和
作业4:列表去重
作业5:列表合并
作业6: 使用列表判断一个列表是否在另外一个列表中
作业7:列表的反转、 列表的排序
作业8:如何将0-10随机存入列表中
作业9:完成一个登录注册案例(要求使用容器保存数据)
作业10:使用控制台,完成购买英雄的界面
作业1:拿硬币
有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
coins = int(input('请输入一堆硬币的个数:')) if coins % 2 == 0: print(f'最少{coins/2:.0f}次可以拿完硬币') else: print(f'最少{coins/2 + 1:.0f}次可以拿完硬币')
作业2:孪生数
如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"
print('0到100以内的孪生数对有:') m = 2 for num in range(3,100,2): for i in range(2,num//2 + 1): if num % i == 0: break else: if num - m == 2: print(f'({m},{num})') m = num
作业3:列表最大值、最小值、平均值、求和
给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
n = int(input('请您输入您想输入的数字个数:')) ls = [] for i in range(1,n+1): num = float(input(f'请输入第{i}个数:')) ls.append(num) print(f'您输入的数字有:{ls}') ma = ls[0] mi = ls[0] su = 0 for i in ls: su = su + i if i > ma: ma = i elif i < mi: mi = i print(f'这些数的最大值为:{ma}') print(f'这些数的最小值为:{mi}') print(f'这些数的和为:{su}') print(f'这些数的平均值为:{su/n}')
作业4:列表去重
将list中的重复数据去重,至少使用两种方案
ls = [1,2,3,3,4,1,5,2,6] print(f'原列表为:{ls}') # 方案一:set ls = list(set(ls)) print(f'方案一去重后的列表为:{ls}') # 方案二:遍历循环 ls1 = [] for n in ls: if n not in ls1: ls1.append(n) ls = ls1 print(f'方案二去重后的列表为:{ls}')
作业5:列表合并
两个列表进行合并操作
ls1 = [1,2,3] ls2 = [4,5,6] print(f'ls1:{ls1}') print(f'ls2:{ls2}') ls1.extend(ls2) print(f'将ls2合并到ls1中:{ls1}') ls1 = [1,2,3] ls2.extend(ls1) print(f'将ls1合并到ls2中:{ls2}')
作业6: 使用列表判断一个列表是否在另外一个列表中
print('下面要判断列表1是否在列表2中') n1 = int(input('请输入列表1包含的元素个数:')) ls1 = [] for i in range(1,n1+1): elem = input(f'请输入列表1的第{i}个元素:') ls1.append(elem) n2 = int(input('请输入列表2包含的元素个数:')) ls2 = [] for i in range(1,n2+1): elem = input(f'请输入列表2的第{i}个元素:') ls2.append(elem) print(f'您输入的列表1是:{ls1}') print(f'您输入的列表2是:{ls2}') flag = 1 if len(ls1) > len(ls2): print('列表1不在列表2中') else: for i in ls1: if i not in ls2: flag = 0 break if flag == 1: print('列表1在列表2中') else: print('列表1不在列表2中')
作业7:列表的反转、 列表的排序
ls = [1,3,5,2,4,6] print(f'ls:{ls}') ls.reverse() print(f'ls的反转:{ls}') ls = [1,3,5,2,4,6] ls.sort() print(f'ls的排序:{ls}')
作业8:如何将0-10随机存入列表中
import random ls = [] while True: i = random.randint(0,10) if i not in ls: ls.append(i) if len(ls) == 11: break print(f'ls = {ls}')
作业9:完成一个登录注册案例(要求使用容器保存数据)
data = {} login_flag = 0 while True: # 登录注册界面 infor = int(input('请输入您要进行的操作(1.注册 2.登录 3.退出):')) # 用户注册 if infor == 1: username = input('注册-请创建用户名:') password = input('注册-请创建密码:') insure = input('注册-确认密码:') if insure == password: data[username] = password print('注册成功!') else: print('密码确认有误!请重新输入') # 用户登录 elif infor == 2: username = input('登录-请输入用户名:') if username in data: password = input('登录-请输入密码:') for key in data: if data[key] == password: print('登录成功!') break else: print('密码错误!') else: print('该用户名不存在!') # 退出 elif infor == 3: break
作业10:使用控制台,完成购买英雄的界面
data = {} while True: login_flag = 0 # 1.英雄商城登录界面 print('\n\t\t 英雄联盟商城登录界面\n') print('~*'*28+'~\n') print('\t'*3+'1. 用户登录'+'\t'*3+'\n') print('\t'*3+'2. 新用户注册'+'\t'*3+'\n') print('\t'*3+'3. 退出系统'+'\t'*3+'\n') print('~*'*28+'~') infor1 = int(input('(温馨提示)请输入您的选项:')) # 用户注册 if infor1 == 2: username = input('注册-请创建用户名:') password = input('注册-请创建密码:') insure = input('注册-确认密码:') if insure == password: data[username] = password input('注册成功!(回车继续)') else: input('密码确认有误!(回车继续)') # 用户登录 elif infor1 == 1: username = input('登录-请输入用户名:') if username in data: password = input('登录-请输入密码:') for key in data: if data[key] == password: input('登录成功!(回车继续)') login_flag = 1 break else: input('密码错误!(回车继续)') else: input('该用户名不存在!(回车继续)') # 退出系统 elif infor1 == 3: break # 2.英雄商城首页 if login_flag == 1: while True: print('\n\n\t\t 英雄联盟商城首页\n') print('~*'*28+'~\n') print('\t'*3+'1. 进入英雄超市'+'\t'*3+'\n') print('\t'*3+'2. 休闲小游戏'+'\t'*3+'\n') print('\t'*3+'3. 退出登录'+'\t'*3+'\n') print('~*'*28+'~') infor2 = int(input('(温馨提示)请输入您的选项:')) if infor2 == 2: input('该功能暂未开放!(回车继续)') elif infor2 == 3: break elif infor2 == 1: # 3.英雄商城英雄列表 while True: print('\n\n\t\t 英雄商城英雄列表\n') print('~*'*28+'~\n') print('编号 姓名 昵称 价格 库存 描述\n') print('1 李青 盲僧 3000 100 一人之行可灭世,众人之勤可救世!\n') print('2 锐雯 放逐之刃 4000 0 她是残忍高效的战士\n') print('3 薇恩 暗夜猎手 3500 0 这个世界不想人们想象的那么美好\n') print('4 扎克 生化魔人 3000 0 即使你没有脊柱,你也必须站起来\n') print('5 杰斯 未来守护者 2500 0 武装着睿智与魅力,你的选择没有错\n') print('~*'*28+'~') infor3 = input('(温馨提示-按任意键返回上一级菜单)请输入您要购买的英雄编号:') if infor3 == '2' or infor3 == '3' or infor3 == '4' or infor3 == '5': input('抱歉,该英雄暂无库存!(回车继续)') elif infor3 == '1': # 4.英雄详情购买页面 while True: print('\n\n\t\t\t\t英雄商城购买英雄\n') print('英雄购买票据') print('~*'*38+'~') print() print('\t英雄名称:盲僧(史诗)') print('\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)\n\t\t 攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125') print() print('\t英雄座右铭:一人之行可灭世,众人之勤可救世!') print('\t英雄价格:3000') print('\t活动折扣;9.5') print() print('插播广告:当风云变色,当流离失所,世界不再是旧日模样\n'+'你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡\n') print('~*'*38+'~') n = int(input(f'折后商品价格为 {3000*9.5} 元,请输入购买数量:')) money = float(input(f'(温馨提示)您将购买 {n} 个商品,共计 {3000*9.5*n} 元,请付款:')) if money < 3000*9.5*n: input('余额不足,请重新付款!(回车继续)') else: input('付款成功!下面是您的购买小票(回车继续):') # 5.订单页面:打印小票 print('\n\n\t\t\t\t英雄商城购买英雄\n') print('英雄购买票据') print('~*'*38+'~') print() print('\t英雄名称:盲僧(史诗)') print('\t英雄价格:3000') print('\t活动折扣;9.5') print(f'\t购买数量:{n}') print() print(f'\t应付付款:{3000*9.5*n}') print(f'\t实际付款:{money}') print(f'\t找零:{money - 3000*9.5*n}') print() print('插播广告:当风云变色,当流离失所,世界不再是旧日模样\n'+'你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡\n') print('~*'*38+'~') input('(温馨提示)按任意键返回上一级菜单:') break else: break