Посмотрите на ваши сообщения об ошибках, там сказано, что вы не можете сравнить между int
и str
. В этом случае i
имеет значение int
, а max
имеет значение str
. Это связано с тем, что функция input
возвращает значение типа str
. Вы должны проверить, подходит ли это значение, а затем привести его к типу int
. Тип приведения будет выглядеть так: max = int(max)
. Будьте осторожны, потому что это вызовет ошибку, если значение, предоставленное пользователем, не может быть приведено к int
(если они, например, предоставляют «a» в качестве ввода, которое не может быть приведено к int
)
Вы можете изменить строку с while i < max:
на while i < int(max)
или переназначить параметр max
на int(max)
перед его сравнением. Вам также нужно будет выполнить аналогичное приведение для nb
Кстати, здесь ошибка не «ошибка трассировки», а TypeError
. Функция трассировки показывает, где произошла ошибка, а затем отслеживает через ваш код, чтобы показать, где произошел каждый вызов функции, приведший к этой ошибке.