python 获取用户输入的年月,输出该月有多少天(考虑闰年)。(如果用户输入的不是数字,让用户重新输入数字;如果用户输入的值不在1-12之间,让用户重新输入合适的值。(使用try-except结构处理输入异常)
时间: 2024-10-15 17:30:37 浏览: 12
在Python中,你可以通过`input()`函数获取用户的年月输入,然后使用`calendar`模块来判断月份的天数。这里是一个示例代码,它会使用`try-except`结构来处理用户输入的异常:
```python
import calendar
while True:
try:
year = int(input("请输入年份: "))
month = int(input("请输入月份(1-12): "))
# 检查输入是否在有效范围内
if not (1 <= month <= 12):
raise ValueError("月份输入错误,请选择1-12之间的整数.")
# 检查年份是否为闰年
if calendar.isleap(year):
days_in_month = calendar.monthrange(year, month)[1]
else:
days_in_month = calendar.monthrange(year, month)[1]
print(f"{year}年的{month}月有{days_in_month}天.")
break # 输入有效,退出循环
except ValueError as ve:
print("输入错误:", ve, "- 请重新输入.")
except Exception as e:
print("发生未知错误:", e)
```
在这个代码中,我们首先尝试将用户输入转换为整数,并检查月份是否在1到12之间。如果是闰年,我们会调用`calendar.monthrange`函数获取该月的天数。如果用户输入不符合条件,我们就捕获`ValueError`并提示用户重新输入。如果遇到其他未预期的错误,我们也会显示错误信息。
阅读全文