python - 为什么我不能使用两个“if 语句”而不是一个 elif,如果两者中只有一个会执行?
问题描述
我正在编写代码来解决一个基本问题:
def is_leap(year):
leap = False
if year % 4 == 0:
if year % 100 == 0 and year % 400 != 0:
leap = False
if year % 100 == 0 and year % 400 == 0:
leap = True
else:
leap = True
return leap
print(is_leap(2100))
我的问题是关于最内部的范围;特别是second 'if statement'
- 我知道这一定是一个'elif'
(如果我们不改变它,我们的答案将是错误的)但我不明白为什么会这样。在我的 IDE 中,如果我按照上面的方式保留代码,则'leap=False'
第一个会if statement
变灰。
即使我if vs elif
一般理解,为什么我们不能同时将两者都用作“if语句”?因为(在这种情况下)基于逻辑,对于我们用作参数的任何输入,两个 if 语句中只会执行一个,对吗?
解决方案
elif
if
如果条件正确,则不执行。如果您使用两个if
语句,无论它们都将被执行。
不仅如此,因为你有一个else
,所以else
只会连接到第二个 if 条件,而 anelif
会连接整个代码块。
推荐阅读
- asp.net-core - Asp.Net Core 3.0 API 应用程序需要在 IIS Windows Server 2016 上频繁重启
- javascript - 未处理的 Promise Rejection:来自 JS 的格式错误的调用:字段大小不同
- ios - SwiftUI:如何在条件视图之间添加转换?
- php - PHP 和 MySQL 选择一个 SESSION 用户详细信息
- react-native - 如何在 react-native 中的 react-native-pell-rich-editor 中自动聚焦光标
- python - 如何从数据库中获取与特定搜索相关的所有信息
- javascript - 获取谷歌分析 Api 响应
- excel - 匹配来自多个工作簿的多个结果
- javascript - JADE代理沟通
- database - 如何处理多个页面以分 3 个步骤保存用户数据,其中每个步骤都是一个新界面,然后将它们保存在一起?