01.10.2024 старт набору нової групи на курс Enterprise Patterns! Реєструйтеся зараз зі знижкою 30%!
Дізнатися більше
22.09.2023
11 хвилин читання

Оператори в Python: які вони бувають, як працюють і де використовуються

У програмуванні оператори – це символи або ключові слова, які виконують певні дії над операндами (значеннями або змінними). Оператори дозволяють виконувати математичні обчислення, порівнювати значення, проводити логічні операції та багато іншого. Вони відіграють важливу роль у створенні програм і управлінні даними.

Види операторів у Python

У Python існує кілька видів операторів, кожен з яких виконує певний набір операцій.

Арифметичні оператори

Арифметичні оператори використовуються для виконання математичних операцій над числами. Вони включають:

`+` (додавання)

`-` (віднімання)

`*` (множення)

`/` (ділення)

`%` (залишок від ділення)

`**` (піднесення до степеня)

`//` (цілочисельне ділення)

Оператори порівняння

Оператори порівняння використовуються для порівняння значень і повертають логічне значення True або False. Вони включають:

`==` (дорівнює)

`!=` (не дорівнює)

`>` (більше)

`<` (менше)

`>=` (більше або дорівнює)

`<=` (менше або дорівнює)

🚀 Готовий почати свій шлях у світ Python? Долучайся до нашого курсу Python Start та опануй цю затребувану мову програмування! 🐍💻

🔍 Поглянь, що ти отримаєш:

  1. Основи Python у доступній формі з відеоуроками.
  2. Практичні завдання, щоб одразу застосувати знання.
  3. Допомога в Slack-чаті для оперативних відповідей на твої запитання.

💼Не прогав свій шанс стати програмістом! Розпочни свій кодерський шлях просто зараз! 🌟

🔼🔼🔼

Логічні оператори

Логічні оператори використовуються для комбінування логічних значень і виконують операції І, АБО та НЕ. Вони включають:

`and` (логічне І)

`or` (логічне АБО)

`not` (логічне НЕ)

Оператори присвоювання

Оператори присвоювання використовуються для присвоювання значень змінним. Вони включають:

`=` (присвоювання)

`+=` (додати і присвоїти)

`-=` (відняти і присвоїти)

`*=` (помножити і присвоїти)

`/=` (розділити і присвоїти)

`%=` (взяти залишок від ділення і присвоїти)

`**=` (піднесення до степеня і присвоїти)

`//=` (цілочисельне ділення і присвоїти)

Побітові оператори

Побітові оператори використовуються для виконання операцій над бітами двійкових чисел. Вони включають:

`&` (побітове І)

`|` (побітове АБО)

`^` (побітове виключне АБО)

`~` (побітове НЕ)

`<<` (побітовий зсув уліво)

`>>` (побітовий зсув вправо)

Це лише деякі з типів операторів, доступних у Python. Використання операторів дає нам змогу створювати складніші вирази, керувати логікою програм і виконувати різні операції.

Виды операторов в Python

Перевантаження операторів у Python

У Python перевантаження операторів дозволяє змінювати стандартну поведінку операторів для користувацьких об’єктів. Це означає, що ви можете визначити спеціальні методи у вашому класі, які будуть викликатися під час виконання операцій з екземплярами цього класу.

Перевантаження операторів дає змогу вам визначити, як об’єкти класу взаємодіють один з одним, коли виконуються операції, такі як додавання, віднімання, порівняння тощо. Це робить ваш код більш інтуїтивно зрозумілим і зручним для використання.

Ось приклад перевантаження оператора в Python – метод __add__ для додавання:

Ви можете визначити метод __add__ у класі, який буде викликатися при використанні оператора + для об’єктів цього класу.

```python

class Vector:

 def __init__(self, x, y):

  self.x = x

  self.y = y

 def __add__(self, other):

  return Vector(self.x + other.x, self.y + other.y)

v1 = Vector(2, 3)

v2 = Vector(4, 5)

result = v1 + v2

print(result.x, result.y)  # Output: 6 8

```

