python练习三 购物车

python练习三

  • 用户可输入账号余额
  • 打印商品列表
  • 选择商品编号
  • 判断余额是否可以购买商品
  • 退出程序时打印所购买的商品列表
# Author:Roach
# -*- coding: utf-8 -*-
comm_list = ["commodity_list",["iPhone",5900],["Mac Pro",12800]]    # 编写商品列表
shopping_cart = []  # 购物车列表,购买的物品存入
balance = input("请输入账户余额:") # 用户输入账户余额
if balance.isdigit():   # 判断用户输入的是否为一个整数
    balance = int(balance)  # 将输入的数字转换为int类型
    while True: # 进入循环
        # for index,j in enumerate(comm_list):  # enumerate读取列表中的下标,for index,j 可以读取两个参数
        #     print(index,j)
        count = 0   # 计数器
        for i in comm_list[1:]: # 循环读取商品列表中的商品
            count += 1  # 进行计数,对应商品前编号
            print(count,i[0],"\t\t",i[1])   # 打印商品列表,编号-商品名称-价钱
        shopping_nume = input("请输入需要购买的商品编号:")  # 输入需要购买的商品编号
        if shopping_nume.isdigit(): # 判断输入的是否为一个整数
            shopping_nume = int(shopping_nume)  # 将输入的数字转换为int格式
            if shopping_nume < len(comm_list) and shopping_nume >0: # 判断输入的数字是否比0大并且比小于列表长度
                p_item = comm_list[shopping_nume]   # 读取购买的商品列表
                if balance > p_item[1]: # 判断账户余额是否大于该商品的价格
                    shopping_cart.append(p_item)    # 将购买的商品列表添加至购物车列表
                    balance -= p_item[1]    # 当前余额等于余额减商品价格
                    print("已在购物车中添加商品%s,您的余额剩余\033[31;1m%s!\033[0m" % (p_item[0],balance))  #输出所购买的商品及剩余余额
                else:
                    print("\033[41;1m当前余额不足!!!剩余余额%s\033[0m" % balance) # 输出余额不足购买该商品
            else:
                print("不存在此商品[%s]!请重新选择!" % shopping_nume)  # 输出所输入的商品编号不存在与商品列表中
        elif shopping_nume == 'q':  # 如果输入的为"q",则退出商品购买列表,并打印购买的商品,及所剩余余额
            print("-------购买商品列表-------")
            for p in shopping_cart: # 读取购物车列表所购买的商品
                print(p[0]) # 打印购买商品
            print("你的余额为%s"% balance)   # 输出剩余余额
            print("-------退出商品列表-------")
            exit()  # 退出程序
        else:   # 错误选项输出
            print("invalid option")
上一篇:& 并发编程-4-队列和公平锁


下一篇:1382. Balance a Binary Search Tree