首页 > 编程语言 >用Python来写个小型购物车程序

用Python来写个小型购物车程序

时间:2022-12-20 10:22:59浏览次数:40  
标签:写个 name Python money price 购物车 num print

0x1 前言

Python语言能做很多东西的,像数据分析啊、自动化、开发、爬虫(真的很棒哟,初学者玩很有成就感的啊哈哈)等等还有挺多。

0x2 用Python编写的一个小型购物车程序

import time

money = 0

goods_lst = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    {"name": "风油精", "price": 30},
]

# 定义购物车字典
car = {}


# 1:{电脑 ... }
# 2:{鼠标 .... }


def recharge():
    global money
    while True:
        num = input("请充值吧,大哥")
        if num.isdecimal():
            money = int(num)
            print("恭喜你~ 充值成功{}元人民币".format(money))
            break
        else:
            print("充值失败,非数字.")


def loading():
    print("加载商品中 ... ")
    time.sleep(1)


def show_goods():
    strvar = "{}".format("商品名称").center(18)
    print("序号" + strvar + "价格")
    for k, v in enumerate(goods_lst, start=1):
        v['num'] = k
        strvar = "{v[num]:<10}{v[name]:<12}{v[price]}".format(v=v)
        print(strvar)


def error():
    strvar = '''
**************************************************
*           您输入的选项不存在 , 请重新输入          *
**************************************************
'''
    print(strvar)
    time.sleep(1)


def add_car(num):
    """如果在购物车中,在数量上加1,如果不在购物车中,就添加新商品"""
    if num not in car:
        car[num] = {"name": goods_lst[num - 1]["name"], "price": goods_lst[num - 1]["price"], "amount": 1}
    else:
        car[num]["amount"] += 1
    print(car)


def show_car(num):
    # print(car)
    print("*" * 50)
    print("您选择的商品具体信息:")
    print("*-商品名称:{}".format(car[num]["name"]))
    print("*-商品单价:{}".format(car[num]["price"]))
    print("*-商品数量:{}".format(car[num]["amount"]))
    print("已成功添加到购物车~ 请继续shopping ~")
    print("*" * 50)


def balance():
    total = 0
    print("[-------------------您购物车的具体商品如下:-------------------]")
    # 序号2: 商品名称:鼠标 商品单价:10 商品数量:1 此商品总价:10
    for k, v in car.items():
        v["num"] = k
        v["total"] = v["price"] * v["amount"]
        total += v["total"]

        strvar = "序号{v[num]}: 商品名称:{v[name]} 商品单价:{v[price]} 商品数量:{v[amount]} 此商品总价:{v[total]}".format(v=v)
        print(strvar)
    return total


# total 一共花的钱,money 充值金额
def success(total, money):
    print("[一共:{}元]".format(total))
    print("[您已经成功购买以上所有商品 , 余额还剩{}元,感谢您下次光临~]".format(money - total))
    time.sleep(1)


def del_goods(total, money):
    print("余额不足,还差{}元,请忍痛割爱,删除某些商品".format(total - money))
    sn = input("[-------------------请输入要删除的商品序号:-------------------]	")
    if sn.isdecimal():
        sn = int(sn)
        if sn in car:
            car[sn]["amount"] -= 1
            if not car[sn]["amount"]:
                car.pop(sn)
        else:
            error()
    else:
        error()


def myexit():
    print("[============== 欢迎下次光临: ==============]")
    time.sleep(1)


# N结算 Q退出 序号购买
# 主函数,进行统一调用
def main():
    # 充值
    recharge()
    # 加载中
    # loading()
    # 展示商品
    show_goods()
    # 开始购物
    sign = True
    while sign:
        num = input("请输入您要购买的商品")
        if num.isdecimal():
            num = int(num)
            if (1 <= num) and (num <= len(goods_lst)):
                add_car(num)
            else:
                print("输入有误,没有该序号的商品,请重新输入")
                continue
            # 展示购物车
            show_car(num)

        elif num.upper() == "N":
            while True:
                # 开始结算
                total = balance()
                if total > money:
                    # 删除商品
                    del_goods(total, money)
                else:
                    # 购买成功
                    success(total, money)
                    sign = False
                    break

            print(total)
        elif num.upper() == "Q":
            # 退出
            myexit()
            sign = False
        else:
            error()


main()

  

 

标签:写个,name,Python,money,price,购物车,num,print
From: https://www.cnblogs.com/noproblems/p/16993638.html

相关文章

  • Python__08--运算符
    1常用运算符1.1算数运算符加(+)、减(-)、乘(*)、除(/)、整除(//)取余(%)测试代码:print(-9//-4)print(9//4)print(9//-4)print(-9//4)#一正一负向下取整......
  • anaconda配置Python环境
    查看环境condaenvlist创建python name环境,python版本为3.9:condacreate-nnamepython=3.9激活:condaactivatename去掉激活:condadeactivatename进入panda......
  • Python单元测试框架unittest+requests +HTMLTestRunnerNew
    1)写用例TestCase2)执行用例1:TestSuite存储用例,2:TestLoader找用例,存储用例,存放指定的TestSuite3)对比实际结果/期望结果,判定用例是否通过#断言Assert4)出局测试报告TextT......
  • 【python】mac+appium+python的环境配置完整流程
    一、概述(如果电脑已有可以跳过):1、安装JavaJDK2、安装Homebrew3、安装Python34、安装Git5、安装AdroidSDK(要测试ios,还需要安装Xcode)6、安装Node.js7、安装AppiumSe......
  • 〖Python APP 自动化测试实战篇③〗- Mac系统下 appium 环境的配置搭建
    开始使用“APPIUM”编写脚本之前,必不可少的步骤就是搭建“APPIUM”这样一套测试框架的环境配置。相对于前面学习的接口测试、WEB自动化测试的环境搭建来说,“APPIUM”......
  • PYTHON - openpyxl (三)
    1.1移动数据sheet.move_range(cell_range,rows=0,cols=0,translate=False):cell_range是一个区域rows表示相对移动的行数(正数向下,负数向上)cols表示相对移动的......
  • Python 快速入门:学习Python的基础操作
    @目录变量赋值单变量赋值多变量赋值数据类型Number类型定义数字类型转换运算相关函数String类型定义字符串格式化多行字符串str.format()f-string相关函数List类型定义常用......
  • python强大的hook函数
    什么是hook?钩子函数(hookfunction),可以理解是一个挂钩,作用是有需要的时候挂一个东西上去。具体的解释是:钩子函数是把我们自己实现的hook函数在某一时刻挂接到目标挂载点上......
  • Python 发起post/get请求(封装)
    get和post是最常用的http/htttps请求方式,一定要掌握好二者各自特点以及区别。get和post特点:#get请求请求参数在请求地址后面,提交的数据量较小,安全性较差,不建议用来提交敏......
  • [编程基础] Python字符串替换笔记
    date:2021-08-1622:00:12+0800tags:-编程基础-PythonPython字符串替换笔记Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下......