/
Вопросы и ответы
/
Python
/

Почему возникает ошибка “int() can't convert non-string with explicit base”?

Почему возникает ошибка “int() can't convert non-string with explicit base”?

При попытке использовать функцию int() с указанием системы счисления возникает ошибка:
int() can't convert non-string with explicit base.
Почему это происходит, и почему проблема исчезает, если предварительно преобразовать аргументы в строки?

10 часов назад

Nikolai Gagarinov

Ответы

1

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

Формат вызова выглядит так:

int(value, base)

Если указан base, то value должен быть строкой, а не числом или другим типом. Например:

int("10", 2)   # корректно
int(10, 2)     # вызовет ошибку

Поэтому при передаче нестрокового аргумента появляется ошибка: функция не может интерпретировать его как число в заданной системе счисления. После преобразования аргументов a и b в строки вызов становится валидным, и ошибка исчезает.

10 часов назад

Nikolai Gagarinov