简单购物车程序练习题

内容要求:

  1. 启动程序后,让用户输入工资,然后打印商品列表
  2. 允许用户根据商品编号购买商品
  3. 用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒
  4. 可随时退出,退出时,打印已购买商品和余额
product_list = [
    ("苹果手机",5000),
    ("单车",300),
    ("手表",200),
    ("被子",100),
    ("杯子",150),
    ("笔记本电脑",6000)
]
#购物车,用于将商品加入
shop_list = []
salary = input("请输入你的工资")
if salary.isdigit():
    salary = int(salary) #判断输入是否是数字,将输入字符转换为数字类型
    #打印商品列表,使用enumerate方式更好,少了查询列表
    while True:
        for index,item in enumerate(product_list):
            print(index,item)
        '''for item in product_list:  #打印商品列表
            print(product_list.index(item),item)
        '''
        user_choice = input("请输入购买商品的编号>>>>")
        if user_choice.isdigit():
            user_choice = int(user_choice) #若输入字符为数字转换为数字
            if user_choice < len(product_list) and user_choice >=0:
                #获取选择的产品信息
                p_item = product_list[user_choice]
                if salary > p_item[1]:
                    #计算剩余金额
                    salary -=p_item[1]
                    shop_list.append(p_item)
                    #33[31;1m    33[0m   红色字体
                    print("你增加了商品%s到购物车,剩余金额33[31;1m%s33[0m"%(p_item[0],salary))
                else:
                    #33[41;1m   33[0m   红色背景
                    print("33[41;1m你的剩余金额为%s,不够买33[0m"% salary)


                #print("你购买了%s,剩余%s"%(item[1],salary))

            else:
                print("输入错误")
        elif user_choice == "q":
            print("--------购物清单--------")
            for index,item in enumerate(shop_list):
                print(index,item)
            print("你的余额是:%s"% salary)
            exit()
        else:
            print("输入错误")

else:
    print("输入错误!")

  优化后的代码:

'''
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户现在商品后,检测余额是否够,够就直接扣款,不够就提醒
4.课随时退出,退出时,打印已购买商品和余额
'''

product_list = [
    ("苹果手机",5800),
    ("单车",300),
    ("手表",200),
    ("Python书籍",120),
    ("笔记本电脑",4600),
    ("显示器",1100),
]
#购物车列表
shop_list = []
salary = input("输入你的工资")
#判断输入是否数字,若是,将输入字符转换为数字格式
if salary.isdigit():
    salary = int(salary)
    #利用循环,将商品列表打印出来
    while True:
        for index,item in enumerate(product_list):
            print(index,item)
        print("--------------------------------------")
        user_choice = input("输入你购买的商品编号:")
        #判断输入是否为数字编号,若是,将其转换为数字格式,若输入为q,则退出循环
        if user_choice.isdigit():
            user_choice = int(user_choice)
            #判断用户输入商品编号是否超过商品列表数量
            if user_choice < len(product_list) and user_choice >= 0:
                #将购买的商品提取出来,加入到shop_list
                p_item = product_list[user_choice]
                if p_item[1]>salary:
                    #33[41;1m 33[0m   背景红色
                    print("33[41;1m你的钱不够,买毛线!33[0m")
                    print("--------------------------------------")
                else:
                    shop_list.append(p_item)
                    #商品购买,减少对应价格
                    salary -=p_item[1]
                    #33[31;1m 33[0m  字体红色
                    print("你购买了%s,剩余价格33[31;1m%s33[0m"%(p_item[0],salary))
                    print("--------------------------------------")
            else:
                print("输入编号没有对应产品!请重新选择")
        elif user_choice == 'q':
            #打印购物车以及余额
            print("---------shop_list-----------")
            for index,item in enumerate(shop_list):
                print(index,item)
            print("你的余额是:%s"%salary)
            exit()
        else:
            print("输入错误")
else:
    print("输入错误")

  




原文地址:https://www.cnblogs.com/cheng662540/p/7912637.html