Где ошибка? В чём я не прав? Not all arguments converted during string formatting

введите сюда описание изображения Где ошибка? В чём я не прав? Not all arguments converted during string formatting


Ответы (1 шт):

Автор решения: 4500zenja

Даже после выполнения команды i = bin(i)[2:] переменная остаётся строкой, а не числом, поэтому операция взятия остатка для строки не существует.

Полагаю, Вы забыли привести результат к типу int:

i = int(bin(i)[2:])

UPD: если смотреть на другую часть кода, то тогда можно привести к int только i в условии: if int(i) % 2 == 0. В конце концов, даже если i и стала двоичным числом, операция взятия остатка не изменяется: для нечётных число будет ...1, для чётных — ...0.

→ Ссылка