1. 程式人生 > >python第四天

python第四天

flag utf-8 循環 tin 輸出 並不是 電腦 isp 要求

今天是一個坎,在做三級菜單時卡住了,因為想要簡潔的代碼,就要用到遞歸函數,卡的不要不要的!不過最後在同學老師的提點幫助下,還是解決了!

作業要求:

三級菜單:
1. 運行程序輸出第一級菜單
2. 選擇一級菜單某項,輸出二級菜單,同理輸出三級菜單
3. 菜單數據保存在文件中

文件操作還沒有學到,暫時做到1,2兩點,第3點明後天補上!

照舊,先上一下流程圖:

技術分享

詳細代碼:

技術分享
  1 #!usr/bin/env python
  2 #-*-coding:utf-8-*-
  3 # Author calmyan
  4 #定義字典菜單三層
  5 info={
  6     "家電":{
  7         "
冰箱":{ 8 "雙門":[海爾,西門子,容聲], 9 "多門":[海爾,容聲,海信], 10 "三門":[博世,海信,美的], 11 "對開門":[美的,三星,容聲] 12 }, 13 "洗衣機":{ 14 "迷你":[小天鵝,海爾,松下], 15 "滾筒":[三洋,小天鵝,容聲], 16 "波輪":[
TCL,美的,LG], 17 "一體":[美的,LG,西門子] 18 }, 19 "空調":{ 20 "冷暖空雕":[], 21 "中央空調":[], 22 "櫃式":[], 23 "壁掛式":[] 24 } 25 }, 26 "電腦": 27 { 28 "整機":{ 29 "筆記本":[], 30 "
臺式機":[], 31 "一體機":[], 32 "服務器":[] 33 }, 34 "外設":{ 35 "鍵盤":[], 36 "鼠標":[], 37 "攝像頭":[], 38 "U盤":[] 39 }, 40 "配件":{ 41 "CPU":[], 42 "內存":[], 43 "顯卡":[], 44 "主板":[] 45 } 46 47 }, 48 "圖書":{ 49 "人文":{ 50 "歷史":[], 51 "心理學":[], 52 "國學":[], 53 "法律":[] 54 }, 55 "少兒":{ 56 "繪本":[], 57 "科普":[], 58 "智力開發":[], 59 "手工遊戲":[] 60 }, 61 文藝:{ 62 小說:[], 63 文學:[], 64 傳記:[], 65 書法:[] 66 } 67 } 68 } 69 70 71 72 def menu_open(info):#遞歸函數 傳入下一層菜單 73 global exit_flag,conut#聲明全局變量 74 #conut=1 75 exit_flag=True#先為真 76 while exit_flag: 77 if conut<4:#判斷菜單層級不是最底層加一 78 conut+=1 79 _tab2=_tab.expandtabs(tabsize=(conut*3))#為了增加菜單的可讀性,按層級來加tab鍵 80 for i in info: 81 print(_tab2,i) 82 if conut==4:#如果層級為4,也是最後一層 83 name=input("當前為第4是最後一層 按B/b返回<<< 按Q/q退出:") 84 else: 85 name=input("當前為第 \033[32;1m%s\033[0m 層,請輸入名稱進入下一層>>> 按B/b返回<<< 按Q/q退出:"% conut) 86 if name==b or name==B: 87 conut-=2#因數進行循環就加一,所以需要減2 88 break 89 if name==Q or name==q: 90 print("你已經退出菜單!") 91 exit_flag=False 92 break 93 if name in info and conut!=4:#如果存在並不是最後一層則調用函數 94 menu_open(info[name]) 95 else: 96 conut-=1 97 print("你輸入的目錄不存在!") 98 continue 99 100 101 global conut,_tab 102 conut=1 103 _tab=\t\t 104 105 exit_flag = True 106 while exit_flag: 107 for i in info: 108 print(i) 109 name=input("當前為第\033[32;1m 1\033[0m 層,請輸入名稱進入下一層>>> 按Q/q退出:") 110 if name==Q or name==q: 111 print("你已經退出菜單!") 112 exit_flag=False 113 114 if name in info: 115 menu_open(info[name]) 116 else: 117 print("你輸入的目錄不存在!") 118 continue
View Code

菜單內容比較少,將就著吧,回頭有空再讓它豐滿起來!

python第四天