今天练习做一个购物车的小程序
要求:
1:启动后输入用户的工资,并打印商品列表
2:允许用户通过商品编码购买食品
3:用户选择商品后 检测余额是否足够,不够就提醒;
4:可以随时按 q 退出,退出时打印已经购买了的商品,并计算已购买商品的总额

首先通过分析要求,要有一个编写流程与注意事项:
1:输入工资并打印
  1)因为是工资,所以再用input接收时 要注意接受值的数据类型
  2)直接用int(input())的话,会出现写死,吧所有接受的值转为int,如果中途需要输入英文退出,就会无效
2:允许用户通过商品编码购买食品
  1)用户输入编码可能存在超出商品编码的范围,所以在接收时,要判断接受值是否在范围内。
  2)一般用户可能不只买一件,所以在这里开启一个循环,让用户买完商品后可以继续输入编码购买
  3)这里也是用input接收值(input默认接收值的数据类型为字符串),所以要考虑和1一样的情况;
3:用户选择商品后 检测余额是否足够,不够就提醒
  1)存在两种可能,一种是够购买,一种是不够并提醒,所以在这里用判断语句if实现
4:可以随时按 q 退出,退出时打印已经购买了的商品,并计算已购买商品的总额
  1)因为接受的值是编码,所以在编码的if条件下,要多加一个判断输入值是否为q,是的话则退出购物
  2)退出的时候要打印已购买的商品,并计算总额,因为购买实在 2 中实现的,所以要创建一个列表用于存储商品
    并且在每次成功时,将总额减去商品价格
下面是代码。



product_list = [
    ("u20",1099),
    ("pro 2",1799),
    ("meilan-X",2099),
    ("iphone6s",3250)
]
shoppingcar = []#创建一个列表用于存放已购买的商品
total = 0#创建一个变量存放购买商品的总额
user_salaqy = input("请输入你的工资:")
for index,item in enumerate(product_list):
    print(index,item)
if user_salaqy.isdigit():
    user_salaqy = int(user_salaqy)
while True:
    user_choice = input("请输入要购买的商品列表")
    if user_choice.isdigit():#isdigit()函数的作用是:判断值是否为整数型
        user_choice = int(user_choice)#如果输入的是整数值就转换成int类型,这样即让整数型的值变成了int 也不影响原来接收的数据类型
        if user_choice < len(product_list) and user_choice >=0:#len() 函数 是返回列表的最大下标。
            price = product_list[user_choice]
            if user_salaqy >= price[1]:
                shoppingcar.append(price[0])
                total += price[1]
                user_salaqy -= price[1]
                print("商品\033[33;1m%s\033[0m已购买,当前余额为\033[31;1m%s\033[0m"%(price[0],user_salaqy))
            else:
                print("当前余额\033[31;1m%s\033[0m不足购买\033[34;1m%s\033[0m商品,退出购物请按q"%(user_salaqy,price[0]))
        else:
            print("当前输入的编码%s找不到对应的商品,请重新输入:"%(price[0]))
    elif user_choice == 'q':
        print("已退出购物,当前购买商品有:\033[31;1m%s\033[0m,共记:\033[31;1m%s\033[0m元,余额为:\033[31;1m%s\033[0m"%(shoppingcar,total,user_salaqy))
        exit()
    else:
        print("输入格式错误:请从新输入")



  



 


  输出结果,基本达到要求。

用python超市购物结算 python编写购物车程序_git