语句的逻辑等价

sta*_*723 0 python

一般来说,在Python中,嵌套if语句在逻辑上是否等同于其中的if语句?and所以会:

lista = ["1", "2"]
if "1" in lista and not "3" in lista:
     print("True")
Run Code Online (Sandbox Code Playgroud)

与以下相同:

lista = ["1", "2"]
if "1" in lista:
   if not "3" in lista:
       print("True")
Run Code Online (Sandbox Code Playgroud)

或者Python对它们有不同的对待吗?

mol*_*ilo 5

是的,这些是等效的。

\n

但是,如果有 \xe2\x80\x93 分支,则需要小心,else许多错误是由于之间的错误转换引起的

\n
if a and b:\n    do something\nelse:\n    do a different thing\n
Run Code Online (Sandbox Code Playgroud)\n

\n
if a:\n    if b:\n        do something\nelse:\n    do a different thing\n
Run Code Online (Sandbox Code Playgroud)\n