Большинство задач о числах решается тремя операциями: обычным делением, делением нацело и остатком. Вещественные числа и случайные значения требуют помнить, как компьютер их хранит и вырабатывает.
Что нужно знать
- a / b — всегда float (7 / 2 = 3.5, 8 / 2 = 4.0); a // b — деление нацело, округление ВНИЗ (−7 // 2 = −4); a % b — остаток (17 % 5 = 2).
- Цифры числа: последняя — n % 10, без последней — n // 10, десятки трёхзначного — n // 10 % 10, сотни — n // 100.
- Чётность и кратность: n % 2 == 0 — чётное, n % k == 0 — делится на k.
- Вещественные числа хранятся приближённо: 0.1 + 0.2 = 0.30000000000000004. Сравнивают с допуском: abs(a − b) < 1e-9.
- math: sqrt (корень, float), floor (вниз), ceil (вверх), pi; встроенные abs и round. round(2.5) = 2, round(3.5) = 4 — к чётному.
- Возведение в степень — **; приоритет: ** выше, чем *, /, //, %, а те выше + и −.
- random.randint(a, b) — целое от a до b включительно; random.random() — float из [0; 1); random.choice(список) — случайный элемент.
- Генератор псевдослучайный: при одинаковом random.seed(...) последовательность повторяется — это удобно для отладки.
Где чаще всего ошибаются
- Ожидать от 7 / 2 целого числа 3, как в некоторых других языках.
- Считать, что −7 // 2 = −3: деление нацело в Python округляет вниз.
- Сравнивать вещественные числа знаком == без допуска.
- Писать randint(1, 6) и думать, что 6 не выпадет никогда (это правило range, а не randint).
Проверить себя
По этой же теме курса есть проверочная работа из 15 заданий на 25 минут. Проверка автоматическая, результат виден сразу — и по работе целиком, и по каждой теме.
Программирование на Python · 7 класс · Целые и вещественные числа, случайные числа