Операції з числами Python
Python підтримує всі поширені арифметичні операції:
- + додавання двох чисел:
print(6 + 2) # 8
- - віднімання двох чисел:
print(6 - 2) # 4
- * Множення двох чисел:
print(6 * 2) # 12
- / - Ділення двох чисел:
print(6 / 2) # 3.0
- Цілочисельний поділ двох чисел: Дана операція повертає цілочисельний результат поділу, відкидаючи дробову частину.
print(7 / 2) # 3.5
print(7 // 2) # 3
- ** Зведення в степінь:
print (6 * * 2) # зводимо число 6 в ступінь 2. Результат - 36
- % Отримання залишку від поділу:
print (7 % 2) # отримання залишку від ділення числа 7 на 2. Результат - 1
- В даному випадку найближче число до 7, яке ділиться на 2 без залишку, це 6. Тому залишок від ділення дорівнює 7 - 6 = 1.
При послідовному використанні декількох арифметичних операцій їх виконання проводиться відповідно до їх пріоритету. На початку виконуються операції з великим пріоритетом. Пріоритети операцій в порядку убування наведені в наступній таблиці.
Операція | Напрямок |
** | Зліва направо |
* / // % | Зліва направо |
+ - | Зліва направо |
Нехай у нас виконується наступний вираз:
number = 3 + 4 * 5 ** 2 + 7
print(number) # 110
Тут початку виконується зведення в ступінь (5 ** 2) як операція з великим пріоритетом, далі результат помножується на 4 (25 * 4), потім відбувається додавання (3 + 100) і далі знову йде додавання (103 + 7).
Щоб змінити порядок операцій, можна використовувати дужки:
number = (3 + 4) * (5 ** 2 + 7)
print(number) # 224
Слід зазначити, що в арифметичних операціях можуть брати участь як цілі, так і дробові числа. Якщо в одній операції бере участь ціле число (int) і число з плаваючою крапкою (float), то ціле число приводиться до типу float.
Арифметичні операції з присвоєнням
Ряд спеціальних операцій дозволяють використовувати присвоїти результат операції першому операнду:
- += - присвоєння результату додавання
- - = - присвоєння результату віднімання
- *= - присвоєння результату множення
- /= - присвоєння результату від поділу
- //= - присвоєння результату цілочисельного поділу
- **= - присвоєння ступеня числа
- %= - присвоєння залишку від поділу
Приклади операцій:
number = 10
number += 5
print(number) # 15
number -= 3
print(number) # 12
number *= 4
print(number) # 48
Функції перетворення чисел
Ряд вбудованих функцій в Python дозволяють працювати з числами. Зокрема, функції int() і float() дозволяють привести значення до типу int і float відповідно.
Наприклад, нехай у нас буде наступний код:
first_number = "2"
second_number = 3
third_number = first_number + second_number
Ми очікуємо, що " 2 " + 3 буде 5. Однак цей код згенерує виняток, оскільки перше число насправді представляє рядок. І щоб все запрацювало як треба, необхідно привести рядок до числа за допомогою функції int():
first_number = "2"
second_number = 3
third_number = int(first_number) + second_number
print(third_number) # 5
Аналогічним чином діє функція float(), яка перетворює в число з плаваючою точкою. Але взагалі з дробовими числами треба враховувати, що результат операцій з ними може бути не зовсім точним. Наприклад:
first_number = 2.0001
second_number = 5
third_number = first_number / second_number
print(third_number) # 0.40002000000000004
В даному випадку ми очікуємо отримати число 0.40002, проте в кінці через ряд нулів з'являється ще якась четвірка. Або ще один вираз:
print(2.0001 + 0.1) # 2.1001000000000003
У цьому випадку для округлення результату ми можемо використовувати функцію round():
first_number = 2.0001
second_number = 0.1
third_number = first_number + second_number
print(round(third_number, 4)) # 2.1001
Перший параметр функції-округле число, а другий-скільки знаків після коми повинно містити одержуване число.
Подання числа
При звичайному визначенні числової змінної вона отримує значення в десятковій системі. Але крім десяткової в Python ми можемо використовувати двійкову, вісімкову і шістнадцяткову системи.
Для визначення числа в двійковій системі перед його значенням ставиться 0 і префікс b:
x = 0b101 # 101 в двійковій системі дорівнює 5
Для визначення числа у вісімковій системі перед його значенням ставиться 0 і префікс o:
a = 0o11 # 11 у вісімковій системі дорівнює 9
Для визначення числа в шістнадцятковій системі перед її значенням ставиться 0 і префікс x:
y = 0x0a # a в шістнадцятковій системі дорівнює 10
І з числами в інших системах вимірювання також можна проводити арифметичні операції:
x = 0b101 # 5
y = 0x0a # 10
z = x + y # 15
print("{0} in binary {0:08b} in hex {0:02x} in octal {0:02o}".format(z))
Для виведення числа в різних системах обчислення використовуються функція format, яка викликається у рядка. У цей рядок передаються різні формати. Для двійкової системи "{0:08b}", де число 8 вказує, скільки знаків повинно бути в записі числа. Якщо знаків вказано більше, ніж потрібно для числа, то непотрібні позиції заповнюються нулями. Для шістнадцяткової системи застосовується формат " {0: 02x}". І тут все аналогічно - запис числа складається з двох знаків, якщо один знак не потрібен, то замість нього вставляється нуль. А для запису у вісімковій системі використовується формат " {0: 02o}".
Результат роботи скрипта: