三级菜单的增删改-2018.2.22(上)

1.首先把字典内容存到txt文档里面

2.读取txt文本内容以及用eval将文本转化为字典

3.可以看出来昨天写的三级菜单并不适用今天要使用的增删改

#_author_:"Bushii"
#data:2018/2/21

menu= {
    ‘山东‘ : {
        ‘青岛‘ : [‘四方‘,‘黄岛‘,‘崂山‘,‘李沧‘,‘城阳‘],
        ‘济南‘ : [‘历城‘,‘槐荫‘,‘高新‘,‘长青‘,‘章丘‘],
        ‘烟台‘ : [‘龙口‘,‘莱山‘,‘牟平‘,‘蓬莱‘,‘招远‘]
    },
    ‘江苏‘ : {
        ‘苏州‘ : [‘沧浪‘,‘相城‘,‘平江‘,‘吴中‘,‘昆山‘],
        ‘南京‘ : [‘白下‘,‘秦淮‘,‘浦口‘,‘栖霞‘,‘江宁‘],
        ‘无锡‘ : [‘崇安‘,‘南长‘,‘北塘‘,‘锡山‘,‘江阴‘]
    },
    ‘浙江‘ : {
        ‘杭州‘ : [‘西湖‘,‘江干‘,‘下城‘,‘上城‘,‘滨江‘],
        ‘宁波‘ : [‘海曙‘,‘江东‘,‘江北‘,‘镇海‘,‘余姚‘],
        ‘温州‘ : [‘鹿城‘,‘龙湾‘,‘乐清‘,‘瑞安‘,‘永嘉‘]
    },
    ‘安徽‘ : {
        ‘合肥‘ : [‘蜀山‘,‘庐阳‘,‘包河‘,‘经开‘,‘新站‘],
        ‘芜湖‘ : [‘镜湖‘,‘鸠江‘,‘无为‘,‘三山‘,‘南陵‘],
        ‘蚌埠‘ : [‘蚌山‘,‘龙子湖‘,‘淮上‘,‘怀远‘,‘固镇‘]
    },
    ‘广东‘ : {
        ‘深圳‘ : [‘罗湖‘,‘福田‘,‘南山‘,‘宝安‘,‘布吉‘],
        ‘广州‘ : [‘天河‘,‘珠海‘,‘越秀‘,‘白云‘,‘黄埔‘],
        ‘东莞‘ : [‘莞城‘,‘长安‘,‘虎门‘,‘万江‘,‘大朗‘]
    }
}
province_list=list(menu.keys())
while True:
    print(‘ 省 ‘.center(50,‘*‘))
    for i in province_list:
        print(province_list.index(i)+1,i)
    pro_id=input(‘请输入省编号,或者输入q退出:‘)
    if pro_id.isdigit():
        pro_id=int(pro_id)
        if pro_id>0 and pro_id <=len(province_list):
            pro_name = province_list[pro_id - 1]
            city_list=list(menu[pro_name].keys())
            while True:
                print(‘ 市 ‘.center(50, ‘*‘))
                for v in city_list:
                    print(city_list.index(v)+1,v)
                city_id = input(‘请输入市编号,或者输入q退出,输入b返回:‘)
                if city_id.isdigit():
                    city_id=int(city_id)
                    if city_id>0 and city_id<=len(city_list):
                        city_name=city_list[city_id-1]
                        country_list=list(menu[pro_name][city_name])#这里已经不存在字典了,所以后面自然已经不用使用keys来转化了
                        while True:
                            print(‘ 县 ‘.center(50, ‘*‘))
                            for j in country_list:
                                print(country_list.index(j) + 1, j)
                            back_or_quit=input(‘请输入q(退出)或者b(返回)‘)
                            if back_or_quit==‘q‘:
                                exit()
                            elif back_or_quit==‘b‘:
                                break
                            else:
                                print(‘非法错误,请重新输入‘)
                elif city_id==‘b‘:
                    break
                elif city_id==‘q‘:
                    print(‘您已退出程序.‘)
                    exit()
                else:
                    print(‘输入非法,请重新输入‘)
        else:
            print(‘编号%s不存在‘%pro_id)

    elif pro_id==‘q‘:
        print(‘已退出.‘)
        exit()
    else:
        print(‘输入非法,请重新输入‘)

  如果对这个代码进行改编的话,需要分别对省,市,县进行增删改查,这将导致代码量十分大.所以,今天必须使用另外一种方法,将省市县的增删改查统一.

