Українська
Операції, введення та виведення
Операції та порядок обчислення
Оператори +, -, *, /, //, %, ** виконують додавання, віднімання, множення, ділення, ділення з округленням униз, остачу та піднесення до степеня. Навіть 8 / 4 дає 2.0 типу float. Для цілих a і ненульового b виконується a == (a // b) * b + a % b.
py
print(7 / 3, 7 // 3, 7 % 3)
print(-7 // 3, -7 % 3)
print(divmod(125, 60))
print(-2 ** 2, (-2) ** 2, 2 ** 3 ** 2)Результат:
2.3333333333333335 2 1
-3 2
(2, 5)
-4 4 512// округлює до мінус нескінченності, а не до нуля. Остача від ділення цілих має знак дільника або дорівнює нулю. Функція divmod повертає частку й остачу разом; minutes, seconds = divmod(125, 60) розпаковує два результати. Нульовий дільник неприпустимий для /, // і %.
Степінь має вищий пріоритет за унарний мінус ліворуч, а ланцюжок степенів обчислюється справа. Коли формула неочевидна, дужки корисніші за покладання на пам’ять. Порівняння виконуються після арифметики; далі йдуть not, and, or. Повна таблиця: https://docs.python.org/3.14/reference/expressions.html.
Порівняння 0 <= score <= 100 є ланцюговим: значення score обчислюється один раз. Запис score == 5 or 6 означає (score == 5) or 6, тому не перевіряє два допустимі числа. Правильно score == 5 or score == 6 або, після ознайомлення з колекціями, score in (5, 6).
Коротке обчислення та присвоєння
and не обчислює праву частину, якщо ліва хибна; or – якщо ліва істинна. Тому denominator != 0 and total / denominator > 10 не виконує ділення на нуль. Ці оператори повертають один зі своїх операндів, не обов’язково bool: "" or "гість" дає "гість".
count += 1 – складене присвоєння. Для числа воно обчислює новий об’єкт і повторно зв’язує ім’я. Знак = не є порівнянням; у звичайній умові if count = 1: буде синтаксична помилка.
Вираз присвоєння := дозволяє одночасно зберегти результат і використати його. Наприклад, while (text := input("> ")) != "0": читає рядок перед кожною перевіркою. У цій темі це додаткова можливість: звичайний цикл із явним input і break часто зрозуміліший початківцю.
Побітові &, |, ^, ~, <<, >> працюють з цілими числами: 5 & 3 дає 1, 5 | 3 – 7, 1 << 3 – 8. Вони не замінюють логічні and і or та не забезпечують такого самого короткого обчислення. Типові застосування – прапорці й маски доступу.
Функції, округлення та модулі
abs(x) обчислює модуль, min(a, b) і max(a, b) обирають менше й більше, pow(a, b) підносить до степеня. round(x) за рівної відстані округлює до парного: round(2.5) дає 2, round(3.5) – 4. Через двійкове подання round(2.675, 2) може здатися несподіваним: результат дорівнює 2.67. Це не правило грошового обліку.
Модуль math надає sqrt, pi, floor, ceil, тригонометричні функції та перевірку isfinite. Аргументи sin і cos задають у радіанах; для градусів є radians. floor(-2.3) дає -3, ceil(-2.3) – -2. Документація: https://docs.python.org/3.14/library/math.html.
Модуль random потрібен для навчальних ігор і моделювання. random.randint(a, b) включає обидві межі. Для повторюваного тесту можна створити random.Random(2026), проте звичайна гра не повинна щоразу примусово починати з того самого стану. Цей генератор не використовують для паролів або секретних токенів.
Приклад. Чек із навчальною ставкою ПДВ
Ціна без податку становить 19,95 грн, кількість – три одиниці. Навчальна ставка дорівнює 20 %; це умова обчислювальної задачі, а не податкова консультація. Податок округлюється один раз до копійок за правилом ROUND_HALF_UP, після чого додається до вартості без податку.
py
from decimal import Decimal, ROUND_HALF_UP
price = Decimal("19.95")
quantity = 3
rate = Decimal("0.20")
subtotal = price * quantity
tax = (subtotal * rate).quantize(
Decimal("0.01"), rounding=ROUND_HALF_UP
)
total = subtotal + tax
print(f"{'Без ПДВ':<12}{subtotal:>8.2f}")
print(f"{'ПДВ':<12}{tax:>8.2f}")
print(f"{'Разом':<12}{total:>8.2f}")Результат:
Без ПДВ 59.85
ПДВ 11.97
Разом 71.82Правило округлення є частиною умови: округлення кожної товарної позиції й округлення загальної суми можуть дати різні результати. У власних завданнях явно запишіть обране правило. Детальніше: https://docs.python.org/3.14/library/decimal.html.
Консольне введення та виведення
input(prompt) показує запрошення і повертає рядок без завершального символу нового рядка. Введення 12 не створює число автоматично. Після age = input("Вік: ") вираз age + age з’єднує текст. Для числової задачі потрібне явне перетворення.
print приймає кілька значень. Параметр sep визначає роздільник, end – завершення, file – потік. За замовчуванням це пробіл, новий рядок і стандартне виведення. Помилки можна спрямувати в sys.stderr.
py
import sys
print("Лондон", "Мадрид", sep=" -> ")
print("Сума", end=": ")
print(f"{12.5:.2f}")
print("Приклад повідомлення", file=sys.stderr)Перші рядки стандартного виведення: Лондон -> Мадрид і Сума: 12.50. Останнє повідомлення потрапляє в окремий потік; порядок змішування потоків у різних терміналах може відрізнятися.
У f-рядку (formatted string literal) вираз у фігурних дужках обчислюється під час виконання. Формат .2f друкує два десяткові знаки, >10 вирівнює праворуч у полі шириною щонайменше 10 символів, <10 – ліворуч. Ширина не обрізає надто довгий текст.
Контракт введення до вивчення винятків
У цій темі спочатку задаємо простий допустимий формат. Для лічильника можна приймати 1–6 ASCII-цифр без знака. isdigit() саме по собі недостатнє: деякі Unicode-символи, наприклад надрядкова двійка, є «цифрами» для цього методу, але не приймаються int. Перевірка isascii() разом із isdecimal() усуває цю неоднозначність.
py
text = input("Кількість (0..999999): ").strip()
if 1 <= len(text) <= 6 and text.isascii() and text.isdecimal():
count = int(text)
print("Удвічі більше:", 2 * count)
else:
print("Потрібно від 1 до 6 цифр 0..9")Для введення 12 результат – Удвічі більше: 24; для -2 або 2.5 – повідомлення про формат. Обмеження довжини також не дозволяє передати конструктору надмірно довгий рядок. Для дійсних чисел у коротких прикладах нижче передбачається правильний числовий запис із крапкою, а перевіряється область значень. Повна обробка довільних рядків через try/except є предметом теми 4.
Формат і область значень
Рядок "-5" може бути правильним числовим записом, але неправильним радіусом. Перевірка формату не замінює перевірки фізичного змісту. У звіті окремо вкажіть, які помилки програма обробляє, а які виходять за межі навчального контракту введення.
У PyCharm відкрийте Tools → Python Console та порівняйте типи й значення (рис. 2.3). Консоль зберігає стан між командами, тому перед контрольним запуском програми її краще перезапустити. https://www.jetbrains.com/help/pycharm/using-consoles.html.
Знімок екрана
Tools → Python Console: x = 7 // 2; y = 0.1 + 0.2; z = 2 ** 100; type(y). Show variables.
Рис. 2.3. Перевірка виразів у Python Console