5、从键盘接收一个输入的月份(1-12),使用match-case语句根据输入的月份输出这个月具有的天数(不考虑闰年的情况)使用python
时间: 2024-09-22 15:09:03 浏览: 47
jest-to-match-shape-of:一个Jest匹配器,用于验证对象的形状。 使集成测试变得简单
在Python中,我们可以创建一个`match`表达式来处理这个问题,因为Python虽然没有原生的`match-case`语句,但它有类似的功能通过字典映射(`dict.get()`方法)结合`if`条件判断。这里是一个示例:
```python
def get_days_in_month(month):
month_days = {
1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31,
}
# match-case风格的逻辑模拟
days = match month:
case 1, 3, 5, 7, 8, 10, 12: return month_days[month]
case 4, 6, 9, 11: return month_days[month]
case 2: # February in non-leap years
return month_days[2] if (year % 4 != 0 or (year % 100 != 0 and year % 400 != 0)) else 29 # Assume current year for this example
case _:
print("Invalid month input")
return None
# 示例使用
year = 2023 # 使用当前年份作为非闰年的例子
month = int(input("请输入月份(1-12):"))
days_in_month = get_days_in_month(month)
if days_in_month is not None:
print(f"本月有 {days_in_month} 天")
```
在这个脚本中,我们首先定义了一个字典`month_days`存储每个月的天数。然后,使用`match`表达式来检查用户输入的月份,并返回相应的天数。如果输入的是二月,会额外检查是否为闰年。如果输入的月份无效,则打印错误信息。
阅读全文