首頁 後端開發 Python教學 使用python实现省市三级菜单效果

使用python实现省市三级菜单效果

Jun 10, 2016 pm 03:06 PM
python

地区分三层结构例如:

大中华地区一级划分:

华东

华中

华北

西南

特别行政区

华南

-------------------------------------------------

请输入你要查看的大中华地区名字:华中

------------------包含的省名字二级:-----------------

湖北

湖南

河南

-------------------------------------------------

请输入你要查看的省名字:湖北

--------------包含的城市名三级:-------------------

 程序大概的思路和逻辑:

1 将大中华地区划用字典列表来构造,用key取省或者地市列表,用for遍历显示字典或者列表的元素

2 根据整个字典的key,得到省列表,遍历打印省的名字列表

3 设置用于跳出外循环的flag(跳出嵌套循环)

4 两层嵌套循环,外循环for指定3次固定循环,3次输入省名字错误,程序退出(在外循环for后,通过else来实现)

内循环while True是死循环,不指定次数(地市名字输入错误后,会一直要求输入,直到输入正确为止),通过break退出内循环

5 通过整个字典的key得到省列表,通过省字典的key得到地市列表,遍历打印地市的名字列表

6 判断输入的地市是否在省字典中,在的话,通过省字典的key,for遍历打印城市的名字列表不在的话,提示"输入的省名字不对,请重新输入",continue跳出当次迭代(循环),继续输入省名字还在内循环while中

7 打印城市表后,2个选择,1是退出整个程序(2个嵌套循环都退出),2是回到上一级别菜单(只需要退出内循环的当前迭代)

8 回到上一级别菜单(只退出内循环while) 判断用户输入的是否是"b",是的话,continnue 退出内循环的当前迭代,开始内循环下次迭代

9 退出整个程序(2个嵌套循环都退出) 判断用户输入的是否是"q",是的话,先将flag变成True,然后break退出while内循环

10 再做一个判断,判断flag是否是True,如果是的话,break退出for外循环,至此,退出整个程序(2个嵌套循环都退出)

流程图:

代码:

#!/user/binenv python3
# -*- coding:utf-8 -*-
 
'''
Created on: 2015年1月16日
 
@author: 吕毅
 
Email: 371725153@qq.com
 
Version: 1.0
 
'''
 
 
china_map ={
 "华南":{
  "广东":["广州市","佛山市","深圳市","东莞市"],
 
  "广西":["南宁市","柳州市","桂林市","北海市"],
 
 
  "海南":["海口市","三亚市","三沙市","儋州市"]
 
 },
 "华东":{
  "上海":["黄浦区","卢湾区","徐汇区","长宁区","普陀区"],
 
  "安徽":["合肥市","芜湖市","淮南市","马鞍山市"],
 
  "江苏":["南京市","无锡市","徐州市","常州市","苏州市"]
 
 },
 "华北":{
  "北京":["东城区","西城区","朝阳区","丰台区","石景山区","海淀区"],
 
  "山西":["太原市","大同市","阳泉市","长治市"],
 
  "河北":["石家庄市","唐山市","秦皇岛市","邢台市"]
 
 },
 "华中":{
  "湖北":["武汉市","黄石市","十堰市","十堰市"],
 
  "河南":["郑州市","开封市","洛阳市","平顶山市"],
 
  "湖南":["长沙市","株洲市","衡阳市","邵阳市"]
 
 },
 "西南":{
  "重庆":["万州区","涪陵区","渝中区","大渡口区"],
  "四川":["成都市","自贡市","攀枝花市","德阳市"],
  "贵州":["贵阳市","六盘水市","遵义市","安顺市"],
 
 
 },
 "特别行政区":{
  "香港":["屯门","弯仔","北角","西贡"],
  "澳门":["花地玛堂区","圣安多尼堂区","大堂区","望德堂区"],
 
 },
 
 
}
 
 
print ("-------------------------------------------------")
print ("+            +")
print ("+            +")
print ("+   欢迎来到大中华地区查询系统地   +")
print ("+            +")
print ("+            +")
print ("-------------------------------------------------")
print ("大中华地区一级划分:")
for i in china_map: #遍历字典的key,列出大中华地区的名字
 
 print (i)
print ("-------------------------------------------------")
jump_flag = False #用于跳出外循环
for i in range(3): #外循环,指定循环3次,3次外循环完了,就退出程序
 greater_china_name = input("请输入你要查看的大中华地区名字:")
 if greater_china_name in china_map: #检查输入的地区是否在地图中,如果地区名字3次输入错误,程序退出
  gc_name = china_map[greater_china_name]
  province_name = gc_name.keys()#使用输入的信息作为key,取出省信息,存在字典中
  while True: #内循环,死循环,不指定循环次数,通过break或者flag跳出
   print ("------------------包含的省名字二级:-----------------") #分隔线
   for i in province_name: #遍历列表,取出省名字,打印出来
    print (i)
   print ("-------------------------------------------------") #分隔线
   sheng_name_input = input("请输入你要查看的省名字:")
 
   if sheng_name_input in province_name: #判断输入的省名字是否在地区列表中
    shi_name = china_map[greater_china_name][sheng_name_input] #取出省中有哪些市,存在列表中
    print ("--------------包含的城市名三级:-------------------") #分隔线
    for i in shi_name: #遍历列表,取出地区市名字,打印出来
     print (i)
    print ("------------------------------------------------") #分隔线
 
   if sheng_name_input not in province_name: #如果输入的省名字不在在地区列表中
    print ("输入的省名字不对,请重新输入")
    continue #跳出当次迭代,开始下一次迭代循环,直到地市名字输入正确为止(不停的要求输入)
   back_or_quit = input("请问是否退出?按b:Back是返回上一级菜单;按q:Exit是退出整个程序")
   #显示完地区市后,就要退出程序了,一个是全部退出,一个是返回上一级菜单
   if back_or_quit == "q":
    jump_flag = True #用于跳出外循环
    break #跳出while内循环
   if back_or_quit == "b":
    continue # 跳出当次迭代,开始下一次迭代循环,重新输入省处,返回上一步
   print ("你输入的信息有误,请重新输入")
  if jump_flag: #跳出外循环的条件满足
   break #跳出外循环
else:#上面的3次for循环正常执行完毕,else才会执行,如果是不正常退出(break),else不会执行
 print ("3次输入错误,程序退出")
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles