python - 是否有运算符或更优雅的方式来编写 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
解决方案
正如其他人所说,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
推荐阅读
- python - 如何在 Python 中使用 seccomp 和 proc 文件系统识别进程?
- c# - 某些服务无法在 ASP.NET Core 中构建
- javascript - 在python中用非英文字符解码b64编码的字符串
- javascript - 用于将文件上传到 S3 的 Amazon S3 putobject,不返回承诺
- python - django api如何上传多张图片
- f# - 递归联合类型和列表
- python - 如何从 csv 文件而不是列表中获取字符串?
- docker - Gcloud 实例没有 Docker Hub RateLimit
- angular - 找不到名称“StripeCheckoutStatic”?
- android - 我希望能够使用 DrawerHeader 处的 Switch 更改暗/亮模式