求解用Python获取用户输入月份,输出该月有多少天(考虑闰年)
在 Python 中编写一个程序,根据用户输入的月份,输出该月份有多少天。需要考虑闰年的情况,因为闰年和平年每月的天数是不同的。以下是详细的实现方法:
实现步骤
获取用户输入: 使用
input()
函数获取用户输入的月份。由于用户输入的是字符串类型,需要将其转换为整数类型。判断闰年: 判断当前年份是否为闰年。闰年的判断规则如下:
- 年份能被4整除但不能被100整除,或者能被400整除的年份为闰年。
pythondef is_leap_year(year): return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
确定每月天数: 创建一个列表存储每个月份的天数。根据闰年与否,调整2月的天数。
pythondays_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] def get_days_in_month(year, month): # Adjust February days for leap year if month == 2 and is_leap_year(year): return 29 return days_in_month[month - 1]
主程序: 在主程序中,首先获取用户输入的月份和年份(可选,如果需要考虑年份),然后调用
get_days_in_month
函数获取该月的天数,并输出结果。pythondef main(): month = int(input("请输入月份(1-12):")) # Optionally, you can get year from user input as well # year = int(input("请输入年份:")) year = 2024 # Example year, you can adjust or uncomment the input line days = get_days_in_month(year, month) print(f"{year}年{month}月有{days}天。") if __name__ == "__main__": main()
注意事项
- 闰年判断:确保
is_leap_year
函数正确判断闰年。 - 边界条件:考虑用户可能输入的非法月份(小于1或大于12)。
- 月份索引:列表中的月份天数从索引0开始,但月份是从1开始,需要适当调整索引。
通过以上步骤,你可以编写一个完整的 Python 程序,根据用户输入的月份和年份(可选),输出该月份有多少天,考虑了闰年和非闰年的情况。