Ідеальний старт для майбутніх IT-розробників 👨‍💻 зі знижкою до 65%!
Дізнатися більше
25.02.2025
3 хвилин читання

Оператор XOR у Python: Повний посібник із прикладами

Python оператор – це той самий інструмент, який часто здається загадковим, але варто трохи заглибитися, і ти почнеш бачити його скрізь: від простих задач із числами до складних алгоритмів шифрування. Якщо ти хочеш зрозуміти, як він працює, де його застосовують і чому він взагалі існує, то ти потрапив у правильне місце. А якщо ти хочеш спершу навчитися програмувати на Python, тоді записуйся на курси FoxmindEd.

🚀 Готові прокачати навички та освоїти Python? Натисніть Записатися 👇👇👇👇 і почніть свій шлях до успіху вже сьогодні на спеціально розробленому авторському курсі Python менторинг! 💪
Записатись

Як працює оператор XOR у Python?

Основні принципи роботи оператора XOR

Для початку давай розберемося, що XOR це- абревіатура, яка розшифровується як Exclusive OR (виключне АБО). Це логічна операція, яка повертає істину, якщо вхідні значення різні, і неправду, якщо вони однакові. Приклад:

print(1 ^ 0)  # 1

print(1 ^ 1)  # 0

print(0 ^ 0)  # 0

Помітив, як працює перемикання? Якщо вхідні дані різні, результат буде 1. Це як загадати одне бажання з двох: вибрав щось одне – отримав результат, вибрав те ж саме – нічого не сталося.

Як працює XOR побітово?

Якщо ти теж думаєш, python як працює XOR, то запам’ятай: оператор XOR побітово порівнює два числа і повертає результат, де кожен біт дорівнює 1, якщо відповідні біти різні.

Тепер уяви, що XOR застосовують не до одиночних значень, а до цілих чисел, представлених у вигляді бітів. Наприклад:

a = 5  # В двоичном: 101

b = 3  # В двоичном: 011

print(a ^ b)  # Результат: 110 (в десятичной системе6)

Кожен біт порівнюється окремо:

  • 1 XOR 0 = 1
  • 0 XOR 1 = 1
  • 1 XOR 1 = 0

Результат – 6. Побитовий XOR – основа багатьох операцій, включно з криптографією. Хто знав, що такі “примітивні” операції керують складними системами, так?

Застосування XOR у Python

Тепер, коли ми розібралися з основами, давай перейдемо до практики.

Обмін значеннями змінних без тимчасової змінної

Ти, напевно, знаєш класичний спосіб обміну значеннями через тимчасову змінну:

a = 10

b = 20

temp = a

a = b

b = temp

За допомогою XOR можна зробити це простіше і, головне, без зайвих змінних:

a = 10

b = 20

a = a ^ b

b = a ^ b

a = a ^ b

print(a, b)  # 20, 10

Фішка в тому, що він залишає “сліди” даних, які можна використовувати для відновлення початкових значень. Чиста математика і нічого зайвого!

Пошук унікального елемента в списку

Коли тобі дають список, де всі елементи дублюються, крім одного, ти можеш легко знайти унікальний елемент через XOR. Магія в тому, що всі однакові значення при ньому “обнуляються”:

nums = [1, 2, 3, 2, 1]

unique = 0

for num in nums:

    unique ^= num

print(unique)  # 3

Чому це працює? Тому що числа, які дублюються парну кількість разів, “знищують” одне одного, залишаючи тільки те, що повторюється непарну кількість разів.

Додаткові приклади застосування

  • Шифрування даних: для таких завдань, як шифрування даних або пошук унікальних елементів, може бути використана python функція XOR, що дає змогу виконувати операції на рівні бітів і значно спрощувати код.
  • Генерація випадкових чисел: деякі алгоритми використовують його для підвищення ентропії.
  • Порівняння прапорів: у системному програмуванні він може допомогти перевірити або перемкнути бітові прапори.
Підпишіться на наш Ютуб-канал! Корисні відео для програмістів чекають на вас! YouTube
Оберіть свій курс програмування! Шлях до кар’єри програміста починається тут! Подивитись

Виконання побітового XOR у Python

Використання XOR з булевими значеннями

Хоча XOR найчастіше обговорюється для чисел, його можна застосовувати і до булевих значень. Наприклад:

a = True

b = False

print(a ^ b)  # True

print(a ^ a)  # False

Ця функція може бути корисною, коли потрібно створити умови, які “перемикають” стан.

XOR і побітові маніпуляції

Якщо ти працюєш із низькорівневими речами, як, наприклад, драйвери або мережеві протоколи, XOR стає твоїм найкращим другом. Ось приклад перемикання бітів:

num = 0b1010  # Двоичное: 10

mask = 0b0101  # Двоичное: 5

result = num ^ mask

print(bin(result))  # 0b1111

За допомогою цього інструменту можна легко змінювати певні біти в числі. А якщо хочеш трохи подебажити бітову магію, спробуй “погратися” з масками.

Висновок

Тепер ти знаєш, що xor у пітоні – це не просто оператор, а потужний інструмент. Наступного разу, коли будеш розв’язувати задачу, спробуй його використати. Адже він здатен не лише полегшити код, а й додати твоїм рішенням трішки елегантності.

FAQ
Що таке оператор XOR у Python?

XOR (виключне АБО) - це логічна операція, яка повертає 1, якщо вхідні значення різні, і 0, якщо однакові.

Як працює побітовий XOR?

Він порівнює відповідні біти двох чисел і встановлює 1, якщо біти різні, і 0, якщо однакові.

Як за допомогою XOR поміняти значення змінних місцями?

Використовуй три операції: a = a ^ b, b = a ^ b, a = a ^ b, щоб поміняти місцями a і b без тимчасової змінної.

Як знайти унікальний елемент у списку з дублікатами?

Застосовуй XOR до всіх елементів: дублікати обнуляться, а унікальне число залишиться.

Чи можна використовувати XOR із булевими значеннями?

Так, True ^ False дає True, а True ^ True або False ^ False - False.

Де XOR застосовується в програмуванні?

У криптографії, генерації випадкових чисел, бітових операціях і системному програмуванні.

🧑‍🎓 Дізнайтеся докладніше про XOR оператор у Python. Залиште коментар і ми з радістю відповімо!

Додати коментар

Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів