Python练习-一辆购物车的寂寞都是Alex的错

Alex大神的购物车需求:

商品列表,选择商品后加入购物车,扣款显示余额,如余额不足则提示购买此商品还需充值的金额,退出后自动结账显示余额;

# 编辑者:闫龙
#弱鸡购物车程序,需求:定义金额,选择商品,没选择一次告知用户剩余金额,收入Q退出
#定义Money变量为字符串,为之后的转换类型做祭奠
Money="1";
#首先判断Money的类型是否为int
while(type(Money) != type(1)):
    #尝试将用户输入的金额转为int
    try:
        Money=int(input("请输入您本次携带的金额:"));
    #如果用户输入的金额不能被转成int,重复输入
    except:
        print("你在输入个什么鬼?");
#定义商品的名称和商品的价格,价格与商品一一对应;
Products = ["糖果","苹果","香蕉","黄瓜","茄子"];
ProductsPrice = [15, 25, 20, 10, 5];
#判断一下你手里的钱够不够买我们家最便的商品,不够就请自觉离开
if Money < min(ProductsPrice):
    print("你么这点儿钱,买个毛线!");
    exit();
#开始进入商城
print("欢迎光临Fire商城!
我们提供以下商品供您选择:");
#用户选择的商品列表
UserSelectList = [];
#用户选择的商品价格列表
UserSelectPrice = [];
#开始循环商城商品列表
while True:
    #输出商品列表使用for循环输出
    for i in range(0, len(Products)):
        print(str(i+1) + ". " + Products[i] + "	" + str(ProductsPrice[i]));
    #获取用户选择的商品
    UserSelect = input("请输入您所购买商品的编号或者名称(Q or 滚 结算购物车):");
    #判断如果不是退出的选项,继续进行
    if (UserSelect != "" and UserSelect != "Q" and UserSelect !="q") :
        #判断用户输入的是商品编码还是商品名称:
        try:
            #如果成功的将UserSelect转换为int则代表用户输入的是商品编码
            #-1的意思是商品显示编码与列表内位置相差1
            UserSelect = int(UserSelect)-1;
            #获取用户所输入商品编码所对应的商品名称
            UserProducts = Products[UserSelect];
            #为用户选择商品的价格列表加入当前选择商品的价格
            UserSelectPrice.append(ProductsPrice[UserSelect]);
        ##判断用户输入的是商品名称:
        except:
            #如果这个商品名称出现在商品列表中,则继续
            if(Products.count(UserSelect) > 0):
                # 为用户选择商品的价格列表加入当前选择商品的价格
                UserSelectPrice.append(ProductsPrice[Products.index(UserSelect)]);
                #获取商品的名称
                UserProducts = UserSelect;
            #如果商品不在列表中,则提示并重新循环
            else:
                print("请问你在输入个什么鬼?");
                continue;
        #判断用户的购物车中有没有商品,为计算余额是否充足
        if(len(UserSelectList)==0):
            #没有商品就直接将商品添加
            UserSelectList.append(UserProducts);
        else:
            #判断用户所选择的商品价格综合是否大于余额;
            if(sum(UserSelectPrice)> Money):
                print("对不起,您的余额不足!如要购买",
                      UserProducts,"还需充值",(sum(UserSelectPrice)-Money));
                #如果商品添加失败,则将最后添加到用户价格列表中的Item删除;
                UserSelectPrice.pop(-1);
            else:
                #将商品加入用户购物车
                UserSelectList.append(UserProducts);
        print("当前余额:",Money-sum(UserSelectPrice),"");
    else:
        break;
print("您本次购买的商品如下:");
for i in range(0, len(UserSelectList)):
    print(str(i + 1) + ". " + UserSelectList[i] + "	" + str(UserSelectPrice[i]));
print("共计:",sum(UserSelectPrice),"");
print("您的余额:",Money-sum(UserSelectPrice),"");
原文地址:https://www.cnblogs.com/DragonFire/p/6635834.html