2016-09-21 3 views
-3

enter image description herePythonは、私はPythonで上記の意味を実施しているが、それは期待される結果を返さない

論理的含意のために間違った真理値表を返します。

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

私のPythonのコードは次のとおりです。

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))) 

私はここで矛盾を理解していません。何も偽を意味しない?そして、それは本当のように真実を印刷してみませんか?

+6

'else:True'は' else:return True'にする必要があります。それは何もしません。 – RemcoGerlich

+3

すべての結果が 'T'であると予想される場合、' implies'の実装を 'True'の値に置き換えることができるようです。 – deceze

+0

ありがとう、この機能は実際にはエクササイズで提供されたので、私はそれを2度見せませんでした! –

答えて

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

!、あなたが特定の値を返すされていないので、結果はNoneであればあなたのエラーは、最後の2行です。 あなたがしたい:

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

@ PM2Ringもちろん、あなたは正しいです。あまりにも多くのC#とJava ... –

関連する問題