否则,如果在python中vs elif,它们是否相等?

否则,如果在python中vs elif,它们是否相等?,python,python-3.x,if-statement,Python,Python 3.x,If Statement,在python中,我们可以用else替换elif吗? 下列各项是否相等 if (x>y): print("X") else: if (x<y): print("Y") 是的,它们是相同的,但正确的书写方式是第二种。后者是使用if/elif语句的python方式 筑巢,越少越好 给定否则:如果(x假设无效语法是一个输入错误,elif与嵌套if的else语句相比,最大的好处是缩进。每次进入嵌套的if时,都需要再次缩进,这将破坏可读性。另一方面,使用elif可以获得所有的

在python中,我们可以用else替换elif吗? 下列各项是否相等

if (x>y):
    print("X")
else: if (x<y):
    print("Y")

是的,它们是相同的,但正确的书写方式是第二种。后者是使用if/elif语句的python方式


筑巢,越少越好

给定
否则:如果(x假设无效语法是一个输入错误,
elif
与嵌套
if
else
语句相比,最大的好处是缩进。每次进入嵌套的
if
时,都需要再次缩进,这将破坏可读性。另一方面,使用
elif
可以获得所有的缩进他在同一缩进级别上创建了不同的代码路径

这里有一个例子

if a:
    A()
else:
    if b:
        B()
    else:
        if c:
            C()
如您所见,这有点令人困惑。下面是基于
elif
的示例

if a:
    A()
elif b:
    B()
elif c:
    C()

好吧,第一个是无效语法…@deceze第二个也是如此。
elif
没有条件。问问自己:如果
x==y
,会发生什么情况?(假设你按照我认为的方式更正了代码)@Matthias假设OP修正了第一个例子的缩进和第二个例子的
elif x
,它们的行为是相同的,它们在
=
情况下可能和预期的不一样……我认为第二个例子应该有一个
else
,第一个例子是嵌套的
if
询问者肇事逃逸,我们永远不会知道。
if a:
    A()
elif b:
    B()
elif c:
    C()