python实现简单的购物程序代码实例

下面我为您详细讲解“Python实现简单的购物程序代码实例”的完整攻略,包含以下几个部分:

  1. 购物程序的功能设计
  2. Python代码实现
  3. 示例说明

购物程序的功能设计

本购物程序主要分为以下几个功能:

  1. 展示商品:将商品信息展示给用户。
  2. 选择商品:根据用户选择的商品名称和数量生成订单。
  3. 购买商品:结算订单,生成购买记录。
  4. 输入查询:查询历史购买记录、商品信息等。

Python代码实现

Python的实现主要依赖于以下几个模块:

  1. os模块:用于读取、写入文件。
  2. json模块:用于解析存储在文件中的JSON格式数据。
  3. argparse模块:用于解析用户输入的命令行参数。

具体实现过程可参考以下示例代码(完整代码请自行查看)

import os
import json
import argparse

# 商品信息文件名、购物记录文件名
PRODUCTS_FILE = 'products.json'
PURCHASES_FILE = 'purchases.json'


class BuyItem:
    """表示一项商品及其数量"""

    def __init__(self, name, count):
        self.name = name
        self.count = count


class Purchase:
    """表示一个订单"""

    def __init__(self, items):
        self.items = items
        self.date = datetime.now()

    def total_price(self, products):
        """返回订单总价格"""
        price = 0
        for item in self.items:
            price += item.count * products[item.name]['price']
        return price


def read_products():
    """读取商品信息"""
    with open(PRODUCTS_FILE, 'r') as f:
        return json.load(f)


def write_purchases(purchases):
    """写入购买记录"""
    with open(PURCHASES_FILE, 'w') as f:
        json.dump(purchases, f)


def read_purchases():
    """读取购买记录"""
    if not os.path.exists(PURCHASES_FILE):
        return []
    with open(PURCHASES_FILE, 'r') as f:
        return json.load(f)


def list_products(products):
    """列出商品信息"""
    print('商品列表:')
    for name, product in products.items():
        print('{}:{}元/个'.format(name, product['price']))


def buy_items(products):
    """购买商品"""
    print('请输入购买信息:')
    items = []
    while True:
        name = input('商品名称(按Enter键结束):')
        if not name:
            break
        if name not in products:
            print('商品不存在,请重新输入!')
            continue
        count = input('购买数量:')
        count = int(count) if count.isdigit() else 0
        if count == 0:
            print('数量输入有误,请重新输入!')
            continue
        items.append(BuyItem(name, count))
    purchase = Purchase(items)
    write_purchases(purchase.__dict__)
    print('购买成功!订单总价为{}元'.format(purchase.total_price(products)))


def search_purchases(purchases):
    """查找购买记录"""
    print('请输入查询关键字:')
    keyword = input('')
    for i, purchase in enumerate(purchases):
        if keyword in purchase.items:
            print('{}:{}'.format(i + 1, purchase.__dict__))


def main():
    """主函数"""
    # 解析命令行参数
    parser = argparse.ArgumentParser(description='简单购物程序')
    parser.add_argument('-c', '--command', required=False,
                        help='list:列出商品,buy:购买商品,search:查询购买记录')
    args = parser.parse_args()

    products = read_products()
    purchases = read_purchases()

    if args.command == 'list':
        list_products(products)
    elif args.command == 'buy':
        buy_items(products)
    elif args.command == 'search':
        search_purchases(purchases)
    else:
        parser.print_help()


if __name__ == '__main__':
    main()

示例说明

示例1:列出商品

运行以下命令:

python shopping.py -c list

输出结果:

商品列表:
iPhone:6288元/个
Macbook:13888元/个
iPad:3588元/个

示例2:购买商品

运行以下命令:

python shopping.py -c buy

然后根据提示输入购买信息,例如:

请输入购买信息:
商品名称(按Enter键结束):iPhone
购买数量:2
商品名称(按Enter键结束):iPad
购买数量:1

