三级菜单程序文件操作版

#__author:"lingdian"
#date: 

#打开文件
with open('菜单', 'r', encoding='utf-8') as f_read:
    menu = f_read.read() #读取文件内容

dic_menu = eval(menu) #字符转换字典
menu_list = [] #存放返回的父级

while True:
    #显示内容
    print(' 欢迎使用三级菜单查询系统 '.center(50, '*'))
    for i in dic_menu:
        print('>>>', i)
    #用户选择
    choice = input('请输入查询的内容,[返回&退出:b][增加:z][删除:s][修改:x]>>>')
    if len(choice) == 0: continue #如果不输入就跳过本次循环
    if choice in dic_menu: #如果用户输入的字符在字典里面就执行
        menu_list.append(dic_menu) #存放本次字典的键(存储父级用于返回)
        dic_menu = dic_menu[choice] #通过键取值,进入下一层字典
    #返回&退出
    elif choice == 'b':
        if menu_list: #如果列表不为空就执行
            dic_menu = menu_list.pop() #删除列表最后一个元素并返回值,返回上一层
        else: #如果列表为空执行
            q = input('没有上一层了,你要退出吗?[y/n]')
            if q == 'y':
                break
            else:
                continue
    #增加
    elif choice == 'z':
        choice_z = input('请输入增加的内容>>>')
        dic_menu[choice_z] = {} #添加键值(字典)
    #删除
    elif choice == 's':
        choice_s = input('请输入想删除的内容>>>')
        del dic_menu[choice_s]
    #修改
    elif choice == 'x':
        choice_x = input('请输入你想修改的内容>>>')
        choice_x1 = input('现在输入新的内容>>>')
        del dic_menu[choice_x]
        dic_menu[choice_x1] = {}
    else:
        print('没有这个选择!')

#保存
str_dic_menu = str(dic_menu) #字典转字符串
with open('菜单', 'w', encoding='utf-8') as f_write:
    f_write.write(str_dic_menu) #写入文件

菜单内容:

{'广西': {'南宁': {'隆安县': '', '马山县': ''}, '柳州': {'柳城县': '', '鹿寨县': ''}}, '广东': {'广州': {'荔湾区': '', '越秀区': ''}, '深圳': {'罗湖区': '', '福田区': ''}}, '上海': {'1': {}}}

结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值