Python实现的简单购物车程序完整指南

花开有时
花开有时
发布时间:2026-10-14| 2人浏览过
原创

本文详细介绍如何使用Python编写一个简单的购物车程序。涵盖从定义商品列表、用户预算输入校验到商品购买逻辑的完整实现过程。通过正整数校验函数和列表操作,演示如何处理余额不足、商品售罄及购物清单打印等常见场景,提供可直接运行的代码示例与测试用例分析。

本程序旨在实现一个基础的购物车功能,核心需求包括:

  • 接收用户输入的购物预算金额。
  • 向用户展示可用的商品列表及其价格。
  • 允许用户选择商品进行购买,每次购买后需反馈购买详情及剩余预算。
  • 购物结束(主动退出或预算耗尽)后,打印总花费及购物清单,并将已购商品从原商品列表中移除。

具体实现代码如下:


# 正整数校验函数
def is_positive_int(input_num):
    # noinspection PyBroadException
    # 上一条注释消除Pycharm 'Too broad exception clause' 警告
    try:
        positive_int = int(input_num)
        if positive_int > 0:
            return True
        else:
            return False
    except Exception:
        return False


# 打印商品列表函数
def print_list(__object):
    # noinspection PyBroadException
    # 上一条注释消除Pycharm 'Too broad exception clause' 警告
    try:
        for index in range(0, len(__object)):
            print('%d\t%-10s\t%s' % (index + 1, __object[index][0], __object[index][1]))
    except Exception:
        return None


# 定义初始商品列表和购物车列表
product_list = [
    ['iPhone 12', 10000],
    ['iPhone 11', 6000],
    ['HUAWEI P30', 5000],
    ['荣耀 30', 4000],
    ['小米 10', 3000],
    ['红米 K40', 2000]
]
product_list_shopped = []

print('Welcome to shopping mall!')

# 输入购物预算,并校核预算是否合法
while True:
    budget_input = input('您的购物预算是多少:')
    if is_positive_int(budget_input):
        budget = int(budget_input)
        break
    else:
        print('输入有误,请重新输入.', end='')

# 首次打印商品列表
print('Product list:')
print_list(product_list)

# 进入购物程序
while len(product_list) > 0:
    choice = input('选择购买商品编号[退出:quit]:')
    if choice == 'quit':
        break
    # 校验输入的商品编号是否存在
    elif is_positive_int(choice) and 0 < int(choice) < len(product_list) + 1:
        product_index = int(choice) - 1
        product_price = product_list[product_index][1]
        # 余额判断购物是否成功
        if budget > product_price:
            budget = budget - product_price
            product = product_list.pop(product_index)
            product_list_shopped.append(product)
            print('购买成功,购买了%s,花费%d,您的剩余预算为:%d' % (product[0], product_price, budget))
            print_list(product_list)
        elif budget == product_price:
            budget = budget - product_price
            product = product_list.pop(product_index)
            product_list_shopped.append(product)
            print('购买成功,您的预算已花完.')
            break
        else:
            print('余额不足,请重新', end='')
    else:
        print('输入有误,请重新', end='')

# 购物车不为空时,打印购物列表和花费
if product_list_shopped:
    sum_price = sum(x[1] for x in product_list_shopped)
    print('您一共花费%d,购物清单如下:' % sum_price)
    print_list(product_list_shopped)
print('欢迎下次光临!')

以下是该程序的测试运行情况:

1 预算校验

系统要求用户输入的预算必须为正整数,若输入非正整数或非法字符,系统将提示错误并要求重新输入。

此外,预算校验逻辑还可扩展为:

  • 检查用户输入的预算是否低于商品列表中的最低单价,若低于则提示无法购买任何商品。
  • 同时提供退出选项,允许用户随时结束购物流程。

2 购物流程测试

2.1 直接退出

2.2 单次购物即花完预算

2.3 多次购物后预算耗尽

2.4 多次购物后主动退出

2.5 商品被购买完

以上即为Python实现的简单购物车程序的详细内容,更多关于python 购物车程序的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。