Перевантаження операторів дає змогу гнучкіше керувати поведінкою об’єктів під час виконання операцій. Ви можете визначити різні методи для різних операторів і адаптувати їх під конкретні вимоги певного класу.

Пріоритет операторів у Python

Пріоритет операторів у Python визначає порядок, у якому оператори виконуються у виразі. Коли у виразі є кілька операторів, оператори з вищим пріоритетом виконуються раніше за операторів з нижчим пріоритетом.

Основні правила пріоритету операторів у Python

  • Дужки. Оператори, укладені в дужки (), мають найвищий пріоритет. Вирази, що знаходяться всередині дужок, обчислюються першими.
  • Ступінь (**). Оператор ступеня має другий за висотою пріоритет. Він виконується справа наліво. Наприклад, 2 ** 3 ** 2 буде дорівнювати 2 ** (3 ** 2).
  • Унарний мінус і побітове заперечення. Унарний мінус - (зміна знака числа) і побітове заперечення ~ мають однаковий пріоритет і виконуються перед іншими операторами.
  • Множення, ділення, цілочисельне ділення та залишок від ділення. Оператори множення *, ділення /, цілочисельного ділення // і залишку від ділення % мають однаковий пріоритет. Вони виконуються зліва направо.
  • Додавання та віднімання. Оператори додавання + і віднімання - мають однаковий пріоритет. Вони виконуються зліва направо.
  • Побітові операції. Побітові оператори мають нижчий пріоритет.
  • Порівняння. Оператори порівняння, такі як дорівнює ==, не дорівнює !=, більший >, менший <, більший або дорівнює >= і менший або дорівнює <=, мають нижчий пріоритет.
  • Логічні оператори. Оператори логічного І and і логічного АБО or мають найнижчий пріоритет.

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

Логічні оператори в Python

У Python є три основні логічні оператори: and, or і not. Ці оператори використовуються для комбінування та маніпулювання логічними значеннями True і False.

Логічний оператор `and`

Логічний оператор and повертає True, якщо обидва операнди є істинними. Якщо хоча б один з операндів є хибним, то оператор поверне False. Наприклад:

```python

a = True

b = False

result = a and b

print(result)  # Output: False

```

Логічний оператор `or`

Логічний оператор or повертає True, якщо хоча б один з операндів є істинним. Якщо обидва операнди є хибними, то оператор поверне False. Наприклад:

```python

a = True

b = False

result = a or b

print(result)  # Output: True

```

Логічний оператор `not`

Логічний оператор not повертає заперечення значення операнда. Якщо операнд є істинним, то оператор поверне False, і навпаки. Приклад:

```python

a = True

result = not a

print(result)  # Output: False

```

Логічні оператори часто використовуються в умовних виразах і циклах для прийняття рішень на основі логічних значень.

Крім простих логічних значень True і False, оператори and і or можуть працювати з будь-якими об’єктами, які можуть бути інтерпретовані як логічні значення.

Важливо пам’ятати, що логічні оператори and і or мають коротке замикання (short-circuit evaluation). Це означає, що якщо результат операції вже визначено на основі першого операнда, то другий операнд не обчислюватиметься.

Оператори ділення в Python

У Python є два оператори ділення: / и //. Вони виконують ділення, але мають деякі відмінності в результаті.

Оператор ділення `/`

Оператор / виконує звичайне ділення, результат якого завжди є числом із плаваючою комою (float). Незалежно від типу операндів, результатом ділення з використанням / буде число з плаваючою комою. Приклад:

```python

result = 10 / 3

print(result)  # Output: 3.3333333333333335

```

У цьому прикладі 10 ділиться на 3, і результатом є число з плаваючою комою.

Оператор цілочисельного ділення `//`

Оператор `//` виконує цілочисельне ділення і повертає результат у вигляді цілого числа (int). Результатом операції з використанням `//` буде ціла частина від ділення. Приклад:

```python

result = 10 // 3

print(result)  # Output: 3

```

У цьому прикладі 10 ділиться на 3, і результатом є ціле число 3.

