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