原文地址:https://www.cnblogs.com/bushii/p/8459781.html

时间: 2024-11-07 14:32:25

三级菜单的增删改-2018.2.22(上)的相关文章

三级菜单的增删改-2018.2.22(下)

百度了一下三级菜单增删改的代码,要我说呢,这个代码要我自己写呢,估计几天也写不出来,这个代码写的,怎么说呢,非常巧妙,然后呢 我把他的代码拷贝下来自己看了一遍然后修改了一遍 算是比他原来的要更加好一点了吧(当然是我认为了)还有就是现在感觉他里面有些代码我看不懂 它的用处,也不知道是真的没用,还是我真的没看懂,这是一个问题,不管了吧 反正算是修改好了,好了 . 他的代码: f_read = open('menu_file','r',encoding='utf8') #读取menu_file文件中的

MVC+Bootstrap 企业通用框架搭建--左侧导航菜单的实现--导航菜单的增删改查(3)

补充上面的点击菜单表信息: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace SqlServer.Entity{ public class Menu_Operation { private int _operation_id; public int Operation_id { get { return

夺命雷公狗---Thinkphp----12之文章的增删改查(图片上传和关联查询)

我们由于表分析的不够完善,所以我们来加多一个tid的字段,到时候主要目的是为了更好的遍历出文章是属于那个分类下的,表如下所示: 那么下一步我们就开始创建一个ArticleController.class.php的控制器,用来管理文章的增删改查操作,所以我们开始第一步来实现文章的添加,我们先来实现他的增加功能: public function add(){ if(IS_POST){ $data['title'] = I('title'); $data['tid'] = I('tid'); $dat

beego框架配合easyui实现增删改查及图片上传

demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>基于golang的后台管理系统</title> <link rel="stylesheet" type="t

EF CodeFirst增删改查之‘CRUD’

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    本篇旨在学习EF增删改查四大操作 上一节讲述了EF CodeFirst 创建数据库,本节继续引用上一节的相关类学习EF的CRUD操作 废话少说,直接上要点,上一节中的模型类我作了如下修改: using System; using System.Collections.Generic; using System.ComponentModel.Data

数组的增删改查操作

做批量数据录入时须要对json内的数组进行增删改查操作,splice还是非常强大的记录一下用法. var lang = ["php","java","javascript"]; //删除 var removed = lang.splice(2,1); console.log(lang); //php,javascript //console.log(removed); //java ,返回删除的项 //插入 var insert = lang.s

权限组件(8):一级菜单的展示、增删改查和保留原参数

效果图: 一.路由配置 rbac/urls.py from django.urls import re_path from rbac.views import menu urlpatterns = [ ... # 菜单管理 re_path(r'^menu/list/$', menu.menu_list, name='menu_list'), re_path(r'^menu/add/$', menu.menu_add, name='menu_add'), re_path(r'^menu/edit/

DOM访问HTML元素的方式,DOM访问表单控件的常用属性和方法,DOM访问列表框、下拉菜单的常用属性,DOM访问表格子元素的常用属性和方法,DOM对HTML元素的增删改操作

DOM访问HTML元素的方式 为了动态地修改HTML元素,须先访问HTML元素.DOM主要提供了两种方式来访问HTML元素: 根据ID访问HTML元素:通过document对象调用getElementById()方法来查找具有唯一id属性值的元素. 利用节点关系访问HTML元素.常用的属性和方法如下: parentNode 返回当前节点的父节点 previousSibling 返回当前节点的前一个兄弟节点 nextSibling 返回当前节点的后一个兄弟节点 childNodes 返回当前节点的

3.22数据库基础知识:①数据类型②基本规则③数据库基本操作,增删改库,表

数据库:①数据类型②基本规则③数据库基本操作,增删改库,表 DATABASE 数据库Relational Database 关系型数据库column 列 row行Primary Key 主键 Foreign Key 外键DBMS 数据库管理系统 Database Management SystemRDBNS 关系型数据库管理系统SQL Structured Query Language 结构化查询语言SQL 分为:DDL DQL DML DCL 一.数据类型:1.整数型:INT BIGINT2.