利用字典编写菜单程序

要求:

  1. 共有三级菜单可选择
  2. 在每层菜单可进入下一菜单、返回上一层菜单和退出

代码:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4
 5 data={
 6     ‘北京‘:{
 7         ‘昌平‘:{
 8             ‘沙河‘:[‘oldboy‘,‘test‘],
 9             ‘天通苑‘:[‘链家地产‘,‘我爱我家‘]
10         },
11         ‘朝阳‘:{
12             ‘望京‘:[‘奔驰‘,‘陌陌‘],
13             ‘国贸‘:{‘CCIC‘,‘HP‘},
14             ‘东直门‘:{‘Advent‘,‘飞信‘}
15         },
16         ‘海淀‘:{}
17     },
18     ‘山东‘:{
19         ‘德州‘:{},
20         ‘青岛‘:{},
21         ‘济南‘:{}
22     },
23     ‘广东‘:{
24         ‘东莞‘:{},
25         ‘常熟‘:{},
26         ‘佛山‘:{}
27     }
28 }
29
30 flag=True
31
32 while flag:
33
34     for i in data:
35         print(i)
36     first_choice=input(‘选择进入下一级菜单/输入Q退出:‘)
37
38     #进入第一级菜单
39     if first_choice in data:
40
41         while flag:
42
43             for j in data[first_choice]:
44                 print(‘\t‘,j)
45             second_choice=input(‘选择进入下一级菜单/输入R返回上一级/输入Q退出:‘)
46
47             #进入第二级菜单
48             if second_choice in data[first_choice]:
49                 while flag:
50
51                     for z in data[first_choice][second_choice]:
52                         print(‘\t\t‘, z)
53                     third_choice=input(‘选择进入下一级菜单/输入R返回上一级/输入Q退出:‘)
54
55                     #进入第三级菜单
56                     if third_choice in data[first_choice][second_choice]:
57                         while flag:
58
59                             for k in data[first_choice][second_choice][third_choice]:
60                                 print(‘\t\t\t‘, k)
61                             fourth_choice=input(‘最后一层,输入R返回上一级/输入Q退出:‘)
62
63                             #是否返回到第三级或退出
64                             if fourth_choice==‘R‘:
65                                 break
66                             elif fourth_choice==‘Q‘:
67                                 flag=False
68
69                     #是否返回到第二级或退出
70                     if third_choice==‘R‘:
71                         break
72                     elif third_choice == ‘Q‘:
73                         flag = False
74
75             #是否返回到第一级或退出
76             if second_choice==‘R‘:
77                 break
78             elif third_choice == ‘Q‘:
79                 flag = False
80
81     #是否退出
82     if first_choice==‘Q‘:
83         break

原文地址:https://www.cnblogs.com/BIT-taozhen/p/9745214.html

时间: 2024-08-29 21:24:06

利用字典编写菜单程序的相关文章

Qtcreator编写ros程序:无法启动进程"catkin_make" -DCMAKE_BUILD_TYPE=Debug

利用Qtcreator编写ROS程序,你必须先进行相应的配置:在启动qtcreator环境时先把ros环境添加进.(即~/.bashrc文件) 1 版本问题 QT4 与 QT5 sudo    gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop     (qt5       默认安装的路径下) 当打开文件是空时,关闭.按照路径打开文件 cd ~/.local/share/applications/ gedit

python3之利用字典和列表实现城市多级菜单

利用字典和列表实现城市多级菜单 1 #coding:utf-8 2 #利用字典和列表实现城市多级菜单 3 addrIndex = {"1":"北京","2":"上海","3":"南京","4":"福建"} 4 addrDict = {"北京":["东城区","西城区","大兴区&

用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控

写在前面 前文:用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 为了方便,这篇文章里的例子均为伪分布式运行,一般来说只要集群配置得当,在伪分布式下能够运行的程序,在真实集群上也不会有什么问题. 为了更好地模拟集群环境,我们可以在mapred-site.xml中增设reducer和mapper的最大数目(默认为2,实际可用数目大约是CPU核数-1). 假设你为Hadoop安装路径添加的环境变量叫$HADOOP_HOME(如果是$HAD

在Linux使用mingw32来编写win32程序

MinGW - Minimalist GNU For Windows Mingw32 是 GNU 計畫工具的集合,包含了大量的標頭檔(header files).函式庫與指 令程式.目的在提供免費的工具以生產製作可於 Winodws 上直接執行而無須依賴輔助函式 庫的原生程式(Native Windows programs). 在 Debian 系統中,您可以安裝 DebianPackages:mingw32 .DebianPackages:mingw32-binutils 與 DebianPa

如何给自己编写的程序隐蔽的设置开机启动

比如说,我们自己编写了一个C#的程序,想设置为开机自动启动.当然我们可以从网上找到方法,一般的做法就是修改注册表文件,找到开机启动项,然后把这个程序的路径写入到某个节点就可以.如下截图所示,这些都是开机后会自动启动的程序. 有时候我们可能会有一些很顽皮的想法,我们希望自己程序在别人的电脑上运行的时候,暗地里把自己设置为开机启动.现在就有一些问题,因为现在电脑上都装有杀毒软件,比如说360,你修改注册表开机启动项,属于敏感操作,会被安全卫士拦截,然后提示用户正在有软件试图修改开机启动项,询问用户是

利用SVN钩子同步程序注意事项

暂时记下,此文章内容稍后验证. 前言:其实利用SVN实时同步到WEB服务器即时展现出来的文章已经到处都是,但是我在做的时候 还是有不少的小问题,很多文章也没有提出来过,还有同步也是,我还是记录下自己做过的尤其是一些细节,时间一长又会忘掉了. 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上. 知识点:1.SVN的ho

32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数

32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首先我们知道32位汇编是可以调用Windows API的,那么今天我们就调用windowsAPI来写一个窗口程序 如果你有windows开发知识,那么就很理解了,如果没有,那么跟着我写,跟着步骤去写,那么也可以写出来 首先我们要编写一个窗口程序(使用SDKAPI编写)有几个步骤 1.设计窗口类 2.注

Emacs用JDEE编写Android程序

前文介绍了如何用Maven构建Android工程,现在进一步介绍如何使用JDEE编写程序. Ubuntu 14.04 Android 使用Maven二 创建自己的Maven工程 如何安装JDEE可以参考之前的文章: Emacs 24.3 配置JDEE 首先要安装一个m2jdee的插件,能够根据maven的pom.xml中的配置生成jdee所需的prj.el文件. 获取该项目: git clone [email protected]:devtool/m2jdee.git 或者 git clone

利用MFC编写计算器

端午节这两天没什么事,就用MFC写了一个简单的计算器,界面做的也比较简单,如下图1,可以进行简单的加.减.乘和除功能,小数点显示这块做的不是很好,比如输入1.2,不会一个个的显示,而是先显示"1",后同时显示".2",还有就是遇到0.00时,显示的也不够人性化,哎,就这样吧... 图1 1.建立工程:New -> Projects,选择Win32 MFC AppWizard(exe),并输入工程(counter)名字及设置好路径,点击OK,选择"Di