Третья пара углублённого курса: четыре типа данных, целые и вещественные числа, случайные числа и seed — уроки 5–8 плана одной парой
| тип | что хранит | как получить | ловушка |
|---|---|---|---|
| int | целые любого размера | int("7"), a // b, round(x) | -17 // 5 = -4, -17 % 5 = 3: вниз, остаток от 0 до b−1 |
| float | вещественные, ~16 знаков | float("3.5"), a / b | 0.1 + 0.2 ≠ 0.3; на равенство не сравнивать |
| str | строки; символ — строка длины 1 | input(), str(5) | "5" + "3" = "53"; "5" + 3 — ошибка |
| bool | True / False | сравнения, bool(x) | True + True = 2; bool("0") = True |
В C++, Java, C# тип у переменной и объявляется заранее (статическая типизация). В Python тип у значения, переменная — ярлык: после x = 5 можно x = "пять" (динамическая). Узнать тип: type(x). Целые в Python не ограничены размером; в C++ int — 32 бита, около 2 миллиардов.
a == (a // b) * b + a % b — всегда, и для отрицательных. divmod(17, 5) даёт (3, 2). Цифры числа: n % 10 — последняя, n // 10 — отрезать её. Делимость: n % d == 0 — так перебирают делители (задание 25 ЕГЭ).
0.1 в двоичной системе — бесконечная дробь, хранится с округлением: 0.1 + 0.2 = 0.30000000000000004, 0.7 + 0.1 < 0.8. Сравнивать через допуск abs(a − b) < 1e-6 или округлять: round(a, 2). «/» всегда даёт float (6 / 3 = 2.0), «//» с вещественным — тоже float (7 // 2.0 = 3.0). round(x) → int, половина к чётному: round(2.5) = 2, round(3.5) = 4. int(x) отбрасывает дробную часть: int(-3.9) = -3. Формат f"{x:.2f}" меняет вид, а не число: 2.5 → "2.50".
input() всегда строка: "5" * 3 = "555", "9" > "10" (сравнение посимвольно). int("5.0") — ошибка, сначала float(). True хранится как 1, False как 0; bool от нуля и пустой строки — False, от всего остального — True. 3 == 3.0 → True, "3" == 3 → False. Цепочка 1 < x < 10 — это 1 < x and x < 10.
Подключение: from random import * — функции зовутся по имени. Своим переменным имена функций не давать: seed = … затрёт seed().
| вызов | что даёт |
|---|---|
| randint(a, b) | целое от a до b, оба конца включаются |
| randrange(a, b) | от a до b−1, как range |
| random() | вещественное от 0 включительно до 1 не включая |
| randrange(a, b, s) | от a до b−1 с шагом s |
| seed(число) | начало последовательности: запуски совпадают |
Числа псевдослучайные: следующее считается из предыдущего по формуле. Без seed начало берётся от часов. seed нужен, чтобы повторить тест, розыгрыш или ошибку.
Третья пара углублённого курса: четыре типа данных, целые и вещественные числа, случайные числа и seed — уроки 5–8 плана одной парой
| тип | что хранит | как получить | ловушка |
|---|---|---|---|
| int | целые любого размера | int("7"), a // b, round(x) | -17 // 5 = -4, -17 % 5 = 3: вниз, остаток от 0 до b−1 |
| float | вещественные, ~16 знаков | float("3.5"), a / b | 0.1 + 0.2 ≠ 0.3; на равенство не сравнивать |
| str | строки; символ — строка длины 1 | input(), str(5) | "5" + "3" = "53"; "5" + 3 — ошибка |
| bool | True / False | сравнения, bool(x) | True + True = 2; bool("0") = True |
В C++, Java, C# тип у переменной и объявляется заранее (статическая типизация). В Python тип у значения, переменная — ярлык: после x = 5 можно x = "пять" (динамическая). Узнать тип: type(x). Целые в Python не ограничены размером; в C++ int — 32 бита, около 2 миллиардов.
a == (a // b) * b + a % b — всегда, и для отрицательных. divmod(17, 5) даёт (3, 2). Цифры числа: n % 10 — последняя, n // 10 — отрезать её. Делимость: n % d == 0 — так перебирают делители (задание 25 ЕГЭ).
0.1 в двоичной системе — бесконечная дробь, хранится с округлением: 0.1 + 0.2 = 0.30000000000000004, 0.7 + 0.1 < 0.8. Сравнивать через допуск abs(a − b) < 1e-6 или округлять: round(a, 2). «/» всегда даёт float (6 / 3 = 2.0), «//» с вещественным — тоже float (7 // 2.0 = 3.0). round(x) → int, половина к чётному: round(2.5) = 2, round(3.5) = 4. int(x) отбрасывает дробную часть: int(-3.9) = -3. Формат f"{x:.2f}" меняет вид, а не число: 2.5 → "2.50".
input() всегда строка: "5" * 3 = "555", "9" > "10" (сравнение посимвольно). int("5.0") — ошибка, сначала float(). True хранится как 1, False как 0; bool от нуля и пустой строки — False, от всего остального — True. 3 == 3.0 → True, "3" == 3 → False. Цепочка 1 < x < 10 — это 1 < x and x < 10.
Подключение: from random import * — функции зовутся по имени. Своим переменным имена функций не давать: seed = … затрёт seed().
| вызов | что даёт |
|---|---|
| randint(a, b) | целое от a до b, оба конца включаются |
| randrange(a, b) | от a до b−1, как range |
| random() | вещественное от 0 включительно до 1 не включая |
| randrange(a, b, s) | от a до b−1 с шагом s |
| seed(число) | начало последовательности: запуски совпадают |
Числа псевдослучайные: следующее считается из предыдущего по формуле. Без seed начало берётся от часов. seed нужен, чтобы повторить тест, розыгрыш или ошибку.