Не використовуйте binary `float` для точних грошей
Для цін і підсумків, де потрібна точна decimal arithmetic, використовуйте Decimal зі string input або integer minor units; float не може точно представляти більшість decimal fractions.
Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Для цін і підсумків, де потрібна точна decimal arithmetic, використовуйте Decimal зі string input або integer minor units; float не може точно представляти більшість decimal fractions.
Для прикладу з відео один запуск економить 94 хвилини; 150 запусків дають 14 100 хвилин локальної економії.
Assertion проходить; результат дорівнює 14100 хвилин.
Як упровадити автоматизацію мануальному QA та довести її ефективність →Decimal представляє decimal numbers exactly і зберігає значущі trailing zeros, тому придатніший за binary float для точних фінансових значень.
Підготуйте три price strings з двома decimal знаками.
Перетворіть їх через Decimal, не через float.
Відсортуйте новий список за спаданням і перевірте перший елемент через max().
Сортування точне, а початковий список можна зберегти для окремого assertion.
Page Objects передають locator tuple у BasePage, а кожна дія очікує власну перевірювану передумову.
click() працює лише з видимим і enabled елементом; type_text() — з видимим елементом.
2. Selenium організація PageObject's та Очікувань →Текст, отриманий з UI, залишається рядком навіть тоді, коли візуально містить число. Для арифметики його явно перетворюють: `int(page_number_text)` для індексу пагінації або `float(price_text)` для демонстраційного десяткового значення. Некоректний числовий рядок спричинить `ValueError`, тому на trust boundary формат треба перевірити або обробити помилку. Для точних грошових розрахунків `float` небезпечний через двійкове округлення; у production краще `Decimal` або цілі minor units, наприклад копійки/центи.
Змінна отримує тип із присвоєного значення: текст у лапках стає `str`, ціле число — `int`, число з десятковою крапкою — `float`, а `True`/`False` — `bool`. `type(value)` допомагає побачити фактичний тип. Файл можна запускати кнопкою Run в IDE й одразу звіряти оголошені значення з console output.
Expected result іноді треба обчислити: кількість товарів множиться на ціну, pagination використовує ділення та залишок. Через особливості floating-point результат на кшталт `3 * 9.99` доцільно округлити через `round(value, 2)` перед грошовим порівнянням; це не перетворює float на точний financial type, але відповідає навчальному прикладу.
Текст із Selenium/Playwright, CSV або `.env` залишається рядком, навіть якщо виглядає як `"200"`. Для числового порівняння застосовують `int(...)` або `float(...)`. Некоректний формат спричинить `ValueError`, тому не можна вважати будь-який текст числом лише за зовнішнім виглядом.
Кілька цін збираються в типізований список, наприклад `list[float]`. `max(prices)` знаходить найбільше значення, а перший елемент можна порівняти з ним, щоб перевірити сортування «від більшої ціни». Навіть коротку, але предметно важливу логіку пропонується оформити функцією на кшталт `is_first_price_highest(prices)`. Назва пояснює вимогу краще, ніж вкладене порівняння всередині великого тесту.