Числа (numbers) в PYTHON.

Опубликовано kybik - вс, 11/26/2017 - 00:49

Числа дуже часто застосовуються в програмуванні для ведення рахунку в іграх, представлення даних у візуалізації, зберігання інформації в веб-додатках і т. д. В Python числові дані діляться на кілька категорій за способом їх використання. Для початку подивимося, як Python працює з цілими числами, тому що з ними виникає найменше проблем.

Цілі числа.
В Python з цілими числами можна виконувати операції додавання (+), віднімання (-), множення (*) і ділення (/).

>>> 2 + 3
5
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3/2
1.5

В термінальному сеансі Python просто повертає результат операції. Для уявлення операції піднесення до степеня в Python використовується подвоєний знак
множення:

>>> 3 ** 2
9
>>> 3 ** 3
27
>>> 10 ** 6
1000000

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

>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20

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

Речові числа.

В Python числа, що мають дробову частину, називаються речовими (або «числами з плаваючою точкою»). Зазвичай розробник може просто користуватися дробовими значеннями, не дуже замислюючись про їхню поведінку. Просто введіть потрібні числа, а Python швидше за все зробить саме те, що ви від нього хочете:

>>> 0.1 + 0.1
0.2
>>> 0.2 + 0.2
0.4
>>> 2 * 0.1
0.2
>>> 2 * 0.2
0.4

Однак в деяких ситуаціях раптом виявляється, що результат містить несподівано велику кількість розрядів у дробовій частині:

>>> 0.2 + 0.1
0.30000000000000004
числа 43
>>> 3 * 0.1
0.30000000000000004

Щось подібне може статися в будь-якій мові; для занепокоєння немає причин. Python намагається підібрати якомога точніше значення результату, що іноді буває нелегко через особливості внутрішнього уявлення чисел в комп'ютерах. Поки просто не звертайте уваги на «зайві» розряди; ви дізнаєтеся, як поступати в подібних ситуаціях, коли ця проблема стане актуальною для вас дещо пізніше.

Запобігання виникненню помилок типів з використанням функції str().

Часто значення змінної повинно використовуватися у складі повідомлення. Припустимо, ви хочете привітати користувача з днем ​​народження. І ви написали для цього наступний код:

birthday.py
age = 23
message = "Happy" + age + "rd Birthday!"
print(message)

Здавалося б, програма повинна вивести просте вітання: Happy 23rd birthday! Але, якщо запустити її, з'являється повідомлення про помилку:

Traceback (most recent call last):
File "birthday.py", line 2, in <module>
message = "Happy" + age + "rd Birthday!"
.1. TypeError: Can not convert 'int' object to str implicitly

На цей раз сталася помилка типу. Це означає, що Python не розуміє, яку інформацію ви використовуєте. В даному прикладі Python бачить, що в точці .1. використовується змінна з цілочисельним значенням (int), але не знає, як слід інтерпретувати це значення. Справа в тому, що змінна може представляти як число 23, так і пару окремих символів 2 і 3. При такому використанні цілих чисел в рядках необхідно явно вказати, що ціле число повинне використовуватися як рядок із символів. Для цього змінна передається функції str(), перетворити не строкові значення до строкового вигляду:

age = 23
message = "Happy" + str(age) + "rd Birthday!"
print (message)

Тепер Python розуміє, що ви хочете перетворити числове значення 23 в рядок і вивести символи 2 і 3 в складі привітання. Очікуваний результат виводиться без всяких помилок:

Happy 23rd Birthday!

У більшості випадків робота з числами в Python проходить досить тривіально. Якщо ви отримуєте несподівані результати, перевірте, чи правильно Python інтерпретує числові дані - як числове значення чи як рядок.

Теги