Python. Числа. Представлення чисел різних типів. Базові числові типи. Функції перетворення чисел

Числа. Представлення чисел різних типів. Базові числові типи. Функції перетворення чисел


Зміст


1. Категорії числових типів

У мові Python типи чисел представлені наступними категоріями:

  • звичайні числові типи (дійсні, цілочисельні);
  • літерали (створюють числові типи);
  • вирази (обробка числових типів).

 

2. Перелік числових типів

У мові Python підтримуються наступні числові типи:

  • цілі та дійсні числа;
  • комплексні числа;
  • числа фіксованої точності;
  • раціональні числа;
  • множини;
  • логічні значення;
  • цілі числа необмеженої точності.

 

3. Представлення цілих чисел (літералів) у різних системах числення. Приклад

Цілі числа (або цілочисельні літерали) можуть записуватись у різних системах числення:

  • десятковий формат;
  • шіснадцятковий;
  • вісімковий;
  • двійковий.

Приклад. Запис числа (літералу) 30 у різних форматах

30 # десятковий формат
0x1e # шіснадцятковий
0X1E # шіснадцятковий
036 # вісімковий, версія Python 2.6
0B11110 # двійковий
0b11110 # двійковий
0O36 # вісімковий, версія Python 3.0
0o36 # вісімковий, версія Python 3.0

Якщо у версії Python 3.0 спробувати представити вісімкове значення так як у версії Python 2.6 (036), то компілятор видасть помилку.

 

4. Типи цілих чисел у Python 2.6: звичайні та довгі. Приклад

У Python 2.6 цілі числа можуть бути представлені двома типами:

  • звичайні (32-бітні) числа;
  • довгі (необмеженої точності) числа. Такі числа закінчуються символом l або L. Якщо числове значення цілочисельного літерала не поміщається в звичайне 32-бітне число, то це значення автоматично приводиться до довгого цілого. У цьому випадку інтерпретатор автоматично виконує відповідне перетворення.

Приклад.

12345 # звичайне 32-бітне число
1234567890l # довге число у версіях Python до 3.0
7777777777777L # довге число у версіях Python до 3.0

 

5. Представлення цілих чисел у Python 3.0

У Python 3.0 обидва типи чисел (звичайні та довгі) були представлені як один (єдиний) тип цілих чисел, який автоматично представлений як довге ціле число (підтримує необмежену точність). Тому, у цій версії Python немає потреби завершувати літерали символами l або L. Якщо у Python 3.0 вказати l або L після числа, то інтерпретатор видасть помилку “Invalid token”.



 

6. Функції перетворення з числа в рядок і навпаки hex(), oct(), bin(), int(). Приклади

Щоб перетворити числовий вигляд літералу в рядок використовуються такі функції:

  • hex(num) – перетворює число num в рядок, який зображує це число у шіснадцятковій системі числення;
  • oct(num) – перетворює число num в рядок, що представляє це число у вісімковій системі числення;
  • bin(num) – перетворює число num в рядок, що представляє це число у двійковій системі числення.

Щоб перетворити рядок в ціле число з врахуванням системи числення використовується функція

int(s, base)

де

  • s – рядок, який потрібно перетворити;
  • base – ціле число, що визначає кількість цифр у системі числення. Наприклад, для системи числення 7 значення base = 7.

Приклади функцій перетворення.

sh = hex(15) # sa = 0xF
so = oct(15) # sb = 0o17
sb = bin(15) # sb = 0b1111

i = int('15',10) # i = 15
i = int('15',8) # i = 13
# i = int('19',8) - помилка, цифра 9 не може бути у 8-й системі числення

i = int('2EF',16) # i = 751
i = int('20',16) # i = 32
i = int('14',5) # i = 9

 

7. Представлення дійсних чисел. Приклад

Дійсні числа визначають числа з плаваючою комою. Дійсні числа (літерали) можуть бути представлені у вигляді:

  • чисел, що містять розділювач цілої та дробової частини;
  • чисел, що містять символ e або E для позначення порядку числа.

Інтерпретатор Python розпізнає дійсне число за наявністю символу ‘.’ (“крапка”) або експоненти (символ e або E). Після того, як число розпізнане, створюється відповідний об’єкт дійсного типу. Такий об’єкт використовується у подальших математичних виразах як об’єкт дійсного типу (а не об’єкт цілого чи іншого типу).

Приклад.

2.85 # звичайне представлення дійсного числа
3. # число 3.0
1.3e-3 # число 0.0013
1.52E6 # 1520000.0
3e2 # 300.0
2.0E-1 # 0.2

 

8. Комплексні числа. Приклади

У мові Python є можливість працювати з комплексними числами. Загальна форма представлення комплексного числа наступна:

real_part + imag_part j

де

  • real_part – дійсна частина комплексного числа, яка є необов’язковою (у випадку, якщо число не містить дійсної частини);
  • imag_part – уявна частина комплексного числа, яка завершується символом j або J.

Інтерпретатор представляє комплексне число як два дійсних числа. При використанні у математичних виразах, комплексні числа обробляються відповідним чином.

Приклади літералів комплексних чисел

6-8j
2.5+3.8j
0.001J
2.-3.J

 

9. Створення комплексних чисел. Функція complex(). Приклад

Комплексні числа створюються функцією complex(), яка є вбудованою функцією мови Python. Загальна форма функції (перевірити):

complex(real, imag)

Приклад.

a = complex(6, -8) # a = (6-8j)
b = complex(0, 2.5) # b = 2.5j
c = complex(0.02, -1e4) # c = (0.02-10000j)

 

10. Функція eval. Конвертування рядка в число

Число може бути представлене у вигляді рядка, наприклад

'258'
"0x2A5"

Для конвертування рядка в число можна використати функцію eval. Функція eval(s) розглядає рядок s як програмний код на мові Python. Функція виконує компіляцію рядка s та його виконання. Рядок сприймається як частина програми.

Приклад.

# Функція eval

# виконання рядка як коду програми
a = 5
b = 6
c = eval('a+b') # c = a+b = 11

# конвертування рядків, представлених як число, в саме число
c = eval('0xF5') # c = 245
c = eval('0b111') # c = 7
c = eval('0o135') # c = 93

d = bin(eval('0b101')) # d = 0b101

 


Зв’язані теми