码迷,mamicode.com
首页 > 编程语言 > 详细

python-三级菜单和购物车程序代码(补发)

时间:2018-01-31 20:10:04      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:打印   encoding   odi   字典   list   字符   采购   返回   usr   

 

技术分享图片
  1 #!/usr/bin/env python
  2 #coding=utf-8
  3 # 需求:
  4 # 可依次选择进入各子菜单
  5 # 可从任意一层往回退到上一层
  6 # 可从任意一层退出程序
  7 # 所需新知识点:列表、字典
  8 import sys
  9 menu = {
 10     北京:{
 11         海淀:{
 12             五道口:{
 13                 soho:{},
 14                 网易:{},
 15                 google:{}
 16             },
 17             中关村:{
 18                 爱奇艺:{},
 19                 汽车之家:{},
 20                 youku:{},
 21             },
 22             上地:{
 23                 百度:{},
 24             },
 25         },
 26         昌平:{
 27             沙河:{
 28                 老男孩:{},
 29                 北航:{},
 30             },
 31             天通苑:{},
 32             回龙观:{},
 33         },
 34         朝阳:{},
 35         东城:{},
 36     },
 37     上海:{
 38         闵行:{
 39             "人民广场":{
 40                 炸鸡店:{}
 41             }
 42         },
 43         闸北:{
 44             火车战:{
 45                 携程:{}
 46             }
 47         },
 48         浦东:{},
 49     },
 50     山东:{},
 51 }
 52 #控制停留在第一层
 53 while True:
 54     print(=*10+省份及直辖市+=*10)
 55     for key in menu.keys(): #打印第一层key(北京、上海、山东)
 56         print(key)
 57     choice = input("请输入想查看的地域(‘q‘or‘Q‘退出):").strip()
 58     if choice in menu.keys():
 59         #控制停留在第二层
 60         while True:
 61             print(=*20)
 62             print("%s下面的市(区)有:"%choice)
 63             for key in menu[choice].keys(): #打印第二层key(海淀...)
 64                 print(key)
 65             choice1 = input("请输入想查看的区域(输入‘q’or‘Q‘退出;输入‘b’or‘B’返回上级):").strip()
 66             if choice1 in menu[choice].keys():
 67                 #控制停留在第三层
 68                 while True:
 69                     print(= * 20)
 70                     print("%s下面的区域有:" % choice1)
 71                     for key in menu[choice][choice1].keys(): #打印第三层key(五道口...)
 72                         print(key)
 73                     choice2 = input("请输入想查看的街道(输入‘q’or‘Q‘退出;输入‘b’or‘B’返回上级):").strip()
 74                     if choice2 in menu[choice][choice1].keys():
 75                         #控制停留在第四层
 76                         while True:
 77                             print(= * 20)
 78                             print("%s下面的企业有:" % choice2)
 79                             for key in menu[choice][choice1][choice2].keys(): #打印第四层key(sohu...)
 80                                 print(key)
 81                             choice3 = input("输入‘q’or‘Q‘退出;输入‘b’or‘B’返回上级:").strip()#随时退出
 82                             if choice3 == q or choice3 == Q:
 83                                 sys.exit(0)
 84                             elif choice3 == b or choice3 == B:#返回上层
 85                                 break
 86                             else:
 87                                 print("无效的输入...")
 88                     elif choice2 == b or choice2 == B:#返回上层
 89                         break
 90                     elif choice2 == q or choice2 == Q:#随时退出
 91                         sys.exit(0)
 92                     else:
 93                         print("无效的输入...")
 94             elif choice1 == b or choice1 == B:#返回上层
 95                 break
 96             elif choice1 == q or choice1 == Q:#随时退出
 97                 sys.exit(0)
 98             else:
 99                 print("无效的输入...")
100     elif choice == q or choice == Q:#随时退出
101         sys.exit(0)
102     else:
103         print("无效地址...")
三级菜单代码

 

