Why can't I xor strings?

Byron DesertLinux at netscape.net
Sat Oct 9 00:00:27 CEST 2004

Hi DataAngel,

Welcome to the Python community!

 From reading your post, it sounds like you are wanting to use XOR 
encryption because there are other ways to quickly and easily compare 
strings to see if they are equal.

To compare a string, use the following:

	name = "Steven"
	name2 = "Steven"
	print name == name2

The result will be "True."  However, if my initial guess is correct that 
you are wanting to use XOR for strings, it probably because you are 
wanting a quick way of encrypting data so that basic users won't be able 
to view the information.  If this is what you are wanting, I might have 
something for you...

Let me know,


dataangel wrote:
> 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