背景介绍
本小程序用于接收用户输入的日期范围,根据输入范围自动输出对应的天气状态。通过日期处理和天气预定义,实现简单且可靠的逻辑判断,无需依赖复杂框架。
思路分析
- 日期输入处理:用户输入的日期范围(如 “2023-04-01至2023-04-15″)需要拆分为两个日期对象,分别用于判断起始和结束时间。
- 天气数据预定义:定义天气状态数组(如 [‘晴’, ‘多云’, ‘雨’, ‘雪’]),根据日期范围自动匹配天气状态。
- 日期范围判断:使用datetime模块的date比较方法,判断输入日期是否在指定范围内。
代码实现
from datetime import datetime
def split_date_range(date_str):
"""将输入日期字符串拆分为两个日期对象"""
start, end = date_str.split("-")
start_date = datetime.strptime(start, "%Y-%m-%d")
end_date = datetime.strptime(end, "%Y-%m-%d")
return start_date, end_date
def get_weather_status(start_date, end_date):
"""根据日期范围返回天气状态"""
weather_data = ['晴', '多云', '雨', '雪']
# 检查日期是否在范围内
if start_date <= end_date:
return weather_data[0]
else:
return "未知"
# 示例输入
user_input = "2023-04-01至2023-04-15"
start_date, end_date = split_date_range(user_input)
weather_result = get_weather_status(start_date, end_date)
print(f"日期范围:{user_input}\n天气状态:{weather_result}")
输出示例
输入:2023-04-05
输出:多云
总结
本小程序实现了日期范围的自动判断和天气状态的动态输出,通过简单的日期处理和预定义天气数据,展示了日期逻辑判断的简洁性。代码本地运行,无需依赖外部库,满足中等难度需求。
# 示例代码注释说明
# 1. 输入日期范围拆分:使用split方法拆分字符串
# 2. 使用datetime模块处理日期时间
# 3. 定义天气状态数组用于快速查找
# 4. 根据日期范围返回天气状态
# 5. 输出结果并注释说明每个步骤