2016-09-21 6 views
-3

enter image description here파이썬은 내가 파이썬에서 위의 의미를 구현 한

논리적 의미에 대한 잘못된 진실 테이블을 반환하지만 예상 된 결과 반환하지 않습니다

True  True None 
    True  False None 
False  True True 
False  False None 

내 파이썬 코드는 다음과 같습니다

def implies(a,b): 
    if a: 
     return b 
    else:True 
    return 
for p in (True, False): 
    for q in (True, False): 
     print("%10s %10s %s" %(p,q,implies((p or q) and (not p), q))) 

여기 모순을 이해하지 못합니다. 아무도 거짓을 의미하지 않습니까? 그리고 그것이 진실처럼 인쇄되지 않는 이유는 무엇입니까? 결과가 None 그래서! A, 당신이 특정 값을 반환하지 않는 경우

+6

'else : True'는'else : return True' 여야합니다. 그대로는 아무 것도하지 않습니다. – RemcoGerlich

+3

'implies'의 구현을'True' 값으로 대체 할 수있는 것처럼 보입니다. 모든 결과가'T' 일 것으로 예상되면. – deceze

+0

고맙다 너희들,이 기능은 운동에 실제로 제공 되었기 때문에 나는 두 번 보았다. –

답변

2
def implies(a,b): 
    if a: 
     return b 
    else:True 
    return 

귀하의 오류가 마지막 두 줄입니다. 원하는 항목 :

def implies(a,b): 
    if a: 
     return b 
    else: 
     return True 
+0

@ PM2Ring 물론, 당신 말이 맞습니다. 너무 많은 C# 및 Java ... –