技术分享图片
 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 import sys
 4 #定义商品列表
 5 goods =[
 6 {"name":"电脑", "price": 1999},
 7 {"name":"鼠标", "price": 10},
 8 {"name":"游艇", "price": 20},
 9 {"name":"美女", "price": 998},
10 {"name":"大宝剑","price":666}
11 ]
12 #定义一个余额列表
13 balance = []
14 #定义一个购物车列表
15 shopping_car = []
16 #简单定义用户名密码
17 username = alex
18 password = 123456
19 #简易的登录验证
20 i = 0
21 while i < 3:
22     name = input("请输入用户名:").strip()
23     passwd = input("请输入密码:").strip()
24     if name == username and passwd == password:
25         print(=*15+欢迎登陆世纪联华+=*15)
26         break
27     else:
28         print("用户名或者密码错误,还剩%d次登陆机会!"%(2-i))
29         i += 1
30 else:
31     sys.exit("三次输入失败,退出...")
32 #打开余额文件,查看是否有余额,是则不提示输入工资
33 with open(balance_file,r,encoding=utf-8) as balance_f:
34     balance_list = balance_f.readlines()
35 if len(balance_list) == 0: #如若balance_file为空,提示输入工资并作为余额
36     salary = int(input("请输入你的工资:").strip())
37     balance.append(salary)
38 else:  #balance_file余额,则将余额添加到余额列表
39     history_balance  = int(balance_list[0].strip(\n))
40     balance.append(history_balance)
41 while True:
42     #打印商品列表
43     print(=*10+"本店有以下商品,欢迎采购"+=*10)
44     for g,good in enumerate(goods,1):
45         print("\033[1;31;0m%s.  %s  %s \033[0m"%(g,good["name"],good["price"]))
46     #获取用户输入
47     action = input("请选择购买的商品编号(退出请按q;查询历史购买记录请按f):").strip()
48     #商品购买
49     if action.isdigit(): #检测输入的字符串是否只由数字组成
50         action = int(action) #若字符串只有数字组成,将其转换成int类型
51         if action > 0 and action <= len(goods):#判断输入的商品编号是否在商品列表内
52             if balance[0] >= goods[action-1]["price"]:#判断余额是否充足
53                 shopping_car.append(goods[action-1])  #记录购物车
54                 history_data = goods[action-1]["name"]+:+ str(goods[action-1]["price"])+\n
55                 with open(history_file,a,encoding=utf-8) as h_f: #将选购商品信息写入history_file作为历史清单
56                     h_f.write(history_data)
57                 balance[0] = balance[0] - goods[action-1]["price"] #余额扣款
58                 print("\033[1;0m%s已购买成功!\033[0m"%(goods[action-1]["name"]))
59             else:
60                 print("\033[1;0m余额已不足...\033[0m")
61         else:
62             print("\033[1;0m此商品不存在,请根据商品列表购买!\033[0m")
63     #用户退出
64     elif action == q or action == Q:
65         if len(shopping_car) > 0:
66             print(=*15+"您已购买了以下商品:")
67         else:
68             print("您没有购买商品..")
69         for g,good in enumerate(shopping_car,1): #遍历购物车,打印购买商品
70             print("\033[1;35;0m%s.  %s  %s \033[0m"%(g,good["name"],good["price"]))
71         print("\033[1;0m您的余额为:%d,欢迎下次光临!"%(balance[0])) #打印余额
72         with open(balance_file,r+,encoding=utf-8) as b_f: #将余额覆盖到balance_file
73             b_f.write(str(balance[0])+\n)
74         sys.exit(0)
75     #查询历史消费记录
76     elif action == f or action == F:
77         with open(history_file,r,encoding=utf-8) as h_f:
78             h_list = h_f.readlines()  #逐行读取history_file
79         if len(h_list) == 0:
80             print("没有历史购买记录!")
81         else:
82             print("\033[1;0m以下为历史购买记录:\033[0m") #遍历h_list,打印历史清单
83             for i,h in enumerate(h_list,1):
84                 (name,price) = h.strip(\n).split(":")
85                 print("\033[1;35;0m%s.  %s  %s\033[0m"%(i,name,price))
购物车程序代码

 

python-三级菜单和购物车程序代码(补发)

标签:打印   encoding   odi   字典   list   字符   采购   返回   usr   

原文地址:https://www.cnblogs.com/alvin-jie/p/8393904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!