Оператор `//` виконує ділення без урахування дробової частини. Якщо результат не ділиться націло, то він буде округлений у менший бік. Наприклад, `7 // 2` дасть результат 3, а не 3.5.

Чому в Python немає оператора switch?

Python не має явного оператора switch, такого як у деяких інших мовах програмування (наприклад, у C++ або Java). Відсутність цього оператора в Python пов’язана з філософією та дизайном мови, яка прагне до простоти та ясності коду.

Є кілька причин, через які оператор switch не був включений до мови Python

  1. Уникнення надмірності. Оператор switch може бути корисним для виконання різних дій залежно від значення змінної, але в більшості випадків можна досягти того самого результату з використанням умовних виразів (if-elif-else).
  2. Гибкість умовних виразів. Умовні вирази в Python дають змогу обробляти більше випадків, ніж може запропонувати простий оператор switch.
  3. Динамічна природа Python. Python – це динамічно типізована мова, де типи змінних можуть змінюватися під час виконання. Це може ускладнити реалізацію оператора switch, який передбачає статичну типізацію і фіксовані значення змінних у кожному випадку.

Замість оператора switch у Python можна використовувати такі альтернативні підходи:

  1. Умовні вирази (if-elif-else). За допомогою умовних виразів можна перевіряти значення змінної та виконувати різні дії залежно від результату.
  2. Словарі (dictionaries). Можна використовувати словники для емуляції оператора switch, де ключі відповідають значенням змінної, а значення – діям, які потрібно виконати.

Побітові оператори Python

Побітові оператори в Python використовуються для виконання операцій над окремими бітами чисел. Вони застосовуються до цілочисельних значень і працюють з їхнім двійковим представленням. У Python доступні популярні побітові оператори, такі як побітовий оператор І (`&`), побітовий оператор АБО (`|`), побітовий оператор виключаюче АБО (`^`) і побітовий оператор НЕ (`~`), а також побітові зсуви (`<<` і `>>`).

📢 Підпишись на наш Ютуб-канал! 💡Корисні відео для програмістів вже чекають на тебе!

🔍 Обери свій курс програмування! 🚀 Шлях до кар’єри програміста починається тут!

Наприклад, побітовий оператор І (`&`) виконує побітове логічне І між відповідними бітами двох чисел, залишаючи тільки ті біти, які встановлені і в першому числі, і в другому числі. Побитовий оператор АБО (`|`) виконує логічне АБО між бітами чисел, встановлюючи ті біти, що присутні в першому числі або в другому числі чи в обох числах. Побитовий оператор виключне АБО (`^`) виконує операцію XOR між бітами чисел, встановлюючи тільки ті біти, які присутні тільки в одному з чисел, але не в обох.

Також у Python є побітовий оператор НЕ (`~`), який інвертує кожен біт числа, перетворюючи 0 на 1 і 1 на 0. Побітові зсуви (`<<` і `>>`) дають змогу зсувати біти числа вліво і вправо відповідно.

Побітові оператори в Python можуть бути корисними для роботи з бітовими прапорами, кодуваннями та оптимізації алгоритмів. Однак вони можуть бути менш часто використовуваними і менш інтуїтивними порівняно з іншими операторами мови.

Висновок

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

Якщо у вас виникли запитання або вам потрібна додаткова допомога, не соромтеся ставити запитання і залишати коментарі. Щасти вам у вашій подорожі у світ програмування на Python!

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

Це символ, який виконує деяку операцію над одним або кількома операндами.

Які базові арифметичні оператори існують у Python?

+, -, *, /, //, %, **.

Що робить оператор ==?

Порівнює два значення на рівність.

Чим відрізняється = від ==?

= - це оператор присвоювання, == - оператор порівняння.

Що таке тернарний оператор?

Це коротка форма if-else, наприклад: x = a if condition else b.

Який оператор використовується для перевірки приналежності елемента до списку чи кортежу?

Оператор in.

🐍 Дізнайся більше про Python оператори та їх застосування! 💡 Якщо потрібна додаткова інформація - запитуй чи залишай коментарі. 💬

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

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

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