You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python SQLite实现水果订单:获取用户输入、计算金额并生成收据

水果订单处理SQLite Python程序实现

功能需求

实现水果订单处理功能,具体流程为:

  • 获取用户输入的水果名称(字符串类型)和购买数量(整数类型)
  • 从SQLite数据库中读取对应水果的单价(浮点数类型)
  • 计算购买数量 × 单价得到订单总金额
  • 将水果名称、购买数量及总金额写入文本文件,生成邮件样式的订单收据

主文件代码

# 用户输入
purchaseName = str(input("Enter Name:"))
purchaseQuantity = int(input("Enter Quantity:"))
purchaseConfirm = str(input("Confirm your order with y/n:"))

数据库操作文件代码

# 待插入数据库的水果条目
productEntries = [(1, "Strawberries", 1.50, 123),
                  (2, "Blueberries", 1.30, 178),
                  (3, "Raspberries", 1.40, 145),
                  (4, "Gooseberries", 2.30, 121),
                  (5, "Blackberries", 1.70, 90)]

# 创建products数据表(需优先于数据插入执行)
cursor.execute("""CREATE TABLE IF NOT EXISTS products (
                productID INTEGER PRIMARY KEY,
                productName TEXT NOT NULL,
                productPrice REAL,
                productQuantity INTEGER
                );""")

# 批量插入水果数据(使用INSERT OR IGNORE避免重复插入)
cursor.executemany("INSERT OR IGNORE INTO products (productID, productName, productPrice, productQuantity) VALUES "
                   "(?, ?, ?, ?);", productEntries)

# 查询对应水果的单价(原代码逻辑错误:不应使用数据库中的库存数量计算,需单独取出单价后在主文件中与用户购买数量相乘)
cursor.execute("SELECT productPrice FROM products WHERE productName=?", (purchaseName,))

# 获取查询结果(返回至主文件用于计算总金额)
purchasePrice = cursor.fetchone()

关键修正说明

  1. 调整代码执行顺序:创建表操作必须在数据插入之前,否则插入会失败
  2. 修正查询逻辑:原代码用productPrice * productQuantity计算的是库存总价值,而非用户订单金额,应先取出单价,再在主文件中与用户输入的purchaseQuantity相乘
  3. 修正查询参数格式:cursor.execute的参数需传入元组,原代码直接传purchaseName会报错,改为(purchaseName,)

内容的提问来源于stack exchange,提问作者Phillip Handfield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:10:33