Эквивалентно: (1 < x) and (x < 5)

Эквивалентно: (1 < x) and (x < 5)


Числа в Python: системы счисления, операции, сравнения и деление

Python предоставляет богатый набор возможностей для работы с числами. В этой статье разберем синтаксис чисел в разных системах счисления, операции с разными типами, сравнения и особенности деления. Системы счисления: синтаксис чисел

  1. Десятичные (Decimal) Стандартный формат для целых и вещественных чисел: a = 42 # int b = 3.14 # float c = 1_000_000 # int с разделителем для удобства (Python 3.6+)
  2. Шестнадцатеричные (Hexadecimal) Используют префикс 0x: hex_num = 0x1A # 26 в десятичной системе print(hex_num) # 26
  3. Восьмеричные (Octal) Префикс 0o (Python 3+): oct_num = 0o12 # 10 в десятичной системе print(oct_num) # 10
  4. Двоичные (Binary) Префикс 0b: bin_num = 0b110 # 6 в десятичной системе print(bin_num) # 6 Для преобразования чисел в строку в разных системах: print(bin(10)) # ‘0b1010’ print(hex(255)) # ‘0xff’ print(oct(8)) # ‘0o10’

Операции с разными типами Python автоматически преобразует типы при смешанных операциях:

  • int + float → float
  • int/float + complex → complex Примеры: print(3 + 4.5) # 7.5 (float) print(2 * 3.0) # 6.0 (float) print(5 + 2j) # (5+2j) (complex) Важно: При делении / результат всегда float, даже если числа целые: print(4 / 2) # 2.0 (float) Сравнение чисел
  1. Обычные сравнения: Используйте операторы ==, !=, <, >, <=, >=: x = 5 print(3 < x <= 10) # True (двойное сравнение) print(x == 5.0) # True (значения равны, типы игнорируются) print(0.1 + 0.2 == 0.3) # False (из-за погрешности float) Совет: Для точных сравнений с плавающей точкой используйте модуль decimal: from decimal import Decimal print(Decimal(‘0.1’) + Decimal(‘0.2’) == Decimal(‘0.3’)) # True
  2. Цепные сравнения (Chained Comparisons) Python позволяет объединять условия:

Эквивалентно: (1 < x) and (x < 5)

x = 3 print(1 < x < 5) # True Типы деления

  1. Обычное (True) деление (/) Всегда возвращает float, даже при делении целых чисел: print(5 / 2) # 2.5 print(4 / 2) # 2.0
  2. Целочисленное (Floor) деление (//) Возвращает целую часть, округляя вниз: print(5 // 2) # 2 (int) print(-5 // 2) # -3 (округляет в меньшую сторону) print(7.8 // 2) # 3.0 (float)
  3. Деление по модулю (%) Возвращает остаток от деления: print(5 % 2) # 1 print(10 % 3) # 1 print(-5 % 2) # 1 (по формуле: a = b * (a // b) + a % b) Примеры комбинаций: quotient, remainder = divmod(10, 3) print(quotient) # 3 print(remainder) # 1 Особенности чисел в Python
  4. Большие числа Поддержка чисел произвольной точности: big_num = 2 ** 1000 # 1071508607186267320948… (301 цифра)
  5. Модуль math Для сложных операций: import math print(math.sqrt(16)) # 4.0 print(math.floor(3.7)) # 3 print(math.ceil(3.2)) # 4
  6. Точные десятичные дроби Используйте Decimal для финансовых расчетов: from decimal import Decimal print(Decimal(‘0.1’) + Decimal(‘0.2’)) # 0.3 Заключение
  7. Системы счисления:
  • Шестнадцатеричные (0x), восьмеричные (0o), двоичные (0b).
  • Используйте bin(), hex(), oct() для преобразований.
  1. Смешанные операции:
  • Python автоматически повышает типы (int → float → complex).
  • Деление / всегда возвращает float.
  1. Сравнения:
  • Цепные сравнения (1 < x < 5) упрощают код.
  • Для точных расчетов с плавающей точкой используйте Decimal.
  1. Деление:
  • / — истинное деление.
  • // — целочисленное (с округлением вниз).
  • % — остаток от деления. Советы:
  • Для проверки типа числа используйте isinstance(x, int).
  • Избегайте сравнения float на равенство из-за погрешностей.
  • Используйте _ в больших числах для удобства чтения (например, 1_000_000). ?