购买成功!订单总价为10564元

以上就是Python实现简单的购物程序代码实例的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现简单的购物程序代码实例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Python算法应用实战之队列详解

    Python算法应用实战之队列详解 队列的定义 队列(Queue)是一种在队尾添加元素,从队头删除元素的数据结构。它遵循“后进先出(LIFO)”的原则,在Python中使用列表(List)来模拟队列。 队列的操作 队列的基本操作如下:- 初始化队列:创建一个空列表,作为队列的容器- 入队操作:将元素添加至队列的末尾- 出队操作:从队列的头部删除一个元素并返回…

    python 2023年5月13日
    00
  • python3发送request请求及查看返回结果实例

    以下是关于Python3发送request请求及查看返回结果实例的完整攻略: Python3发送request请求及查看返回结果实例 在Python3中,我们可以使用requests库发送HTTP请求,并查看返回结果。以下是Python3发送request请求及查看返回结果实例的攻略。 安装requests库 在开始发送request请求之前,我们需要先安装…

    python 2023年5月15日
    00
  • python学生管理系统开发

    Python学生管理系统开发攻略: 第一步:确定项目需求和功能 在开发前,需要明确学生管理系统的功能需求,比如添加、删除、修改、查询学生等。可以根据需求绘制出系统的模块结构和流程图,为后续开发做好准备。 第二步:环境搭建 在确定结构和流程图后,需要选择合适的Python开发环境,比如Anaconda、Spyder或PyCharm,安装相应的Python库和工…

    python 2023年5月30日
    00
  • Python利用正则表达式匹配并截取指定子串及去重的方法

    以下是Python利用正则表达式匹配并截取指定子串及去重的方法的完整攻略: 步骤1:导入re模块 在Python中使用正则表达式需要导入re模块,可以使用以下代码导入: import re 步骤2:编写正则表达式 编写正则表达式是使用正则表达式的第一步。正则表达式是一种用于匹配文本的模式,可以用来查找、替换或截取文本中的特定部分。以下是一些常用的正则表达式元…

    python 2023年5月14日
    00
  • python实现动态数组的示例代码

    下面我来为您详细讲解如何使用Python实现动态数组。 首先,什么是动态数组呢?简单来说,动态数组就是一个可以在运行时自动扩容的数组,它可以根据需要自动增加或减少存储空间。接下来,我们就来看看如何使用Python实现动态数组。 1. 使用Python内置列表实现动态数组 Python内置的列表(list)实际上就是一个动态数组,具有自动扩容的功能。我们可以通…

    python 2023年5月31日
    00
  • Python提取PDF发票信息并导入到Excel中

    本篇文章将学习提取pdf发票信息,并将发票信息导入到Excel中。 使用到的Python库: pdfplumber Gooey pyinstaller 背景 随着电子发票越来越普遍,企业使用的越来越多,在财务报账流程中需要将发票信息录入到财务系统(如K3)中,在这个过程中,通常有以下几个痛点: 发票信息检查容易出错。 手动录入发票信息效率十分低下。 人工处理…

    2022年10月25日
    01
  • Python获取网络图片和视频的示例代码

    Python获取网络图片和视频的示例代码 在本教程中,我们将介绍如何使用Python获取网络图片和视频。我们将提供两个示例,演示如何使用Python和requests库下载网络图片和视频。 安装requests库 在使用requests库之前,我们需要先安装它。可以使用pip命令来安装requests库: pip install requests 下载网络图…

    python 2023年5月15日
    00
  • 解决安装python库时windows error5 报错的问题

    解决安装Python库时WindowsError 5报错的问题攻略 在安装Python库时,有时会遇到WindowsError 5报错的问题。这个错误通常是由于权限引起的。本攻略将介如何解决这个错误,并提供两个例。 解决方法 在解决WindowsError 5错的问题时,我们可以尝试以下方法: 以管理员身份运行命令符或Anaconda Prompt 修改安装…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部