Python實現三級菜單(字典和列表的使用)

menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'網易': {},
'google': {}
},
'中關村': {
'愛奇藝': {},
'汽車之家': {},
'優酷': {}
},
'上地': {
'百度': {}
}

},
'昌平': {
'沙河': {
'老男孩': {},
'北航': {}
},
'天通苑': {},
'回龍觀': {}
},
'朝陽': {},
'東城': {}
},

'上海': {
'閔行': {
'人民廣場': {
'炸雞店': {}
}
},
'閘北': {
'火車站': {
'攜程': {}
}
},
'浦東': {}
},

'山東': {}
}

current_menu = menu
path_menu = []

while True:
print("菜單(menu)".center(15, '-'))
# 將菜單字典關鍵字轉化為列表類型,便于給菜單加上數字編號,方便用戶輸入
current_key_list = list(current_menu.keys())
for index, i in enumerate(current_key_list):
print("%s. %s".center(15) % (index, i))
# 對用戶輸入字符進行校驗和容錯處理(意外輸入空格或回車不報錯)
user_choice = input("請輸入菜單編號,返回按b,退出按q:").strip()
if user_choice.isdigit() and 0 <= int(user_choice) < len(current_key_list):
# 根據用戶輸入編號反向查詢字典的關鍵字
current_key = current_key_list[int(user_choice)]
if current_key in current_menu:
# 根據用戶進入的菜單層級,保存歷史菜單路徑并進行下一層菜單的循環打印
path_menu.append(current_menu)
current_menu = current_menu[current_key]
elif user_choice.casefold() == 'b':
if current_menu != menu:
current_menu = path_menu.pop()
else:
print("----已經回到主菜單----!")
elif user_choice.casefold() == 'q':
exit()

轉載于:https://www.cnblogs.com/eric99/p/9992117.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387940.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

停止使用p = 0.05

How many of you use p0.05 as an absolute cut off? p ≥ 0.05 means not significant. No evidence. Nada. And then p < 0.05 great it’s significant. This is a crude way of using p-values, and hopefully I will convince you of this.你們中有多少人使用p 0.05作…

centos7系統根目錄擴容

比如 點擊了后 點擊創建虛擬磁盤 選擇一個 20G 然后啟動虛擬機使用fdisk查看所有的磁盤 看是否新增了一個20G的硬盤 [rootlocalhost ~]# fdisk -l磁盤 /dev/sda&#xff1a;8589 MB, 8589934592 字節&#xff0c;16777216 個扇區 Units 扇區 of 1 * 512 512 bytes 扇區大小(…

instrumentation模擬很多activity的操作

android.app.Instrumentation好像原來是用來做測試的, 可以用來模擬很多activity的操作 主要代碼如下 如果在文本框中輸入24,或者25 點擊按鈕就能模擬音量加減鍵 鍵值可以查看android.view.KeyEvent [java] view plaincopy package com.qefee.testinstrumentation; import…

成像數據更好的展示_為什么更多的數據并不總是更好

成像數據更好的展示Over the past few years, there has been a growing consensus that the more data one has, the better the eventual analysis will be.在過去的幾年中&#xff0c;越來越多的共識是&#xff0c;數據越多&#xff0c;最終的分析就越好。 However, just a…

支付寶架構

支付寶系統架構圖如下&#xff1a; 支付寶架構文檔有兩個搞支付平臺設計的人必須仔細揣摩的要點。 一個是賬務處理。在記賬方面&#xff0c;涉及到內外兩個子系統&#xff0c;外部子系統是單邊賬&#xff0c;滿足線上性能需求&#xff1b;內部子系統走復式記賬&#xff0c;滿足…

怎樣可以跨進程測試

在Android系統下模擬鼠標鍵盤等輸入設備&#xff0c;網絡上資料非常多。但不少是人云亦云&#xff0c;甚至測試都不愿測試一下就抄上來了。這次寫一點體會&#xff0c;當作拋磚引玉。0. 背景知識&#xff1a;眾所周知&#xff0c;Android是將Framework架在Linux之上的系統。Lin…

Android Studio 導入新工程項目

1 導入之前先修改工程下相關文件 1.1 只需修改如下三個地方1.2 修改build.gradle文件 1.3 修改gradle/wrapper/gradle-wrapper.properties 1.4 修改app/build.gradle 2 導入修改后的工程 2.1 選擇File|New|Import Project 2.2 選擇修改后的工程 如果工程沒有變成AS符號&#xf…

馬蜂窩張矗:績效考核是為了激發工作潛力,而不是逃避問題

