# 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,

Byron
---

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

```