首页 > 解决方案 > 一种检查月份和日期组合在 Python 3 中是否有效的方法

问题描述

  1. 您好,我目前正在学习基本的 Python 课程,我们目前正在学习 if-else 语句。我理解 if-else 语句的概念,但目前有一件事困扰着我。我需要创建一个提示,允许用户输入从 1 到 12 的月份,从 1 到 31 的天,并且提示将通过确定输入是否在这些范围内来判断输入是否有效/无效。但是,从逻辑上讲,某些日期是没有意义的。例如,您不能有 4/31 或 6/31,因为这些月份只有 30 天。我目前正在尝试编写一个代码来告诉用户月/日组合是否有效/无效,但我不知道该怎么做。我很想被教如何。

这是我到目前为止所拥有的:

month = int(input("Please enter a month in numeric form from 1-12: "))
if month == 1 or 3 or 5 or 7 or 8 or 10 or 12:
    print("Valid Month with more than 30 days")
elif month == 4 or 6 or 9 or 11:
    print("Valid Month with 30 days")
elif month == 2:
    print("Month has only 28 days max")
else:
    print("Invalid Month")
day = int(input("Please enter a day in numeric form from 1-31: "))
if day == 0 < day < 32:
    print("Valid Day")
else:
    print("Invalid Day")

标签: python

解决方案


这不完全是如何or工作的。您可能想in与一组一起使用,例如,

if month in {1, 3, 5, 7, 8, 10, 12}:

等等

or是一个二元运算符,如果为真则返回其左参数,否则返回其右参数,所以

foo or bar就像说foo if foo else bar


推荐阅读