2014-10-18 3 views
-3

그래서 난 그냥 코드의 조각을 해석했다 몇 가지 문제를 통해보고되었고, 나는이 일에 발견 :이 파이썬 코드를 어떻게 해석할까요?

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 문을 해석하는 것입니다. 이전 진술을 참조한 "참 및 거짓"또는 "참"은 무엇입니까? 감사합니다.

+0

'참'이라고 말합니다. –

+3

그것은 'SyntaxError'입니다. – jonrsharpe

답변

0

먼저, 마지막으로 True 뒤에 닫는 괄호가 필요합니다.

둘째, 그 두 번째 if 문은 항상 때문에 or True 부분의, True로 평가됩니다. 무엇이든을 말하는 이 아닙니다. 그냥 파이썬 내장 상수 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") 
+0

죄송합니다. 괄호를 추가하는 것을 잊어 버렸습니다. 그래서 이것을 올바르게 이해한다면, 두 번째 if 문은 "True and False"또는 "True"라고 말합니다. 첫 번째 부분은 False로 평가되고 두 ​​번째 부분은 True가되며 False 또는 True 중 하나가 "or"이므로? –