1-2 三级菜单

Posted 不要被骄傲遮蔽了双眼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-2 三级菜单相关的知识,希望对你有一定的参考价值。

 

  

1.需求

 
作业三:多级菜单
  • 三级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典

 

2.个人思路

 

定义 database = {}

打印主菜单

用户输入选择  
   
    打印二级菜单
    
    用户输入
        
        打印三级菜单
        

每层输入q 退出程序

每层输入b返回上一层 (没有实现 )

  

2.1个人代码

data_base = {
    \'shaanxi\':{
        "xi\'an":{
            \'yantaqu\':[\'dongyilu\',\'dianzierlu\',\'taibailu\'],
            \'weiyangqu\':[\'ziwulu\',\'dahualu\'],
            \'changanqu\':[\'changanlu\',\'jinhualu\']
        },
        \'xianyang\':{},
        \'weinan\':{}
    },
    \'jiangsu\':{},
    \'nanjing\':{}
}

#循环打印字典,第一层
for i in data_base:
    print(i)

choice_1 = input("enter your choice >").strip()

if choice_1 in data_base:
    for i in data_base[choice_1]:
        print(\' >\',i)
    choice_2 = input("enter your choice >>").strip()

    if choice_2 in data_base[choice_1]:
        for i in data_base[choice_1][choice_2]:
            print(\'     >>\',i)

        choice_3 = input("enter your choice >>>").strip()

        if choice_3 in data_base[choice_1][choice_2]:
            print(\'         >>>\',data_base[choice_1][choice_2][choice_3])

        elif choice_3 == \'q\':
            print("-------bye-bye------")
            exit()
        else:
            print("\\033[1mEntererror!!!\\033[0m")

    elif choice_2 == \'q\':
            print("---------bye-bye------")
            exit()
    else:
        print("\\033[1mEntererror!!!\\033[0m")
elif choice_1 == \'q\':
            print("------bye-bye--------")
            exit()
else:
    print("\\033[1mEntererror!!!\\033[0m")

 

 

2.2 小方法心得

1)打印字典

#打印完整字典
#print(data_base)

#print(data_base[choice_1])  #打印第一层
#print(data_base[choice_1][choice_2])  #打印第2层
# print(data_base[choice_1][choice_2][choice_3]  #打印第3层

  

2)循环打印字典

#循环打印字典,第一层
# for i in data_base:
#     print(i)

  

3)字体加粗

字体加粗

print("\\033[1mEntererror!!!\\033[0m")

 

4)break问题

a.错误实例

 

 

b.正确实例

 

 

.5)  elif 问题

如果需要检查多个条件,就可以使用 elif

Choice_3 》yanta     if
    》b        elif
    》q       elif
    》other     else

只能用一个 if 其余的全是 elif 就可以解决问题

 

 

  

3.完整代码

 

data_base = {
    \'shaanxi\':{
        "xi\'an":{
            \'yantaqu\':[\'dongyilu\',\'dianzierlu\',\'taibailu\'],
            \'weiyangqu\':[\'ziwulu\',\'dahualu\'],
            \'changanqu\':[\'changanlu\',\'jinhualu\']
        },
        \'xianyang\':{},
        \'weinan\':{}
    },
    \'jiangsu\':{},
    \'nanjing\':{}
}

while True:
    #循环打印字典,第一层
    for i in data_base:
        print(i)

    choice_1 = input("enter your choice >").strip()

    if choice_1 in data_base:
        while True:
            for i in data_base[choice_1]:
                print(\' >\',i)
            choice_2 = input("enter your choice >>").strip()

            if choice_2 in data_base[choice_1]:
                while True:
                    for i in data_base[choice_1][choice_2]:
                        print(\'     >>\',i)

                    choice_3 = input("enter your choice >>>").strip()

                    if choice_3 in data_base[choice_1][choice_2]:
                        print(\'         >>>\',data_base[choice_1][choice_2][choice_3])
                        choice_4 = input (\'this is the bottom ,按b返回 >\')
                        if choice_4 == \'b\':
                            pass
                        elif choice_4 == \'q\':
                            print("-------bye-bye------")
                            exit()
                        else:
                            print("\\033[1mEntererror!!!\\033[0m")
                    elif choice_3 == \'b\':
                        break
                    elif choice_3 == \'q\':
                        print("-------bye-bye------")
                        exit()
                    else:
                        print("\\033[1mEntererror!!!\\033[0m")
            elif choice_2 == \'b\':
                break
            elif choice_2 == \'q\':
                print("-------bye-bye------")
                exit()
            else:
                print("\\033[1mEntererror!!!\\033[0m")
    elif choice_1 == \'b\':
            break
    elif choice_1 == \'q\':
            print("-------bye-bye------")
            exit()
    else:
        print("\\033[1mEntererror!!!\\033[0m")

  

 

 

 

以上是关于1-2 三级菜单的主要内容,如果未能解决你的问题,请参考以下文章

2 -14 三级菜单

python第四天

jquery两行代码实现侧边栏三级折叠菜单

三级菜单练习

python-三级菜单和购物车程序代码(补发)

TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频