首页 > 其他 > 详细

三级菜单、购物车程序(自写,待优化)

时间:2018-01-21 14:36:51      阅读:94      评论:0      收藏:0      [点我收藏+]

标签: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(用户名或密码错误,请重新输入)

 

三级菜单、购物车程序(自写,待优化)

标签:pan   余额   设立   ike   dig   查询   lag   pass   菜单   

原文:https://www.cnblogs.com/neozheng/p/8324021.html

(0)
(2)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号