第四天 第四章 实战
| 数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
| 列表(list) | 可变 | 可重复 | 有序 | [] |
| 元组(tuple) | 不可变 | 可重复 | 有序 | () |
| 字典(dictionary) | 可变 | 可重复 | 无序 | {key:value} |
| 集合(set) | 可变 | 不可重复 | 无序 | {} |
一、输出“王者荣耀”的游戏角色:
# 坦克 英雄列表 Tanks =['苏烈','刘邦','钟馗','张飞','牛魔','程咬金','白起','刘禅','庄周','项羽','廉颇','巨灵神','安禄山','猪八戒'] # 战士 英雄列表 warriors=['狂铁','裴擒虎','铠','孙悟空','哪吒','杨戬','橘右京','亚瑟','雅典娜','夏侯惇','关羽','吕布','韩信','老夫子','达摩','典韦','曹操','钟无艳','墨子','赵云','刑天','龙且'] # 刺客 英雄列表 Assassins=['百里玄策','庞统','花木兰','阿轲(荆轲)','不知火舞','李白','娜可露露','兰陵王','露娜','韩信','宫本武藏','盖聂','红拂'] # 法师 英雄列表 Masters =['杨玉环','弈星','女娲','周瑜','鬼谷子','芈月','干将莫邪','东皇太一','大乔','诸葛亮','貂蝉','张良','安琪拉','不知火舞','姜子牙','武则天','王昭君','甄姬','扁鹊','高渐离','嬴政','妲己','小乔'] # 射手 英雄列表 Shooters=['公孙离','百里守约','后羿','刘备','黄忠','马可波罗','成吉思汗','虞姬','李元芳','艾琳','狄仁杰','鲁班七号','孙尚香'] # 辅助 英雄列表 auxiliarys=['明世隐','梦奇','孙膑','太乙真人','蔡文姬'] # 输出提示文字 print('“王者荣耀”游戏角色:') print('====坦克:====') # 循环坦克 英雄列表 for Tank in Tanks: # 输出列表内容 每次输出后以空格分割开 print(Tank, end=' ') # 换行输出内容 print('\n====战士:====') for warrior in warriors: print(warrior, end=' ') print('\n====刺客:====') for Assassin in Assassins: print(Assassin, end=' ') print('\n====法师:====') for Master in Masters: print(Master, end=' ') print('\n====射手:====') for Shooter in Shooters: print(Shooter, end=' ') print('\n====辅助:====') for auxiliary in auxiliarys: print(auxiliary, end=' ')
二、模拟火车订票系统
# 检查是否有该车次方法 def check_train_number(string): # 检查某个元素是否是列表的成员 这里检查输入的车次是否是包含在车次系列中 if string in train_numbers: # 包含在车次系列中退出方法 return string else: # 输出不包含在车次系列中,提示用户再次输入 y = input("没有该车次,请重新输入要购买的车次:") # 检查输入的车次是否存在在车次系列中 return check_train_number(y) type=['车次','出发站-到达站','出发时间','到达时间','历时'] # 车次列表 train_numbers=['T40','T298','Z158','Z62'] # 出发站-到达站列表 DepartureStation_ArrivalStation=['长春-北京','长春-北京','长春-北京','长春-北京'] # 出发时间列表 Departure_time=['00:12','00:06','12:48','21:58'] # 到达时间列表 Arrival_time=['12:20','10:50','21:06','06:08'] # 用时列表 Duration=['12:08','10:44','08:18','8:20'] # 输出火车票信息 print('{} {} {} {} {}'.format(type[0],type[1],type[2],type[3],type[4])) print('{} {} {} {} {}'.format(train_numbers[0],DepartureStation_ArrivalStation[0],Departure_time[0],Arrival_time[0],Duration[0])) print('{} {} {} {} {}'.format(train_numbers[1],DepartureStation_ArrivalStation[1],Departure_time[1],Arrival_time[1],Duration[1])) print('{} {} {} {} {}'.format(train_numbers[2],DepartureStation_ArrivalStation[2],Departure_time[2],Arrival_time[2],Duration[2])) print('{} {} {} {} {}'.format(train_numbers[3],DepartureStation_ArrivalStation[3],Departure_time[3],Arrival_time[3],Duration[3])) # 提示用户虚入车次 train_number=input("请输入要购买的车次:") # 检查输入的车次是否包含在列表中,接收正确的车次 train_number=check_train_number(train_number) # 提示用户输入乘车人信息 user_rider = input("请输入乘车人(用逗号分隔):") # 判断购买的是哪个车次,根据选购的车次判断出发时间 if train_number==train_numbers[0]: time=Departure_time[0] if train_number==train_numbers[1]: time=Departure_time[1] if train_number==train_numbers[2]: time=Departure_time[2] if train_number == train_numbers[3]: time = Departure_time[3] print('你已购'+train_number+'次列车 长春-北京 '+time+"开,请"+user_rider+'尽快换取纸质车票。【铁路客服】')
三、电视剧的收视率排行榜
# 电视剧信息列表 每条信息包含收视率信息 TV_plays=[('《Give up,hold on to me》',1.4), ('《The private dishes of the husbands》',1.343), ('《My father-in-law will do martiaiarts》',0.92), ('《North Canton still believe in love》',0.862), ('《Impossible task》',0.553), ('《Sparrow》',0.411), ('《East of dream Avenue》',0.164), ('《Theprodigal son of the new frontier town》',0.259), ('《Distant distance》',0.394), ('《Music legend》',0.562), ] # 使用内置srted方法进行降序排序 TV_plays=sorted(TV_plays, key=lambda s: s[1], reverse=True) print('电视剧的收视率排行榜:') # 循环输出电视剧信息 for TV_play in TV_plays: print(TV_play[0]+' 收视率:'+str(TV_play[1])+'%')
四、定制手机套餐
# 自定义判断选项方法 x 和 y分别代表 输入的内容 和 总字数 def check(x,y): # 捕捉转换类型错误异常 try: # 转换输入内容类型 x =int(x) # 错误执行的方法 except: # 输入错误重新提示用户输入 x = input("您输入的套餐不存在请从新输入:") # 重新启动检测错误方法 return check(x, y) # 检测输入的是在范围内 if x>0 and x<=y: # 在范围内返回 return x else: # 不在范围内提示用户重新输入 x = input("您输入的套餐不存在请从新输入:") # 重新启动检测方法 return check(x,y) # 可设置话费列表 Bill_sets=['0分钟','50分钟','100分钟','300分钟','不限量'] # 可设置流量列表 flow_sets=['0M','500M','1G','5G','不限量'] # 可设置短信列表 sms_sets=['0条','50条','100条 '] # 控制台输出提示 print('定制自己的手机套餐:') # 通话设置 print('{}\n{}\n{}\n{}\n{}\n{}'.format('A.请设置通话时长:',"1."+Bill_sets[0],"2."+Bill_sets[1],"3."+Bill_sets[2],"4."+Bill_sets[3],"5."+Bill_sets[4])) # 提示用户输入选择通话时间 Aset=input("输入选择的通话时间编号:") # 检测输入内容的合法性 并返回正确内容 Aset =check(Aset,5) # 提示用户设置流量 print('\n{}\n{}\n{}\n{}\n{}\n{}'.format('B.请设置流量:',"1."+flow_sets[0],"2."+flow_sets[1],"3."+flow_sets[2],"4."+flow_sets[3],"5."+flow_sets[4])) # 提示用户输入选择流量 Bset=input("输入选择的通话时间编号:") # 检测输入内容的合法性 并返回正确内容 Bset =check(Bset,5) # 提示用户设置短信条数 print('\n{}\n{}\n{}\n{}'.format('C.请设置短信条数:',"1."+sms_sets[0],"2."+sms_sets[1],"3."+sms_sets[2])) # 提示用户输入选择短信条数 Cset=input("输入选择的通话时间编号:") # 检测输入内容的合法性 并返回正确内容 Cset =check(Cset,3) print('\n您的手机套餐定制成功:免费通话时长为'+Bill_sets[Aset-1]+'/月 ,流量为'+flow_sets[Bset-1]+'/月,短信条数'+sms_sets[Cset-1]+'/月')

浙公网安备 33010602011771号