Wpis z mikrobloga

@ohwell: Bo wystarczy operator binarny ^ albo operator nierówności != i tak nie ma on short-circuit jak operatory or czy and.

>>> True ^ False
True
>>> True != False
True
>>> True ^ True
False
>>> True != True
False
Mimo wszystko zazwyczaj się stosuje operator nierówności, bo logiczniej on wygląda.
@file_get_contents: Właśnie to chciałem powiedzieć, że nie może mieć, lecz się trochę przejęzyczyłem.

@Szczepano: Op wyraźnie powiedział, że chodzi o operator logiczny. Ty po pierwsze podałeś funkcję, a po drugie xor binarny, a nie logiczny. Funkcja zwracająca logicznego xora powinna wyglądać tak:

def xor (l, r):
    return (not l) != (not r)
I zwrócić dla twojego przykładu fałsz.
Nie jest to zarzutka, po prostu trafiłem na pewien wątek na stacku i "naszły mnie wątpliwości".
Operator ^ gdy poda się argumenty logiczne działa jak operator logiczny; gdy poda się argumenty binarne, wylicza różnicę symetryczną.- czyli działa na liczbach, czego nie robią and, not i or.
Guido prawdopodobnie uznał, że właściwsze będzie przypisanie ^ do operatorów bitowych - tak se myślę. :)

@lionbest: @juszczus: @zwei: @file_get_contents: @Szczepano: