JavaRush /Курси /Модуль 1: Python Core /Робота з числовими типами

Робота з числовими типами

Модуль 1: Python Core
Рівень 4 , Лекція 2
Відкрита

3.1 Числові типи: int, float, complex

Python має декілька числових типів, кожен з яких підходить для різних задач і обробки даних. Ми вже згадували типи даних int, float, complex, а також булеві типи bool, які є підкласом цілих чисел. Тепер розглянемо кожен з цих типів детальніше.

int (Цілі числа):

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

float (Числа з плаваючою комою):

Ці числа використовуються для представлення дійсних чисел і можуть містити десяткові точки. Python реалізує числа з плаваючою точкою відповідно до стандарту IEEE 754 double-precision, що дає точність приблизно 15 десяткових цифр після коми.

complex (Комплексні числа):

Комплексні числа мають дійсну та уявну частину. І та, і інша, представлені числами з плаваючою точкою. У Python для позначення уявної частини використовується суфікс j або J. Наприклад, комплексне число можна створити так:

complex_number = 3 + 5j

bool (Булеві значення):

В Python True і False є спеціалізованими версіями цілих чисел і функціонують як 1 і 0 відповідно. Це дозволяє їх використовувати в арифметичних операціях і інших математичних виразах.

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

Python підтримує всі основні арифметичні операції, включаючи додавання, віднімання, множення, ділення, ділення націло, взяття залишку від ділення і піднесення до степеня. Наприклад:

  • Додавання: 3 + 2
  • Віднімання: 5 - 2
  • Множення: 2 * 3
  • Ділення: 7 / 2
  • Ділення націло: 7 // 2
  • Залишок від ділення: 7 % 2
  • Піднесення до степеня: 2 ** 3

Перетворення типів:

Ми вже говорили про перетворення (або приведення) типів. Одні числа в інші можна переводити за допомогою функцій приведення типів, таких як int(), float() і complex().

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

3.2 Псевдовипадкові числа

Іноді програміст стикається з простими, здавалося б, задачами: «вибрати випадковий фільм для вечірнього перегляду з певного списку», «вибрати переможця лотереї», «перемішати список пісень при трясці смартфона», «вибрати випадкове число для шифрування повідомлення». При цьому щоразу виникає цілком закономірне питання: а як отримати це саме випадкове число?

Отримати «справжнє» випадкове число досить-таки важко. Вплоть до того, що в комп'ютер вбудовують спеціальні математичні сопроцесори, які вміють генерувати такі числа, з виконанням всіх вимог до «істинної випадковості».

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

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

Наприклад, дана програма виведе на екран 1000 неповторюваних чисел:


a = 41
c = 11119
m = 11113
seed = 1
                   

def get_next_random():
    global seed
    seed = (a * seed + c) % m
    return seed
                   
for t in range(1000):
    x = get_next_random()
    print(x)              

До речі, ми говоримо не про псевдовипадкові числа, а саме про послідовність таких чисел. Адже, дивлячись на одне число неможливо зрозуміти, випадкове воно чи ні.

Випадкове число можна отримати різними способами:

def get_random_number():
    return 4  # це точно випадкове число (z викинув його за допомогою кубиків), див. "Жарт про кубики"               

3.3 Бібліотека random

В Python є вбудована бібліотека random, з якою вам буде цікаво попрацювати. Як ви вже, можливо, здогадалися по її назві, з допомогою цієї бібліотеки можна генерувати [псевдо]випадкові числа.

Бібліотека random, хоч і вбудована, все-таки є окремою бібліотекою, тому перш ніж використовувати її, потрібно підключити до нашого коду. Робиться це за допомогою ключового слова import. Приклад:


import random 

В бібліотеці random є багато цікавих методів, але сьогодні ми познайомимося тільки з двома з них: метод random() і метод randint(). Вони виконують схожі, але різні задачі:

Метод random.random():

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


import random 

probability = random.random()
print("Випадкова ймовірність:", probability)               

Метод random.randint(a, b):

Ця функція повертає випадкове ціле число в діапазоні від a до b включно. На відміну від random.random(), яка повертає випадкове число з плаваючою комою в діапазоні від 0 до 1, randint() використовується, коли потрібно вибрати ціле число. Наприклад, random.randint(1, 10) може повернути будь-яке ціле число від 1 до 10, включаючи обидва кінцевих значення.


import random

dice_roll = random.randint(1, 6)  # Імітація кидання гральної кістки
print("Випало число:", dice_roll)               

Це дуже корисні і цікаві методи, тож користуйся на здоров'я.

3.4 Бібліотека math

Ну, раз пішла така гулька, дозволь познайомити тебе з ще однією цікавою бібліотекою. Це бібліотека math. В ній містяться основні математичні функції і константи, такі як числа π і e.

І так само, як і бібліотеку random, її потрібно імпортувати перед використанням:


import math 

Ось таблиця з основними функціями і константами бібліотеки math в Python:

Функція/Константа Опис
math.pi Константа π, приблизно дорівнює 3.14159
math.e Основа натурального логарифма, приблизно дорівнює 2.71828
math.sqrt(x) Повертає квадратний корінь з x
math.exp(x) Повертає e в степені x
math.log(x[, base]) Повертає логарифм x за основою base, якщо base вказаний; в іншому випадку повертає натуральний логарифм.
math.cos(x) Повертає косинус x, де x вказано в радіанах
math.sin(x) Повертає синус x, де x вказано в радіанах
math.tan(x) Повертає тангенс x, де x вказано в радіанах
math.ceil(x) Округлює число вгору до найближчого цілого
math.floor(x) Округлює число вниз до найближчого цілого
math.factorial(x) Повертає факторіал x

Навіть якщо ти не дуже захоплюєшся математикою і не збираєшся використовувати ці функції в найближчі 10 років, тут є як мінімум три дуже корисні:

  • sqrt() — квадратний корінь з числа
  • ceil() — округлення вгору до найближчого цілого
  • floor() — округлення вниз до найближчого цілого

Приклади:


import math

number = 9.7
rounded_up = math.ceil(number)  # Округляє вгору, результат 10 
rounded_down = math.floor(number)  # Округляє вниз, результат 9 
            
print("Округлене вгору число:", rounded_up)
print("Округлене вниз число:", rounded_down)              
Коментарі (2)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Yurii Рівень 8
3 січня 2026
Ті, хто страшно боїться математики під час читання цього уроку: 😨🗿
Tony Рівень 53
3 червня 2025
"Вплоть до" українською "Аж до" - див.п.3.2.