欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

铁路查询系统

程序员文章站 2022-05-14 09:49:24
本实例综合运用了列表、字典、元祖以及for循环、while循环和if-else语句,是入门同学比较经典的事例之一。 ......

 本实例综合运用了列表、字典、元祖以及for循环、while循环和if-else语句,是入门同学比较经典的事例之一。


china_ditie = {

"北京": {

"一号线": ["四惠", "大望路", "*", "西单"],

"二号线": ["北京站", "朝阳门", "东直门", "西直门"],

"三号线": ["国贸", "三元桥", "知春路", "巴沟"]

},

"上海": {

"四号线": ["徐家汇", "人民广场", "延长路", "共康路", "呼兰路"],

"五号线": ["东昌路", "静安寺", "江苏路", "虹桥火车站"],

"六号线": ["宝山路", "赤峰路", "曹阳路", "虹桥路", "宜山路"]

},

"广州": {

"七号线": ["东山口", "农讲所", "烈士陵园", "公园前", "体育西路"],

"八号线": ["黄边", "纪念堂", "三元里", "白云公园"],

"九号线": ["沙河顶", "北京路", "一德路", "文化公园"]

},

"深圳": {

"一号线": ["高新园", "桃园", "白石洲", "华侨城"],

"四号线": ["白石龙", "明乐", "少年宫", "红山"],

"五号线": ["大学城", "兴东", "西里", "深圳北站"]

},

}
import time
start = true
city_list =[] #用于存储一级菜单的列表(城市)
xian_list =[] #用于存储二级菜单的列表(线路)
print("\033[31;1m欢迎访问地铁查询系统\033[1m".center(40,"="))#给输入的内容加颜色
while start : #死循环
print("".center(36,"="))
for v,city in enumerate(china_ditie.keys(),1) :#循环输出字典中的城市,用到了枚举,v表示城市的编号,city表示对应的城市,并且编号从1开始
print(v,city) #打印城市列表并编号
city_list.append(city) #把城市名称存储到一级菜单的列表里
print("退出 \033[31;1mq\033[1m") #提示语句退出按q
print("".center(36,"=")) # 生成分隔符
c_city=input("请选择你要查询的城市编号:") #输入城市编号
print("".center(36,"="))#生成分隔符
if c_city == "q" or c_city == "q" :#打印城市列表选择q退出
break
if c_city.isdigit() :#判断是否为数字,数字转换成int类型
c_city=int(c_city)
if c_city <= len(city_list) and c_city >0 :#判断输入编号是否存在
while start :
for x,xian in enumerate(china_ditie[city_list[c_city-1]].keys(),1):#循环城市地铁线路名称(for基于enumerate的索引,格式固定)
print(x,xian) #打印线路名称,x在此处只是一个数
xian_list.append(xian) #将线路加入到线路列表中
print("返回上一级\033[31;1mb\033[1m,退出 \033[31;1mq\033[1m")
print("".center(36,"="))#分割线
c_xian = input("请选择你要查询的线路:") #让用户输入查询的线路
print("".center(36,"="))#分割线
if c_xian == "b" or c_xian == "b" :#退出当前循环返回上一级
del city_list[:] #删除城市列表中的所有数据
del xian_list[:] #删除线列表中的所有数据
break
elif c_xian == "q" or c_xian =="q" :#退出程序
start = false
elif c_xian.isdigit() : #输入的数字变成int类型
c_xian=int(c_xian)
if c_xian <= len(xian_list) and c_xian > 0 : #判断输入的是否在列表长度范围内
while start :
for name in china_ditie[city_list[c_city-1]][xian_list[c_xian-1]]: #循环字典中地铁的名称
print(name) #打印字典中的内容
print("返回上一级 \033[31;1mb\033[1m,退出 \033[31;1mq\033[1m")

print("".center(36,"=")) #分割线
c_n = input("请输入你需要的操作:")
if c_n == 'b' or c_n =='b' :
del xian_list[:]
break
elif c_n == 'q' or c_n =='q' : #退出程序
start = false
else :
print("\033[31;1m输入错误请重新输入,退出请按\033[31;1mq\033[1m!\033[1m")
time.sleep(1)#函数推迟调用即下面的语句在推迟1s执行 方法语法time.sleep(t),t推迟执行的秒数
else :
del xian_list[:]
print("\033[31;1m没有此线路请输入错误!\033[1m")
time.sleep(1)
else :#输入错误提示并刷新线路列表
del xian_list[:]
print("\033[31;1m输入错误,请输入数字!\033[1m")
time.sleep(1)
else : #输入错误提示并刷新城市列表
del city_list[:]
print("\033[31;1m没有此城市或者输入错误!\033[1m")
time.sleep(1)
else : #输入错误提示并刷新城市列表
del city_list[:]
print("\033[31;1m没有此城市或者输入错误!\033[1m")
time.sleep(1)

上一篇: C语言入门(1)

下一篇: 常用命令