Why can't I xor strings?

dataangel k04jg02 at kzoo.edu
Fri Oct 8 22:19:22 CEST 2004

I wrote a function to compare whether two strings are "similar" because 
I'm using python to make a small text adventure engine and I want to it 
to be responsive to slight mispellings, like "inevtory" and the like. To 
save time the first thing my function does is check if I'm comparing an 
empty vs. a non-empty string, because they are to be never considered 
similar. Right now I have to write out the check like this:

    if str1 and str2:
        if not str1 or not str2:
            return 0

Because python won't let me do str1 ^ str2. Why does this only work for 
numbers? Just treat empty strings as 0 and nonempty as 1.

Regardless of whether this is the best implementation for detecting if 
two strings are similar, I don't see why xor for strings shouldn't be 
supported. Am I missing something? Inparticular, I think it'd be cool to 
have "xor" as opposed to "^". The carrot would return the resulting 
value, while "xor" would act like and/or do and return the one that was 
true (if any).

More information about the Python-list mailing list