news 2026/4/23 17:56:57

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

作者头像

张小明

前端开发工程师

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

以下是为你开发的超市临期商品折扣提醒程序,包含模块化代码、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"类或加数据库模块。

关注我,有更多实用程序等着你!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:42:12

IDM使用指南:3步实现长期使用

还在为IDM的30天试用期而烦恼吗&#xff1f;想要实现IDM长期使用&#xff0c;让下载速度始终保持在巅峰状态&#xff1f;今天我将为你详细介绍一个简单有效的解决方案&#xff0c;让你更好地使用软件&#xff01; 【免费下载链接】IDM-Activation-Script IDM Activation & …

作者头像 李华
网站建设 2026/4/23 15:09:11

PC微信小程序wxapkg解密终极解决方案:3步完成技术突破性分析

为什么选择这款解密工具作为小程序技术研究的核心利器&#xff1f;本文将从技术痛点出发&#xff0c;深度解析PC微信小程序wxapkg解密的技术突破性解决方案&#xff0c;为开发者提供一套高效、专业的技术分析工具。 【免费下载链接】pc_wxapkg_decrypt_python PC微信小程序 wxa…

作者头像 李华
网站建设 2026/4/21 17:44:13

微信小程序 uniapp+vue拼车打车叫车系统

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万…

作者头像 李华
网站建设 2026/4/23 15:47:18

ISO-3166全球国家数据:5分钟掌握国际化开发利器

在全球数字化浪潮中&#xff0c;处理国际信息已成为各类应用的基本需求。ISO-3166-Countries-with-Regional-Codes项目将权威的ISO国家编码与国际地理区域代码完美融合&#xff0c;为开发者提供了一套开箱即用的全球数据解决方案。 【免费下载链接】ISO-3166-Countries-with-Re…

作者头像 李华
网站建设 2026/4/22 10:19:09

38、应对意外:Python 中的异常处理

应对意外:Python 中的异常处理 1. 引言 在 Python 编程中,异常处理是一项至关重要的技能。它能够帮助我们在程序运行过程中捕获并处理各种意外情况,确保程序的稳定性和可靠性。本文将深入探讨 Python 中异常处理的各个方面,包括异常的抛出、异常的影响、异常的处理以及异…

作者头像 李华
网站建设 2026/4/17 7:49:19

Blazor WebAssembly完整实战教程:用C构建现代Web应用

想要用熟悉的C#语言开发前端应用吗&#xff1f;Blazor WebAssembly让你梦想成真&#xff01;这个革命性的框架让.NET代码直接在浏览器中运行&#xff0c;彻底改变了传统的Web开发模式。 【免费下载链接】blazor Blazor moved to https://github.com/dotnet/aspnetcore 项目地…

作者头像 李华