2016-10-17 1 views
1

so habe ich dieses Projekt, das fällig ist und für eine der Fragen, nachdem Sie alle Berechnungen durchgeführt haben, vergleichen Sie zwei verschiedene booleans. Wenn also beide Boolesche Werte wahr sind, gibt die Antwort false zurück, und wenn beide boolesche Werte falsch sind, gibt sie false zurück und gibt nur true zurück, wenn einer der booleschen Werte wahr und der andere falsch ist (egal welche)Etwas Hilfe in meinem Moment der Dummheit

können also sagen, dass die beiden booleans sind A und B

Mein Code sieht wie folgt aus A zurückkehren! = B

Sein Code wie dieser return ((A und nicht B) oder (B aussieht und nicht A))

Wer hat Recht? Haben wir beide recht? Hes wie viel schlauer als ich, also ich frage mich nur, ob ich einen dummen Fehler gemacht

+1

Bitte versuchen Sie einen informativen Titel auf Ihre Frage zu geben. Wie für die Frage: Überprüfen Sie 4 Fälle: A, B jeweils richtig oder falsch (2x2 Kombinationen). Sie können diese Probleme auf dem Papier selbst bestimmen. –

Antwort

0

Sie haben beide Recht, das Ergebnis ist das gleiche. Nur eine Option ist kürzer als die andere oder einfacher.

Es gibt nicht nur eine Möglichkeit, ein Problem zu lösen, solange das Ergebnis richtig ist. Hier biete ich noch eine andere Lösung an.

Sie können auch verwenden XOR^

t = False 
f = False 

result = t^f 
print result 
>> False 

t = True 
f = False 

result = t^f 
print result 
>> True 

t = False 
f = True 

result = t^f 
print result 
>> True 

t = True 
f = True 

result = t^f 
print result 
>> False 
+1

Beantworten Sie zuerst die Frage - wer hat Recht, dann bieten Sie eine Alternative an. Nur eine Alternative (ohne Erklärung) wird dem OP nicht antworten oder helfen. Erkläre, wer richtig ist, * dann * biete eine Alternative an und erkläre zumindest, was es ist und was es tut ... – Li357

-1

True False Table

die oben true false Tabelle.

XOR =>^

in diesem Fall So können Sie A^B. jedoch verwenden, A! = B auch hier funktioniert.

Sie haben beide Recht. Aber, Ihr Code ist prägnanter.

0

Meiner Meinung nach haben Sie beide Recht. Aber ich denke deine Antwort ist einfacher.

def fun(a,b): 
    result = a^b 
    #your code 
    resultA= a!=b 
    #your friend's code 
    resultB= (a and not b) or (b and not a) 

    print result 
    print resultA 
    print resultB 
    print '-'*20 

a = False 
b = False 
fun(a,b) 

a = True 
b = False 
fun(a,b) 

a = False 
b = True 
fun(a,b) 

a = True 
b = True 
fun(a,b) 

OUTPUT:

False 
False 
False 
-------------------- 
True 
True 
True 
-------------------- 
True 
True 
True 
-------------------- 
False 
False 
False 
--------------------