3 月 23 日&#xff0c;由高端技術領導者社交平臺 TGO 鯤鵬會主辦的 GTLC 全球技術領導峰會分站首站在北京舉行。會上馬蜂窩技術副總裁 \u0026amp; TGO 鯤鵬會會員張矗發表了主題為“我在馬蜂窩的技術管理實踐”的演講。本文根據其演講整理而成。大家好&#xff0c;我是來自馬蜂…

vue domo網站_DOMO與Tableau-逐輪

vue domo網站Let me be your BI consultant. Best yet, let me be your free consultant on the following question:讓我成為您的BI顧問。 最好的是&#xff0c;讓我成為您的免費顧問 &#xff0c;解決以下問題&#xff1a; DOMO vs. Tableau — What should I use?DOMO vs.…

fiddler抓包1-抓小程序https包

抓小程序包和抓app包是一樣的操作方法&#xff1b;安卓用fiddler&#xff0c;ios用charles&#xff1b; 一、環境準備 1.電腦已裝最新版fiddler 2.手機和電腦在同一局域網 二、fiddler設置 1.fiddler>Tools>Options>HTTPS 勾選Capture HTTPS CONNECTs 及下邊的子項&am…

多態使用的前提

1&#xff1a;必須是繼承&#xff08;extends&#xff09;&#xff0c;實現&#xff08;implements&#xff09; 才行2&#xff1a;必須要重寫&#xff08;覆蓋&#xff09;父類的方法。轉載于:https://www.cnblogs.com/liyunchuan/p/10663788.html

Linux下的 FTP

1.安裝vsftpd yum install vsftpd 2.啟動/重啟/關閉vsftpd服務器 [rootlocalhost ftp]# /sbin/service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ] OK表示重啟成功了. 啟動和關閉分別把restart改為start/stop即可. 如果是源碼安裝的,到…

python入門23 pymssql模塊(python連接sql server增刪改數據 )

增刪改數據必須connect.commit()才會生效 回滾函數 connect.rollback() 連接數據庫 dinghanhua sql server增刪改 import pymssqlserver 192.168.1.1 user user password 111111 database testdbconnect pymssql.connect(server server,user user,passwordpassword,da…

每個人都應該使用的Python 3中被忽略的3個功能

重點 (Top highlight)Python 3 has been around for a while now, and most developers — especially those picking up programming for the first time — are already using it. But while plenty of new features came out with Python 3, it seems like a lot of them ar…

iframe自適應高度

為什么需要使用iframe自適應高度呢&#xff1f;其實就是為了美觀&#xff0c;要不然iframe和窗口長短大小不一&#xff0c;看起來總是不那么舒服&#xff0c;特別是對于我們這些編程的來說&#xff0c;如鯁在喉的感覺。 首先設置樣式 body{margin:0; padding:0;} 如果不設置bod…

.Net轉Java自學之路—SpringMVC框架篇八(RESTful支持)

RESTful架構&#xff0c;REST即Representational State Transfer。表現層狀態轉換&#xff0c;就是目前最流行的一種互聯網軟件架構。它結構清晰、符合標準、易于理解、擴展方便&#xff0c;所以得到越來越多網站的采用。 RESTful其實就是一個開發理念&#xff0c;是對http的很…

沖刺第七天

今天任務進行情況&#xff1a;今天我們將我們的游戲導到界面形成可用的應用程序&#xff0c;并且進行調試與運行&#xff0c;讓同學試玩&#xff0c;發現了困難并加以改正。 遇到的困難及解決方法&#xff1a; 運行時發現游戲界面中UI的button和image的位置會隨分辨率的不同而發…

數據探查_數據科學家,開始使用探查器

數據探查Data scientists often need to write a lot of complex, slow, CPU- and I/O-heavy code — whether you’re working with large matrices, millions of rows of data, reading in data files, or web-scraping.數據科學家經常需要編寫許多復雜&#xff0c;緩慢&…

Node.js Streams:你需要知道的一切

Node.js Streams&#xff1a;你需要知道的一切 圖像來源 Node.js流以難以使用而聞名&#xff0c;甚至更難理解。好吧&#xff0c;我有個好消息 - 不再是這樣了。 多年來&#xff0c;開發人員在那里創建了許多軟件包&#xff0c;其唯一目的是簡化流程。但在本文中&#xff0c;我…

oracle表分區

1.表空間:是一個或多個數據文件的集合,主要存放的是表,所有的數據對象都存放在指定的表空間中;一個數據文件只能屬于一個表空間,一個數據庫空間由若干個表空間組成,其中包括:a.系統表空間:10g以前,默認系統表空間是System,10g包括10g以后,默認系統表空間是User,存放數據字典和視…