int
Функция int() преобразует значение в целое число. Может работать с числами, строками и другими объектами, реализующими метод __int__. Если аргументы не указаны, возвращает 0.
Синтаксис
int([x[, base]])
Аргументы
- x (необязательный):
- Что означает: Значение, которое нужно преобразовать в целое число.
- Возможные значения: Число (вещественное, целое), строка, поддерживающая преобразование в целое число, или объект с методом __int__.
- base (необязательный):
- Что означает: Основание системы счисления, в которой представлено строковое значение x. Используется только при передаче строки.
- Возможные значения: Целое число от 2 до 36. По умолчанию — 10.
Возвращаемое значение
Целое число, преобразованное из переданного значения. Если аргументы не указаны, возвращается 0.
Примеры использования
# Преобразование строки в целое число
print(int("42")) # 42
# Преобразование вещественного числа
print(int(3.14)) # 3 (дробная часть отбрасывается)
# Преобразование строки в другой системе счисления
print(int("1010", 2)) # 10 (бинарная система)
# Использование без аргументов
print(int()) # 0
Частые ошибки
Передача строки, которая не является числом:
print(int("abc")) # Ошибка: ValueError
Как исправить: Убедитесь, что строка содержит корректное числовое значение.
Неверное указание основания системы счисления:
print(int("1010", 37)) # Ошибка: ValueError
Как исправить: Используйте значение основания от 2 до 36.
Попытка преобразовать недопустимый тип:
print(int([1, 2, 3])) # Ошибка: TypeError
Как исправить: Передавайте только строки, числа или объекты с методом __int__.
Проблемы с вещественными числами:
print(int("3.14")) # Ошибка: ValueError
Как исправить: Сначала преобразуйте строку в float, а затем в int:
print(int(float("3.14"))) # 3
Часто задаваемые вопросы
Что произойдёт, если не указать аргументы? Вернётся 0:
print(int()) # 0
Можно ли использовать int() для преобразования чисел с плавающей запятой? Да, дробная часть будет отброшена:
print(int(5.99)) # 5
Как работает int() с системами счисления? Для строк можно указать основание системы счисления (от 2 до 36):
print(int("1A", 16)) # 26 (шестнадцатеричная система)
Можно ли преобразовать булевые значения? Да, True преобразуется в 1, а False в 0:
print(int(True)) # 1 print(int(False)) # 0
Что делать, если строка содержит дробное число? Используйте преобразование через float:
print(int(float("3.14"))) # 3
Работает ли int() с объектами? Да, если объект реализует метод __int__:
class CustomNumber: def __int__(self): return 42 print(int(CustomNumber())) # 42