首页 > 解决方案 > 是否有运算符或更优雅的方式来编写 if 语句?

问题描述

我仍处于学习的开始阶段,显然试图缩短这样的实例,我有很多 if 条件要经过。只是想知道更有经验的人如何解决这个问题?我尝试过使用“或”和“和”运算符,并尝试将我的语句嵌套在我认为可以的地方,但总的来说它仍然感觉很笨拙。这段代码是使用正则表达式的日期验证器的一部分,用于如何自动化无聊的东西,我没有 else 语句,因为完整代码中有更多条件。有没有更好的方法还是我把它复杂化了?

    if month == 4 and day == 31:
            print("Invalid date found in text")
            return False
    elif month == 6 and day == 31:
            print("Invalid date found in text")
            return False
    elif month == 9 and day == 31:
            print("Invalid date found in text")
            return False
    elif month == 11 and day == 31:
            print("Invalid date found in text")
            return False

标签: pythonif-statement

解决方案


正如其他人所说,DateTime 库是检查日期正确性的最佳方法(因为它处理各种边缘场景,例如二月有 28 天等),但如果只是为了简洁地写上面的文章,可以尝试以下:

month_invalid = True if (month in [4,6,9,11]) else False
day_invalid = True if day==31 else False
if month_invalid or day_invalid:
    return false

推荐阅读