以下是为你开发的超市临期商品折扣提醒程序,包含模块化代码、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+标准库即可。
使用方法
- 运行: "python discount_reminder.py"
- 输入: "商品名称,保质期(YYYY-MM-DD)"(例:面包,2025-12-28)
- 查看:剩余天数+折扣建议
- 退出:输入 "q"
功能
- 算剩余保质期天数
- 按规则推折扣(7天内9折、3天内8折、当天5折)
- 友好提示错误(格式/过期)
目录
"discount_reminder.py":主程序
使用说明
- 准备环境
确认安装Python 3.8+(终端输 "python --version"查版本)。
- 启动程序
打开终端→进程序目录→输 "python discount_reminder.py"。
- 输入商品
按 "名称,YYYY-MM-DD"格式输(例: "牛奶,2025-12-30"),错误会提示重试。
- 看结果
- 已过期: "【XX】已过期,请勿购买!"
- 无折扣: "【XX】剩X天,暂无折扣"
- 有折扣: "【XX】剩X天,建议享X折"
- 退出
输 "q"回车结束。
核心知识点卡片
- Python datetime模块:处理日期时间,用 "strptime"转字符串为日期、 "today"取今日、 "(date1-date2).days"算天数差。
- 模块化设计:拆分成 "Product"类+功能函数(算天数、定折扣、生成提醒),提升可读性。
- 异常处理:用 "try-except"抓日期格式错, "if"判剩余天数边界(如过期返回-1)。
- 函数复用:把单一功能封成函数(如 "get_discount_rate"统一算折扣),避免重复代码。
- 用户交互:清晰提示输入格式、错误反馈、简单退出机制( "q"键)。
如需调整折扣规则,改 "get_discount_rate"函数即可;想加新功能(如保存记录),可扩展 "Product"类或加数据库模块。 关注我,有更多实用程序等着你!