我该如何解释这个python代码?

时间:2014-10-18 19:30:47

标签: python interpretation

所以我只是在查看一些我必须解释一段代码的问题,我偶然发现了这个问题:

a = 10
b = 4
c = 2
d = 3
if ((c+2<d)) or ((c*d)==(a-b)):
    if (True and not(True)) or True:
        print ("X")
    else:
        print("Y")
    print("Z")

据我所知,语句的第一部分将评估为False,而第二部分将评估为True。我遇到的问题是解释下面的if语句。什么是&#34;真与假&#34;或&#34; True&#34;指的是,之前的陈述?感谢

1 个答案:

答案 0 :(得分:0)

首先,在最后True之后需要一个右括号。

其次,由于if部分,第二个True语句总是评估为or True。它不是引用到任何东西。它只是使用Python内置常量True

以下是该代码的更正版本。它运行,但它没有完成任何重要的事情。它将始终打印“X”和“Z”。

a = 10
b = 4
c = 2
d = 3
if ((c+2<d)) or ((c*d)==(a-b)):
    if (True and not(True) or True):
        print ("X")
    else:
        print("Y")
    print("Z")