python--------三級菜單以及購物車實現
阿新 • • 發佈:2017-09-15
[0 info book 循環 創建 作用 true 合並 goods
三級菜單實現以及細節講解
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:馮海猛 area ={ #創建一個字典分別定義多個省,市,縣 "河北":{ "承德":{ "隆化":{ "縣醫院":{}, "苔山公園":{}, "景怡酒店":{} }, "圍場":{"酒吧":{}, "ktv":{}, "戰旗燒烤":{} } }, "石家莊":{ "深澤":{ "廟會":{}, "遊樂園":{}, "購物城":{} } } }, "北京":{ "海澱":{ "航天橋":{ "北大青鳥":{},"跆拳道館":{}, } }, "朝陽":{ "安貞門":{ "中科威榮公司":{}, "速8酒店":{}, "世紀嘉園小區":{} }, "北土城":{ "如家酒店":{}, "家常菜":{} } } }, "山西":{ "太原":{"晉源區":{ "義井街道":{}, "花果山":{}, "政府":{} } }, "呂梁":{ "柳林":{ "宏傑集團":{}, "宏傑地產":{}, "宏傑代理商":{} } } } } print(‘‘‘ ------------------------------------------------------ |\033[46;1m可以在任意菜單輸入‘q‘返回上一級,輸入‘exit‘退出\033[0m| #打印提示信息告訴用戶,q是返回上一級,exit是退出 ------------------------------------------------------ ‘‘‘) while True: #進入第一個循環 for i in area: print(i) #打印字典裏第一層就是剛剛定義好的省 info1 = input("\033[32;1m請選擇省>>>\033[0m").strip() #讓用戶選擇,.strip是把用戶輸入的空格去掉 if info1 == ‘exit‘: #開始判斷用戶的輸入,如果輸入的是exit就直接退出程序 exit() elif info1 == ‘q‘: #如果輸入的q告訴用戶已經在頂級 print("\033[31;1m您已經在頂級了\033[0m") continue #跳出本次循環 if info1 in area: #判斷用戶輸入的是不是在字典裏,不在就顯示輸入的地區或指令不存在 while True: #如果在就進入第二個循環 for a in area[info1]: #打印出用戶選擇省裏面的市 print(a) info2 = input("\033[32;1m請選擇市>>>\033[0m").strip() #讓用戶選擇要查看的市 if info2 == ‘q‘: #如果用戶輸入的是q就跳出本層循環,返回上一層,讓用戶在重新選擇省 break elif info2 == ‘exit‘: #如果用戶輸入的是exit就退出本程序 exit() if info2 in area[info1]: #判斷如果用戶輸入的市在用戶輸入的省裏就執行以下代碼,如果不在就提示用戶輸入的地區或者指令不存在 while True: #進入第三個循環 for b in area[info1][info2]: #打印用戶選擇的省下的市下面的縣 print(b) info3 = input("\033[32;1m請選擇縣>>>\033[0m").strip() #讓用戶選擇縣 if info3 == ‘exit‘: #判斷用戶數輸入,如果用戶輸入的是exit就退出本程序 exit() elif info3 == ‘q‘: #如果用戶輸入的是q就跳出本層循環,讓用戶重新輸入市 break if info3 in area[info1][info2]: #判斷用戶輸入的縣是否在用戶選擇的省下的市下面,如果在就執行以下代碼,不在就提示用戶輸入的指令或者地區不存在 while True: #進去最後一個循環 for c in area[info1][info2][info3]: #打印用戶選擇的省下的市下的縣下的公司或者酒店等 print(c) info4 = input("\033[32;1mexit退出,q返回上一級>>>\033[0m") #讓用戶輸入,提示exit是退出,q是返回上一層 if info4 == ‘exit‘: exit() elif info4 == ‘q‘: break else: print("\033[31;1m請輸入指定的指令\033[0m") else: print("\033[31;1m您輸入的地區或指令不存在\033[0m") else: print("\033[31;1m您輸入的地區或指令不存在\033[0m") else: print("\033[31;1m您輸入的地區或指令不存在\033[0m")
購物車實現以及細節講解
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:馮海猛 List_of_goods =[ #創建一個列表,定義好成品名稱以及商品的價格 ["iPhone",5000], ["computer",3000], ["book",120], ["watch",500], ["bicycle",1500] ] shopping =[] #創建一個新列表,作用是用戶買的東西都放在這個列表裏面 count = 0 #count =0 代表一個計數器,當count = 3 時會自動退出程序 with open(‘db.txt‘,‘w‘) as f: #創建一個db.txt,w表示如果沒有這個文件就創建一個,如果有就覆蓋存到一個別名f,open是打開文件,with是自動關閉文件 f.write("admin|123") #在文件裏面定義好用戶名密碼,以|分隔。 while True: #進入循環 user_name = input("用戶名>>").strip() #讓用戶輸入用戶名密碼,把值存起來,去除用戶輸入的空格 user_password = input("密碼>>").strip() with open("db.txt","r") as f: #以r的模式打開db.txt這個文件別名為f data = f.read().split("|") #把f讀出來的值以‘|’分隔成列表,保存到data裏面 if user_name == data[0] and user_password == data[1]: #判斷用戶輸入的用戶名密碼是不是在data這個列表裏面 print("歡迎%s登錄"%user_name) #如果在就打印歡迎信息,然後執行以下代碼。 while True: #進入循環 wage = input("輸入工資>>>").strip() #讓用戶輸入工資並去掉空格 if wage == ‘q‘: #如果用戶輸入的是q就提示什麽也沒買,然後直接退出 print("\033[34;1m啥也沒買\033[0m") exit() if wage.isdigit(): #如果用戶輸入的是數字就轉換數劇類型成int wage = int(wage) else: print("\033[31;1m請輸入工資.....‘q‘是退出\033[0m") #如果用戶輸入的是其他,提示用戶輸入工資,再次讓用戶重新輸入 continue while True: #再次進入循環 print("\033[33;1m商品列表\033[0m".center(50,"-")) for index,i in enumerate(List_of_goods): #打印商品列表以及下標 print(index,i) numbering = input("請選擇要購買的產品編號>>>").strip() #讓用戶輸入商品的編號並去除空格 if numbering == ‘q‘: #如果用戶輸入的是q就打印以經購買的商品和余額並退出程序 print("\033[34;1m您購買了以下商品,余額還剩%s元\033[0m".center(50,"-")%wage) for a in shopping: print(a) exit() if numbering.isdigit(): #如果用戶輸入的是數字,就給轉換數據類型成int numbering = int(numbering) if numbering >= 0 and numbering < len(List_of_goods): #在判斷用書輸入的值是不是在列表商品長度範圍內 itme = List_of_goods[numbering] #如果在就把列表裏面用戶輸入的編號保存到itme中 if itme[1] <= wage: #如果商品的價格小於或者等於用戶的工資,就把商品加入到新建的購物車中 shopping.append(itme) wage -= itme[1] #扣除用戶的工資,打印成功購買以及還剩下的余額 print("\033[32;1m你以成功購買%s,已經加入購物車。您的余額還剩%s\033[0m"%(itme,wage)) else: print("\033[31;1m余額不足,您只有%s元了\033[0m"%wage) #如果大於工資就顯示余額不足,打印余額 else: print("\033[31;1m對不起沒有此編號產品\033[0m") #如果用戶輸入的值不在列表長度的範圍內,就顯示沒有此產品 else: print("\033[31;1m請輸入編號。如:1,2,3....‘q‘是退出\033[0m") #如果用戶輸入的不是數字就顯示輸入產品的編號 else: print("\033[31;1m用戶名或密碼錯誤\033[0m") #如果用戶名密碼不在db的文件裏面顯示密碼錯誤 count += 1 #接著count +1 if count == 3: #如果錯誤三次顯示錯誤次數太多,直接退出程序 print("\033[31;1m錯誤次數較多,程序以退出\033[0m") exit()
列表常用操作語法
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:馮海猛 names = [‘ghj‘,‘fhm‘,‘gwd‘,‘fhm‘,‘ydh‘] print(names) #print(names[0],names[2])#查找 #print(names[0:2])#查找 #print(names.index(‘fhm‘))#返回你所查找值得位置 #names.append(‘yjh‘)#把值追加到後面 #names.insert(1,‘yxl‘)#把值出入到指定位置 #names[1] = ‘FHM‘#更改裏面的值 names1 = [1,2,3] #names.extend(names1)#擴展把另外的表和現在這個表合並 #names.remove("fhm")#根據值得名字刪除 #del names[0]#根據下標刪除 #names.pop(1)#不輸入值默認刪最後一個 #print(names.count(‘fhm‘))#統計列表有幾個相同的值 #names.clear()#清空表 #names.reverse()#把表裏的值反過來 #names.sort()#排序 print(names)
python--------三級菜單以及購物車實現