开发超市临期商品折扣提醒程序,输入商品名称,保质期,自动提醒折扣时间,帮助消费者省钱。

37 阅读3分钟

以下是为你开发的超市临期商品折扣提醒程序,包含模块化代码、README、使用说明和核心知识点卡片,帮你快速落地应用。

import datetime

class Product: """封装商品信息:名称、保质期""" def init(self, name, expiry_date): self.name = name # 将字符串转为日期对象(格式YYYY-MM-DD) self.expiry_date = datetime.datetime.strptime(expiry_date, "%Y-%m-%d").date()

def calculate_remaining_days(expiry_date): """计算商品剩余保质期天数(今日到保质期的天数)""" today = datetime.date.today() return (expiry_date - today).days

def get_discount_rate(remaining_days): """ 根据剩余天数返回折扣率(规则可自定义): - 剩余>7天:无折扣(1.0) - 3<剩余≤7天:9折(0.9) - 0<剩余≤3天:8折(0.8) - 剩余=0天:5折(0.5) - 剩余<0天:已过期(-1) """ if remaining_days > 7: return 1.0 elif 3 < remaining_days <= 7: return 0.9 elif 0 < remaining_days <= 3: return 0.8 elif remaining_days == 0: return 0.5 else: return -1

def generate_reminder(product): """生成折扣提醒信息""" remaining = calculate_remaining_days(product.expiry_date) discount = get_discount_rate(remaining)

if discount == -1:
    return f"【{product.name}】已过期,请勿购买!"
elif discount == 1.0:
    return f"【{product.name}】距离保质期还有{remaining}天,暂无折扣。"
else:
    discount_percent = int((1 - discount) * 100)
    return f"【{product.name}】距离保质期还有{remaining}天,建议享{discount_percent}折优惠!"

def main(): """主程序:处理用户输入与交互""" print("欢迎使用超市临期商品折扣提醒程序!") print("输入格式:商品名称,保质期(YYYY-MM-DD),输入q退出。")

while True:
    user_input = input("\n请输入商品信息:").strip()
    if user_input.lower() == 'q':
        print("感谢使用,再见!")
        break
    
    parts = user_input.split(',')
    if len(parts) != 2:
        print("格式错误!请用逗号分隔(例:牛奶,2025-12-30)")
        continue
    
    name, expiry_str = parts[0].strip(), parts[1].strip()
    try:
        product = Product(name, expiry_str)
    except ValueError:
        print("保质期格式错!请用YYYY-MM-DD(例:2025-12-30)")
        continue
    
    print(generate_reminder(product))

if name == "main": main()

代码说明:

  • 用 "Product"类封装商品信息, "calculate_remaining_days"算剩余天数, "get_discount_rate"定折扣规则, "generate_reminder"出提醒。
  • 处理了输入格式错误、过期商品等边界情况,直接复制可运行(Python 3.8+)。

超市临期商品折扣提醒程序README

简介

帮消费者跟踪商品保质期,自动计算临期折扣时间,提醒最佳购买时机省钱。

安装依赖

无需额外库,用Python 3.8+标准库即可。

使用方法

  1. 运行: "python discount_reminder.py"
  2. 输入: "商品名称,保质期(YYYY-MM-DD)"(例:面包,2025-12-28)
  3. 查看:剩余天数+折扣建议
  4. 退出:输入 "q"

功能

  • 算剩余保质期天数
  • 按规则推折扣(7天内9折、3天内8折、当天5折)
  • 友好提示错误(格式/过期)

目录

"discount_reminder.py":主程序

使用说明

  1. 准备环境

确认安装Python 3.8+(终端输 "python --version"查版本)。

  1. 启动程序

打开终端→进程序目录→输 "python discount_reminder.py"。

  1. 输入商品

按 "名称,YYYY-MM-DD"格式输(例: "牛奶,2025-12-30"),错误会提示重试。

  1. 看结果
  • 已过期: "【XX】已过期,请勿购买!"
  • 无折扣: "【XX】剩X天,暂无折扣"
  • 有折扣: "【XX】剩X天,建议享X折"
  1. 退出

输 "q"回车结束。

核心知识点卡片

  • Python datetime模块:处理日期时间,用 "strptime"转字符串为日期、 "today"取今日、 "(date1-date2).days"算天数差。
  • 模块化设计:拆分成 "Product"类+功能函数(算天数、定折扣、生成提醒),提升可读性。
  • 异常处理:用 "try-except"抓日期格式错, "if"判剩余天数边界(如过期返回-1)。
  • 函数复用:把单一功能封成函数(如 "get_discount_rate"统一算折扣),避免重复代码。
  • 用户交互:清晰提示输入格式、错误反馈、简单退出机制( "q"键)。

如需调整折扣规则,改 "get_discount_rate"函数即可;想加新功能(如保存记录),可扩展 "Product"类或加数据库模块。 关注我,有更多实用程序等着你!