Python练习+购物车小案例

购买车功能要求及分析

1、首页揭示用户输入自己的工资额。(判断输入的是否整数)

2、列出商品,商品参数为:序号、商品名称、商品价格

3、用户输入要购买的商品(输入序号,判断输入是否整数)

4、如果是整数,判断用户输入的序号是否有商品。并加入购物车内

5、如果有,判断用户的工资是否买得起该商品,

6、如果买得起,进行扣除工资,并打印出该 商品,并揭示余额

7、如果继续购物,那循环上面的操作。

8、如果余额不足,揭示余额不足并打印所购买过的商品。

9、用户在操作过程中,输入Q随时退出,并打印所购买过的商品。

# Author:aqwz\
Commodity_list = [
    ("Iphone",5800),
    ("DELL Pc",4500),
    ("Sony Video",35000),
    ("Roborock S50",2300),
    ("Tcl 40A860U",1999),
    ("Casio",5000),
    ("Fujifilm mini8",800),
    ("Apple Watch",2400),
]#以上商品列表
shopping_list = []#商品购物车
Salary = input("Please enter the salary:")#要求用户输入工资
if Salary.isdigit():#判断工资是否为整数
    Salary = int(Salary)#转换为整数
    while True:#循环开始
        # for item in Commodity_list: #方案一,循环打印商品列表
        #     print(Commodity_list.index(item),item)#方案一,打印列表并取出序号下标
        for index,item in enumerate(Commodity_list):#方案二,循环打印商品列表,index是下标
            print(index,item)#方案二,打印列表并取出序号下标
        user_choice = input("Please choice Commodity Number:")#请用户输入商品编号
        if user_choice.isdigit():#这地方也需要判断输入的编号为整数
            user_choice = int(user_choice)#转换为整数
            if user_choice < len(Commodity_list) and user_choice >= 0:#判断用户输入的编号在系统库中都存在的
                p_item = Commodity_list[user_choice]#取出商品列表,取出了两位,一个是名称,一个是价格
                if p_item[1] <= Salary:#判断商品价格小于等于工资
                   shopping_list.append(p_item)#加入购物车
                   Salary -= p_item[1] #工资减商品价格
                   print("Added \033[31;1m%s\033[0m into shopping cart,your current balance is \033[31;1m%s\033[0m"%(p_item,Salary))
                else:
                    print("Insufficient account balance \033[31;1m%s\033[0m. Please refill it."%Salary)#打印余额不足揭示并告知工资额度
            else:
                print("The number of goods you entered was no,\033[42;1m%s\033[0m"%user_choice)#继24行判断如果用户输入没有的商品提示
        elif user_choice == 'q':#继22行判断,在循环中随时可以退出,并打印购物车商品并告知工资。
            print("------shopping list------")
            for p in shopping_list:
                print(p)
            print("Your current balance %s"%Salary)
            exit()
        else:
            print("invalid option")#如果整数以外的提示错误
else:
    print("Your input 《%s》 invalid"%Salary)#继14行判断不是整数提示错误,并打印出用户输入的数据

总结:犯了几个低级错误,这几个问题找半天才找到
1、取列表p_item = Commodity_list[user_choice]我把[]写成了()
2、列表里的价格我写时用了"",这样在后面计算价格时变成了字符串,
3、就是格式问题,代码前不能多空格也不能少,很严谨的代码格式

posted @ 2018-08-01 11:03  aqwz  阅读(376)  评论(0)    收藏  举报