ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

XOR двух строк в Python

PythonNet

Возможно, вы использовали множество логических, арифметических операторов и операторов сравнения в математике и программировании во время работы. Одним из часто используемых логических операторов является оператор XOR. Он возвращает результат, прямо противоположный результату оператора OR. В этой статье мы будем использовать оператор XOR для двух значений переменных строкового типа при работе в среде Python. Приведем несколько примеров в системе Ubuntu 20.04.

 

Пример 1

Давайте рассмотрим самый первый пример, иллюстрирующий работу оператора XOR над двумя значениями строкового типа. Итак, мы попробуем использовать побитовое исключающее OR для двух строковых значений битового типа. Начните с создания нового файла python в оболочке. Используйте ключевое слово touch с именем файла. Вы можете использовать любой редактор, чтобы открыть и создать код в файле. Итак, мы использовали редактор GNU Nano в соответствии с инструкциями, показанными ниже на изображении.

$ touch xor.py
$ nano xor.py

 

После открытия файла мы добавили поддержку python3 вверху. Две переменные строкового типа v1 и v2 инициализированы битовыми значениями. Мы использовали другую переменную для сбора результирующего значения применения XOR к обеим переменным. В этом методе функции zip особенно используются для создания кортежа из обеих строковых переменных.

Метод ord() был применен к каждому байту строки обеих переменных отдельно, чтобы каждый раз принимать по одному байту, и применил XOR с помощью оператора «^» к байтам обеих переменных. Это означает, что XOR был применен к одним и тем же индексам обеих строк одновременно. Вновь сгенерированные значения XOR будут распечатаны в оболочке с помощью новой переменной.

#!/usr/bin/python3
v1 = “100100”
v2 = “101010”
new = [(ord(a) ^ ord(b)) for a,b in zip(v1, v2)]
print(new)

 

После запуска этого простого кода с пакетом python3 мы получили XOR или обе строки.

$ python3 xor.py

 

Пример 2

Приведем еще один пример использования тех же функций zip() и ord() для вычисления XOR двух строк с помощью оператора «^» в коде Python. В этом типе мы использовали простые символьные строки вместо байтовых строк в нашем коде. Итак, откройте файл и обновите строковые значения, как показано ниже. Остальной код аналогичен приведенному выше примеру кода.

#!/usr/bin/python3
v1 = “one”
v2 = “two”
new = [(ord(a) ^ ord(b)) for a,b in zip(v1, v2)]
print(new)

 

После выполнения этого обновленного файла с пакетом поддержки python3 мы получили следующий результат. Результат совершенно иной в случае символьных значений строкового типа. Вы можете видеть, что мы получили XOR строковых символов как некоторых целочисленных значений.

$ python3 xor.py

 

Пример 3

В этом примере мы будем использовать символы и числа в строковой переменной. Итак, создайте две строковые переменные с символами и числами. Первая строка содержит числа, а другая строковая переменная содержит только символы. Тот же метод используется для вычисления XOR для строковых переменных и их значений в последовательности.

Этот метод принимает все значения обеих строк как символы. Оператор печати отображает XOR обеих переменных в оболочке с вершиной новой переменной. С другой стороны, если вы хотите объединить вычисленные значения XOR обеих переменных, вы можете сделать это, используя функцию join(), как показано. Оператор печати снова используется для отображения объединенного XOR.

#!/usr/bin/python3
v1 = “123”
v2 = “abc”
new = [chr(ord(a) ^ ord(b)) for a,b in zip(v1, v2)]
v3 = “”.join(new)
print(new)

 

При выполнении обновленного кода мы получили результат XOR, как показано ниже.

$ python3 xor.py

 

Заключение

Эта статья содержит объяснение вычисления XOR двух строковых значений в Python. Для этой цели мы использовали метод итератора с методом zip(), методом ord(), методом join() и оператором «^». Надеемся, это будет вам полезно.

Exit mobile version