Математичні (арифметичні) оператори. Приклади
Зміст
- 1. Які оператори (операції) використовуються для проведення обчислень у Python?
- 2. Для яких категорій числових типів можна застосовувати математичні оператори?
- 3. Яким чином обчислюється тип результату операції у випадку якщо операція є бінарною і містить операнди різних типів?
- 4. Операція піднесення до степеня **. Приклад
- 5. Операції додавання (+), віднімання (–). Приклади
- 6. Операції множення (*) та звичайного ділення (/). Приклад
- 7. Особливості операції ділення / для різних типів чисел. Приклад
- 8. Операція ділення з округленням вниз (//). Приклад
- 9. Операція “унарний” мінус (–x). Приклад
- 10. Операція взяття остачі від ділення (%). Приклад
- Зв’язані теми
Пошук на інших ресурсах:
1. Які оператори (операції) використовуються для проведення обчислень у Python?
Мова Python має набір математичних (арифметичних) операторів для проведення обчислень в арифметичних виразах. Перелік цих операторів в порядку спадання пріоритету наступний:
- ** – піднесення до степеня;
- –x – унарний мінус;
- /, // – звичайне ділення, ділення з округленням вниз;
- % – остача від ділення;
- * – множення;
- – – віднімання;
- + – додавання.
⇑
2. Для яких категорій числових типів можна застосовувати математичні оператори?
Математичні оператори можна застосовувати для будь-яких числових типів, а саме:
- цілочисельних (типів);
- дійсних;
- комплексних.
⇑
3. Яким чином обчислюється тип результату операції у випадку якщо операція є бінарною і містить операнди різних типів?
Кожна операція повертає результат деякого типу. Якщо операція бінарна, то тип результату залежить від типу операндів.
Тут можливі два випадки:
- операнди мають однаковий тип. У цьому випадку тип результату операції є цей самий тип. Виняток складає операція ділення / цілочисельних операндів. Якщо обидва операнди цілого типу, то результат операції ділення буде дійсний тип (число з плаваючою комою);
- операнди мають різні типи. У цьому випадку тип результату операції буде визначається за наступною послідовністю: спочатку тип обидвох операндів приводиться до типу складнішого операнду; потім для операндів застосовується математика, специфічна для цього типу.
Інтерпретатор Python визначає складність типів у такій послідовності (від найпростішого до найбільш складного):
- цілий тип;
- дійсний тип;
- комплексний тип.
У Python 2.6 при необхідності, звичайні цілі числа можуть перетворюються у довгі цілі числа. У Python 3.0 і вище цього ранжування вже немає і всі цілі числа представлені як довгі цілі числа.
Приклад. При використанні двох операндів різних типів можливі такі ситуації.
Якщо один операнд цілого типу, а інший дійсного типу, то тип результату буде дійсний тип (тому що дійсний тип вважається складнішим).
Якщо один операнд дійсного типу, а інший комплексного типу, то результат буде комплексного типу.
⇑
4. Операція піднесення до степеня **. Приклад
Операція піднесення до степеня позначається ** і використовується для операндів будь-яких числових типів (цілочисельних, дійсних, комплексних).
# Операція ** - піднесення до степеня # 1. Для цілих чисел a = 3 b = 2 c = a**b # c = 9 print("c = ", c) # 2. Для дійсних чисел a = 2.5 b = 3 c = a**b # c = 15.625 print('c = ', c) # 3. Для комплексних чисел x = 1 - 2j y = -4j z = x**y # z = (-0.011895629765035814+0.0009211666704635043j) print('z = ', z) # 4. У 16-й системі числення a = 0xA1 b = 0x03 c = a**b # c = 4173281 - результат у 10-й системі числення d = hex(c) # d = 0x3fade1 - результат у 16-й системі числення print('c = ', c) print('d = ', d) # 5. У 8-й системі числення a = 0o356 b = 0o2 c = a**b # c = 56644 - результат у 10-й системі числення d = oct(c) # d = 0o156504 - результат у 8-й системі числення print('c = ', c) print('d = ', d) # 6. У 2-й системі числення a = 0b101 b = 0b110 c = a**b # c = 15625 - результат у 10-й системі числення d = bin(c) # d = d = 0b11110100001001 - результат у 2-й системі числення print('c = ', c) print('d = ', d)
⇑
5. Операції додавання (+), віднімання (–). Приклади
Операції додавання + та віднімання – є бінарними і використовуються для будь-якого числового типу.
# Операції додавання +, віднімання - # 1. Додавання, віднімання цілих чисел a=3 b=5 c = a+b # c = 8 d = a-b # d = -2 # 2. Додавання, віднімання цілого та дійсного числа a = 2.5 b = 7 c = a + b # c = 9.5 - результат - дійсне число d = a - b # d = -4.5 - результат - дійсне число # 3. Додавання, віднімання дійсних чисел x = 8.99902 y = 9.112356 z = x+y # z = 18.111376 v = x-y # v = -0.11333600000000033 # 4. Додавання, віднімання комплексних чисел, результат - комплексне число a = 7+8j b = 3-2j c = a + b # c = (10+6j) d = a - b # d = (4+10j) # 5. Додавання, віднімання чисел у шістнадцятковій системі числення a = 0xFF5 b = 0xC9 c = a + b # c = 4286 - у десятковій системі числення d = a - b # d = 3884 # 6. Додавання, віднімання чисел у вісімковій системі числення a = 0o730 b = 0o50 c = a + b # c = 512 d = a - b # d = 432 # 7. Додавання, віднімання чисел у двійковій системі числення a = 0b0110110 b = 0b0001010 c = a + b # c = 64 - результат у десятковій системі числення d = a - b # d = 44
⇑
6. Операції множення (*) та звичайного ділення (/). Приклад
Операції множення * та ділення / є бінарними. Ці операції використовуються з операндами будь-якого числового типу (цілого, дійсного, комплексного).
# Операції множення * та звичайного ділення / # 1. Для цілих чисел a = 7 b = 4 c = a*b # c = 28 - цілий результат d = a/b # d = 1.75 - дійсний результат # 2. Для дійсних чисел a = 7.5 b = 3.2 c = a*b # c = 24.0 - дійсний результат d = a/b # d = 2.34375 # 3. Для комплексних чисел x = 2 + 2j y = 3 - 1j z = x*y # z = (8+4j) v = x/y # v = (0.4+0.7999999999999999j) # 4. У 16-й системі числення a = 0xaff b = 0x5b c = a*b # c = 256165 - результат у 10-й системі числення d = a/b # d = 30.934065934065934 - дійсне число # 5. У 8-й системі числення a = 0o356 b = 0o2 c = a*b # c = 476 d = a/b # d = 119.0 # 6. У 2-й системі числення a = 0b111 # a = 35 b = 0b101 # b = 5 c = a*b # c = 35 - результат у 10-й системі числення d = a/b # d = 1.4 - результат у 2-й системі числення
⇑
7. Особливості операції ділення / для різних типів чисел. Приклад
Якщо в операції ділення / один з операндів є дійсного типу, то результат буде також дійсного типу (дробове число).
При використанні операції ділення для цілочисельних операндів у таких мовах як C/C++, C#, Java результат операції буде цілочисельним. У версіях Python 2.6 і нижче операція ділення цілочисельних операндів також дає цілочисельний результат, тобто після ділення
a = 9/6 # a = 1 - версії Python 2.6 і нижче
змінна a = 1.
У версії Python 3.0 і вище результат операції ділення / завжди буде дійсне число (незалежно від типів операндів), тобто після ділення
a = 9/6 # a = 1.5 - версії Python 3.0 і вище
змінна a є дійсного типу (a = 1.5). Якщо у версії Python 3.0 і вище при діленні цілочисельних операндів потрібно повернути ціле число, то для цього використовується операція ділення з округленням вниз // (див. п. 8).
Приклад.
# Для цілих чисел (цілочисельних операндів) a = 7 b = 4 c = a/b # c = 1.75 - результат дійсний a = 9 b = 3 c = a/3 # c = 3.0 - результат також дійсний
⇑
8. Операція ділення з округленням вниз (//). Приклад
У версіях Python 2.2 і вище введена операція ділення // з округленням вниз, яка у випадку цілочисельних операндів повертає результат цілого типу. У версіях Python 3.0 і вище ця операція замінює цілочисельне ділення з поверненням цілочисельного результату.
Приклад.
# Операція ділення // з округленням вниз, Python 3.7.0 # 1. Для цілих чисел a = 8 b = 5 c = a // b # c = 1 a = 17 b = 3 c = a//b # c = 5 - цілий результат з округленням вниз # 2. Для дійсного та цілого числа x = 6.0 y = 2 z = x//y # z = 3.0 - дійсний результат # 3. Для дійсних чисел x = 5.5 y = 2.5 z = x//y # z = 2.0 - дійсний результат з округленням вниз x = 13.7 y = 2.3333 z = x//y # z = 5.0 - дійсний результат з округленням вниз
⇑
9. Операція “унарний” мінус (–x). Приклад
Операція унарний мінус робить з додатного числа від’ємне, а з від’ємного числа додатнє. Операція застосовується до будь-якого числового типу.
# Унарний мінус -x a = 15 b = -a # b = -15 - унарний мінус a = -12.35 b = -a # b = 12.35 a = 0xFF b = -a # b = -255 - десяткова система числення c = hex(b) # c = -0xff a = 0o775 # вісімкова система числення b = -a c = oct(b) # c = -0o775 a = 0b1111001 b = -a # b = -121 - десяткова система числення c = bin(b) # c = -0b1111001 - двійкова система числення # Комплексне число z = 2 - 8j z = -z # z = (-2+8j)
⇑
10. Операція взяття остачі від ділення (%). Приклад
# Операція взяття остачі від ділення # 1. Для цілих чисел a = 7 b = 4 c = a%b # c = 3 a = 5 b = 9 c = a % b # c = 5 # 2. Для дійсних чисел a = 5.5 b = 2.1 c = a%b # c = 1.2999999999999998 a = -8.1 b = -1.01 c = a%b # c = -0.019999999999999574 # 3. Для шістнадцяткових чисел a = 0xA8 b = 0x0F c = a%b # c = 3 - результат у десятковій системі d = hex(c) # d = 0x3 - результат у 16-й системі числення # 4. Для вісімкових чисел a = 0o15 b = 0o25 c = a % b # c = 13 d = oct(c) # d = 0o15 # 5. Для двійкових чисел a = 0b10011 b = 0b101 c = a%b # c = 4 d = bin(c) # d = 0b100
⇑
Зв’язані теми
- Оператори (операції) для роботи з числовими об’єктами. Таблиця пріоритетності операцій
- Змішування типів. Перетворення типів в операторах
- Оператори порівняння
⇑