python全栈笔记-day03-chapter2 homework2_shoppingCart

#购物车程序
# 功能要求:
# 基础要求:
# 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
# 2、允许用户根据商品编号购买商品
# 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
# 4、可随时退出,退出时,打印已购买商品和余额
# 5、在用户使用过程中,
# 关键输出,如余额,商品已加入购物车等消息,需高亮显示
# 扩展需求:
# 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
# 2、允许查询之前的消费记录

username = 'abc'
password = '123456'

cart_all =[]
goods = [
{"name":
"电脑", "price": 1999},
{"name":
"鼠标", "price": 10},
{"name":
"游艇", "price": 20},
{"name":
"美女", "price": 998}
]

count = 0#记录login次数

while True:
    cart = []
    count_goods = 0  # 记录该次购物商品次数
    input_un = input('Username:')
    input_pw = input('Password:')

    if input_un == username and input_pw == password:
        count +=1
        if count == 1:
            salary = int (input('请输入您的工资:'))
        else:
            print("\033[1;0m您的余额为\033[0m", "\033[1;0m%s\033[0m" % (salary))
        print('-------------商品列表--------------')
        for index,i in enumerate(goods):
            print('%s.  %s              %s' % (index+1,i['name'],i['price']))
        exit_flag = False #标志位
        while not exit_flag:
            purchase = input('请输入您要购买商品的编号(q(Q):退出,c(C):查询消费记录):')
            if purchase.isdigit():#判断输入是否数字
                num = int(purchase)
                if num > 0 and num <= len(goods):#判断输入的数字在商品编号的范围内
                    if salary >= goods[num - 1]['price']:#判断工资是否足够支付该商品
                        if count_goods == 0:
                            cart_all.append(cart)
                        cart.append(goods[num - 1])
                        count_goods += 1
                        salary -= goods[num - 1]['price']
                        print("\033[1;0m购买成功!您的余额为\033[0m","\033[1;0m%s\033[0m"%(salary))#高亮显示
                    else:
                        print("\033[1;0m购买失败!您的余额不足!\033[0m")
                else:
                    print("\033[1;0m该编号没有对应商品\033[0m")
            elif purchase == "c" or purchase == "C":#查询消费记录
                if len(cart_all) == 0:
                    print("\033[1;0m消费记录为空\033[0m")
                else:
                    num_cart_all = 0#用于规范编号
                    num_cart = 0#用于规范编号
                    print('\033[1;0m-------------消费记录--------------\033[0m')
                    for i in cart_all:
                        num_cart_all = num_cart
                        for index, k in enumerate(i):
                            print('%s.  %s              %s' % (index+1+num_cart_all, k['name'], k['price']))
                            num_cart = index+1+num_cart_all
                    print('\033[1;0m-------------end--------------\033[0m')
            elif purchase == "q" or purchase == 'Q':
                if len(cart) != 0:
                    print('\033[1;0m-------------您已购买以下商品--------------\033[0m')
                    for index,i in enumerate(cart_all[-1]):
                        print('%s.  %s              %s' % (index+1,i['name'],i['price']))
                        exit_flag = True
                    print('\033[1;0m-------------end--------------\033[0m')
                else:
                    exit_flag = True
            else:
                print("\033[1;0m输入错误\033[0m")
        print("\033[1;0m您的余额为\033[0m","\033[1;0m%s\033[0m"%(salary))
        print("谢谢惠顾,欢迎下次光临!")
    else:
        print('用户名或密码错误')

猜你喜欢

转载自blog.csdn.net/weixin_37267713/article/details/82826906