Целочисленные переменные: подробное руководство

Раздел: Основы Python -> Переменные

Целочисленные переменные в Python

Целочисленная переменная в Python представляет собой объект типа int. Она может хранить целые числа произвольного размера (без ограничения на количество разрядов). Ниже рассмотрены основные способы работы с целыми числами, включая присваивание, преобразование и типичные проблемы.

Как объявить целочисленную переменную простым присваиванием?

Самый распространённый способ — напрямую присвоить переменной целое число:

count = 10
price = -5
temp = 0

Python значение переменной (значение переменной в python)

При этом Python автоматически определяет тип int. Переменная готова к использованию в выражениях.

Типичные ошибки:

  • Попытка использовать имя переменной до присваивания вызывает NameError.
  • Случайное использование зарезервированных слов (например, class) в качестве имени переменной.

Как преобразовать строку или число с плавающей точкой в целое?

Для преобразования используется встроенная функция int(). Она принимает один обязательный аргумент (строку или число) и возвращает целое значение.

a = int("42")
b = int(3.14)  # отбрасывает дробную часть
c = int("1010", 2)  # из двоичной строки

изменить значение переменной python (изменение значения переменной в python)

a = 42, b = 3, c = 10

целая переменная в python (целочисленная переменная)

Проблемы:

  • Передача строки, не являющейся числом, вызывает ValueError.
  • При передаче числа с плавающей точкой дробная часть отбрасывается (не округляется).
  • Если указано основание системы счисления (второй аргумент), строка должна соответствовать этому основанию.

Как присвоить одно и то же значение нескольким переменным?

Можно использовать множественное присваивание:

x = y = z = 100

Все три переменные указывают на один и тот же объект int со значением 100. В Python целые числа неизменяемы, поэтому изменение одной переменной не повлияет на другие.

Важно: Для изменяемых типов (например, списков) такое присваивание создаёт ссылки на один объект, что может привести к неожиданному поведению.

Как задать число в двоичной, восьмеричной или шестнадцатеричной системе?

Python поддерживает литералы с префиксами: 0b (двоичная), 0o (восьмеричная), 0x (шестнадцатеричная).

bin_val = 0b1010  # 10
 oct_val = 0o12    # 10
 hex_val = 0xA     # 10

Все эти литералы создают объект типа int.

Ошибка: если цифры не соответствуют системе (например, 0b102), возникает SyntaxError.

Как работать с очень большими целыми числами?

Python автоматически использует длинную арифметику (big integers). Размер ограничен только доступной памятью.

big = 2**1000
print(big)
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

Преобразование в другие типы (например, float) может привести к потере точности.

Типичная ошибка: попытка вычислить факториал большого числа с использованием рекурсии без учёта глубины стека.

Как проверить, является ли значение целым числом?

Используйте функцию isinstance() или сравнение type():

val = 5
if isinstance(val, int):
    print("Это целое число")
Это целое число

Логическая ошибка: isinstance(val, int) вернёт True даже для подклассов int (если они есть).

Какие арифметические операции доступны для целых чисел?

Стандартные операции: +, -, *, / (возвращает float), // (целочисленное деление), % (остаток), ** (возведение в степень).

a = 10
b = 3
print(a + b)  # 13
print(a // b) # 3
print(a % b)  # 1
print(a ** b) # 1000
13
3
1
1000

Частая ошибка: путаница между / и //. Деление одного целого на другое возвращает float, если не используется //.

Как изменить значение целочисленной переменной (инкремент, составные операторы)?

Поскольку целые числа неизменяемы, операция x = x + 1 создаёт новый объект и присваивает его переменной. Составные операторы (+=, -= и т.д.) работают аналогично:

counter = 0
counter += 5   # то же, что counter = counter + 5
counter -= 2
counter *= 3

Значение counter после всех операций: 9.

Ошибка: использование ++ или -- в стиле C в Python не поддерживается.

Дополнительные примеры работы с целыми числами

В этом разделе приведены более сложные сценарии использования целочисленных переменных, включая работу с системами счисления, битовые операции и большие числа.

Пример: перевод числа из одной системы счисления в другую

Функции bin(), oct(), hex() возвращают строковое представление целого числа.

Пример
num = 255
print(bin(num))  # '0b11111111'
print(oct(num))  # '0o377'
print(hex(num))  # '0xff'
0b11111111
0o377
0xff
Пример: битовые операции над целыми числами

Python поддерживает побитовые операторы: & (И), | (ИЛИ), ^ (исключающее ИЛИ), ~ (НЕ), << (сдвиг влево), >> (сдвиг вправо).

Пример
a = 0b1100  # 12
b = 0b1010  # 10
print(a & b)   # 8  (0b1000)
print(a | b)   # 14 (0b1110)
print(a ^ b)   # 6  (0b0110)
print(~a)      # -13
print(a << 2)  # 48 (0b110000)
print(a >> 1)  # 6  (0b110)
8
14
6
-13
48
6

Пример: вычисление факториала большого числа и проверка длины

Пример
import math
fact = math.factorial(100)
print(fact)
print("Количество цифр:", len(str(fact)))
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Количество цифр: 158

Пример: использование целых чисел в генераторах списков

Пример
squares = [x**2 for x in range(1, 11)]
print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Пример: проверка числа на чётность с помощью побитовой операции
Пример
def is_even(n):
    return (n & 1) == 0
print(is_even(10))  # True
print(is_even(7))   # False
True
False
Пример: создание целого числа из байтов

Функция int.from_bytes() позволяет интерпретировать последовательность байтов как целое число.

Пример
byte_data = b'\x00\x10'  # два байта
num = int.from_bytes(byte_data, byteorder='big')
print(num)  # 16
16
Пример: работа с числами в разных контекстах (машинный эпсилон для целых)

Поскольку целые числа в Python не имеют ограничения точности, понятие машинного эпсилон к ним не применимо. Однако при преобразовании в float возможна потеря:

Пример
big_int = 10**100
big_float = float(big_int)
print(big_float == big_int)  # False из-за округления
False

Целочисленная переменная - comments

En
целая переменная в python (python)