码迷,mamicode.com
首页 > 其他好文 > 详细

三级菜单和购物车

时间:2018-05-30 21:24:40      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:初始   coding   星巴克   def   val   激活   pass   三级   python   

# __*__ coding: utf-8 __*__
__author__ = "david.z"

menu = {
    北京:{
        海淀:{
            五道口:{
                soho:{},
                网易:{},
                google:{}
            },
            中关村:{
                爱奇艺:{},
                汽车之家:{},
                youku:{},
            },
            上地:{
                百度:{},
            },
        },
        昌平:{
            沙河:{
                老男孩:{
                    路飞:{
                Python:{
                }}
                },
                北航:{},
            },
            天通苑:{},
            回龙观:{},
        },
        朝阳:{},
        东城:{},
    },
    上海:{
        闵行:{
            "人民广场":{
                炸鸡店:{}
            }
        },
        闸北:{
            火车战:{
                携程:{}
            }
        },
        浦东:{},
    },
    山东:{},
}


currert_layer = menu
layers = []  #进入下一层的都添加一次进来

while True:
    for i in currert_layer:
        print(i)
    choice = input("进入程序:").strip()
    if not choice:continue #如果没有选择也继续

    if choice in currert_layer:
        layers.append(currert_layer) #进入下一层之前append上一层进入layers列表
        currert_layer = currert_layer[choice]
    elif choice == b or choice ==B:
        if len(layers) != 0:
            currert_layer = layers.pop() #把上一层添加进layers的删除掉
        else:
            print("已经在初始画面!")
    elif choice == q or choice ==Q:
        print("程序结束!")
        exit()

alex 的三级菜单程序堪称经典了

 

# __*__ coding: utf-8 __*__
__author__ = "david.z"
import os
def gouwuche():
    products = [
        ("苹果X", 6888),
        ("MacPro", 14800),
        ("小米6", 2499),
        ("星巴克咖啡", 31),
        ("Python书籍", 80),
        ("Nike 鞋子 ", 799),
        ("儿童车", 1355)
    ]

    shopping_list = []

    salary = input("请输入您的工资:")
    while True:
        if salary.isdigit():
            salary = int(salary)
            while True:
                for index, item in enumerate(products):
                    print(index, item)
                    # print()
                user_choice = input("请选择你要购买的商品编号:")
                if user_choice.isdigit():
                    user_choice = int(user_choice)
                    if user_choice < len(products) and user_choice >= 0:
                        p_item = products[user_choice]
                        if p_item[1] <= salary:  # 买得起
                            shopping_list.append(p_item)
                            salary -= p_item[1]
                            print("您所购买的商品为\033[32;1m%s\033[0m,您的余额还剩\033[31;1m%s\033[0m" % (p_item, salary))
                        else:
                            print("\033[41;1m您的余额仅剩%s,请尽快充值!!\033[0m" % salary)
                    else:
                        print("您选择的【%s】不存在!!!" % user_choice)
                elif user_choice == "q" or user_choice == "Q":
                    print (shopping list.center(50, -))
                    for p in shopping_list:
                        print (p)
                    print("您的余额为:", salary)
                    exit()
                else:
                    print("您的输入有误!")

            else:
                print ("您的输入有误,请重新输入!!")
            break

input_users = []
count = 0
while count < 3:
    count += 1
    username = input("Username:").strip()
    password = input("Password:").strip()
    input_users.append(username) #把第一次输入的用户名 加入到列表里
    account_file = "db/%s"%username

    if os.path.isfile(account_file):
        f = open(account_file,r)
        account = eval(f.read())#加载账号数据到内存并且把字符串转成列表
        if username == account[0] and password == account[1]:
            if account[2] == 0: #账号激活状态
                print("欢迎来到无人超市".center(50,-))
                gouwuche()
            else:
                exit("账号 %s 被锁定。 "%username)
        else:
            print("错误的账号或密码,你还可以输入%s次。"%(3-count))
    else:
        print("您输入的用户不存在!")
else:
    if input_users.count(input_users[0]) == 3:#代表3次错误用户名一致,可以锁定
        account[2] = 1 #锁定状态

        f = open("db/%s"%input_users[0],w)
        f.write(str(account))
        f.close()
        print ("账户%s已经锁定。程序即将退出。"%account[0])

查找了好多资料,尽我目前的能力,这个购物车真的只能写成这样了。希望下章open 文件应用的多多努力。就知道shopping_list怎么灵活的存入文件,又如何灵活调用出来。

三级菜单和购物车

标签:初始   coding   星巴克   def   val   激活   pass   三级   python   

原文地址:https://www.cnblogs.com/davidz/p/9112789.html

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