三級菜單、購物車程序(自寫,待優化)
阿新 • • 發佈:2018-01-21
pan 余額 設立 ike dig 查詢 lag pass 菜單
一、三級菜單程序:
要求:
1. 可依次進入各子菜單
2.可從任意一層往回退到上一層
3. 可從任意一層退出程序
各級菜單詳情見代碼:
menu = { ‘北京‘:{ ‘海澱‘:{ ‘五道口‘:{ ‘soho‘:{}, ‘網易‘:{}, ‘google‘:{} }, ‘中關村‘:{ ‘愛奇藝‘:{}, ‘汽車之家‘:{},‘youku‘:{}, }, ‘上地‘:{ ‘百度‘:{}, }, }, ‘昌平‘:{ ‘沙河‘:{ ‘老男孩‘:{}, ‘北航‘:{}, }, ‘天通苑‘:{}, ‘回龍觀‘:{}, }, ‘朝陽‘:{}, ‘東城‘:{}, }, ‘上海‘:{ ‘閔行‘:{ "人民廣場":{ ‘炸雞店‘:{} } }, ‘閘北‘:{ ‘火車戰‘:{ ‘攜程‘:{} } }, ‘浦東‘:{}, }, ‘山東‘:{}, }
exit_flag = False #標識符 while not exit_flag: #循環,能夠讓用戶持續選擇省/直轄市 print(‘北京,上海,山東‘) province_input= input("請輸入您要查詢的省份/直轄市:") if province_input in menu: #在選擇省/直轄市的時候輸入了正確的省名 if menu[province_input] != {}: #這個省下面有市/區 while not exit_flag: #循環, 能夠讓用戶從鎮返回到區進行選擇 for i in menu[province_input]: print(i) #把直轄市下面的區都打印出來供用戶選擇 district_input = input(‘請輸入您要查的區:‘) if district_input in menu[province_input]: #選擇區的時候輸入了正確的區名 if menu[province_input][district_input] != {}: #這個區有鎮 for i in menu[province_input][district_input]: print(i) #打印區裏面的鎮供用戶選擇 town_input = input(‘請輸入您要查詢的鎮:‘) if town_input in menu[province_input][district_input]: #選擇鎮的時候輸入了正確的鎮名 if menu[province_input][district_input][town_input] != {}: #這個鎮有公司 print(‘該地區的公司有:‘) for i in menu[province_input][district_input][town_input]: print(i) #打印該鎮的公司名 break #返回省/直轄市那一層讓用戶繼續輸入 else: #鎮下面沒有公司 print(‘該鎮沒有大公司‘) break #返回省/直轄市那一層讓用戶繼續輸入 elif town_input == ‘b‘: continue #在選擇鎮名的時候輸入了“b”,返回上一層選擇區 elif town_input == ‘q‘: exit_flag = True #選擇鎮的時候輸“q”退出 else: #區下面沒有鎮 print(‘該區沒有大公司‘) break #返回省/直轄市那一層讓用戶繼續輸入 elif district_input == ‘b‘: break #選擇區的時候輸入了“b”,返回上一層的選擇省/直轄市 elif district_input == ‘q‘: exit_flag = True #選擇區的時候輸“q”退出 else: print(‘該省沒有大公司‘) #省/直轄市下面沒有區 elif province_input ==‘b‘: continue # 選擇省/直轄市的時候輸“b”返回上一層 elif province_input == ‘q‘: exit_flag = True #選擇省/直轄市的時候輸“q”退出
二、購物車程序:
要求:
1. 啟動程序後,輸入用戶名密碼後,讓用戶輸入工資,然後打印商品列表
2. 允許用戶根據商品編號購買商品
3. 用戶選擇商品後,檢測余額是否足夠,夠就直接扣款,不夠就提醒
4. 可隨時退出,退出時,打印已購買商品和余額
# 系統儲存的用戶名密碼信息: user_info = { ‘Mike‘:‘abc123‘, ‘Alice‘:‘456‘ ,‘Neo‘:‘789‘} goods = [{‘name‘: ‘電腦‘, ‘price‘: 1999}, {‘name‘: ‘鼠標‘, ‘price‘: 10}, {‘name‘: ‘遊艇‘, ‘price‘: 20}, {‘name‘: ‘美女‘, ‘price‘: 998}] exit_flag = False #設立標識符 while not exit_flag: # 循環,用戶名密碼錯誤之後能夠讓用戶再次輸入 name_input = input(‘請輸入用戶名:‘) password_input = input(‘請輸入密碼:‘) ‘‘‘ 判斷用戶名、密碼是否正確 用戶名、密碼正確則登錄 ‘‘‘ if password_input == user_info.get(name_input): print(‘登錄成功!‘) # 登錄成功後讓用戶輸入工資: salary_input = int(input(‘請輸入您的工資:‘)) # 輸入工資後打印商品列表 print(‘---------商品列表---------‘) for k, i in enumerate(goods): print(‘%s. %s price:%s‘ % (k, i[‘name‘], i[‘price‘])) # 定義一個購物車為空列表 cart = [] ‘‘‘ 用戶輸入有2種情況: 1.用戶輸入數字:如果輸入的數字是商品編碼,則把相應的商品添加到購物車; 如果輸入的數字不是商品編碼,則提示“商品編碼錯誤”信息; 2.輸入字母“q”則退出。 ‘‘‘ while not exit_flag: # 循環,讓用戶可以持續添加商品編碼 product_choice = input(‘請輸入您要購買的商品編號:‘) # 第1中情況:用戶輸入的是數字 if product_choice.isdigit(): choice = int(product_choice) # 輸入數字在商品編碼範圍之內 if choice >= 0 and choice < len(goods): ‘‘‘ 輸入正確的商品編碼後,去判斷工資余額是否足夠買這個商品, 余額足夠就把所選的商品添加到購物車cart列表中,並從余額中扣除相應的價格,打印“商品已添加到購物車”和所剩余額信息。 ‘‘‘ if salary_input >= goods[choice][‘price‘]: cart.append(goods[choice]) print(‘商品:%s 已被添加到購物車‘ % (goods[choice][‘name‘])) salary_input -= goods[choice][‘price‘] # 余額不足以購買所選購的商品 else: print(‘余額不足!‘) # 輸入數字不在商品編碼之內,打印“商品編碼錯誤”信息 else: print(‘商品不存在 ‘) # 用戶輸入的是字母“q” elif product_choice == ‘q‘: exit_flag = True if len(cart) > 0: # 購物車不為空時打印商品清單 print(‘---------您已購買的商品清單---------‘) # 循環打印購物車列表cart中的信息 for index, i in enumerate(cart): print(‘%s. %s price:%s‘ % (index, i[‘name‘], i[‘price‘])) print(‘賬戶余額‘, salary_input) # 打印余額信息。 # 用戶名、密碼錯誤,打印“用戶名密碼錯誤”並重新輸入 else: print(‘用戶名或密碼錯誤,請重新輸入‘)
三級菜單、購物車程序(自寫,待優化)