首页 > 代码库 > 新手小白 python之路 Day4 (购物车小程序)

新手小白 python之路 Day4 (购物车小程序)

直接上需求:

购物车程序
需求
启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检查余额是否足够,够就直接扣款,不够就提醒
可以随时退出,退出时,打印已购买商品和余额

一个比较简单的程序,使用列表操作写的,写了六个函数

Abnormal() 通过抛出异常来判断输入的编号是否合法
Commodity()取出该商品参数 名称 价格
AddShoppingCart() 添加到购物车
Shopping() 判断工资能否购买该商品,能的话加入到购物车
PrintLibray() 打印列表清单
PrintPurchase()退出时打印购买清单
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: linghanchujian

"""
购物车程序
需求
启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检查余额是否足够,够就直接扣款,不够就提醒
可以随时退出,退出时,打印已购买商品和余额
"""

isWhile = True

CommodityLibray = [["IPhone",5800],["Mac Pro",12000],["Starbuck Latte",31],["Alex Python",81],["Bike",800]]

ShoppingCart = [] #购物车

balance = -1 #余额

"""
通过抛出异常来判断输入的编号是否合法
"""
def Abnormal(Num):
    try:
        int(Num)
        return True
    except ValueError:
        print()
        return False
    pass

"""
取出该商品参数
"""
def Commodity(num,Libray,Number):
    for i,j in enumerate(Libray):
        if i==Number:
            return j[num]
    pass

"""
添加到购物车
"""
def AddShoppingCart(Money,Number):
    global balance
    Librys = []
    if Money >= Commodity(1, CommodityLibray, Number):
        balance = Money - Commodity(1, CommodityLibray, Number)
        Librys.append(Commodity(0, CommodityLibray, Number))
        Librys.append(Commodity(1, CommodityLibray, Number))
        ShoppingCart.append(Librys)
        print("已添加到购物车!!")
    else:
        print("余额不足!!")
    pass
"""
判断工资能否购买该商品,能的话加入到购物车
"""
def Shopping(Wages,Number):
    if balance == -1:
        AddShoppingCart(Wages, Number)
    else:
        AddShoppingCart(balance, Number)
    pass
"""
打印列表清单
"""
def PrintLibray(Libray):
    if len(Libray) != 0:
        Str = ""
        for i, j in enumerate(Libray):
            Str = str(i + 1) + ""
            for n, b in enumerate(j):
                Str += str(b) + "  "
            print(Str)
    pass

"""
退出时,打印购买的东西
"""
def PrintPurchase(StrInput):
    if StrInput == "n":
        if len(ShoppingCart) == 0:
            exit()
        else:
            print("已购买清单如下: ")
            PrintLibray(ShoppingCart)
            print("剩余余额:"+str(balance))
            exit()
    pass






Wages = input("请输入工资(n 退出): ")
PrintPurchase(Wages)
if Abnormal(Wages):
    if int(Wages)<=0 :
        print("工资不能少于0")
        exit()
else:
    print("工资不合法!!")


while isWhile:
    PrintLibray(CommodityLibray)
    CommodityNumber = input("请选择商品编号(n 退出): ")
    PrintPurchase(CommodityNumber)
    if Abnormal(CommodityNumber) :
        if int(CommodityNumber)>0 and int(CommodityNumber)<int(len(CommodityLibray)+1) :
            if balance == -1:
                Shopping(int(Wages),int(CommodityNumber)-1)
            else:
                Shopping(balance, int(CommodityNumber)-1)
            continue
        else:
            print("编号必须在0~~"+str(len(CommodityLibray)+1)+"之间!!")
            continue
    else:
        print("编号不合法!!")
        continue
    isWhile=False

 

新手小白 python之路 Day4 (购物车小程序)