Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2022 22:33:42

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помогите исправить ошибку TypeError: must be str, not int

m1r42
и, о чудо теперь можно не заморачиваться с типами str и int
если метод требует на вход тип int, то ведь можно об этом позаботиться вне этого метода. привести в нужный тип. Почему то картинка вспомнилась

Отредактировано xam1816 (Ноя. 8, 2022 22:34:16)

Офлайн

#2 Ноя. 9, 2022 08:41:15

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

Помогите исправить ошибку TypeError: must be str, not int

py.user.next
Это всё, конечно, интересно, но там весь модуль random надо пересматривать, потому что это не единственный подобный баг в нём. Когда он писался, то время прошло уже давно, а ошибки старые остались, которые для современного питона смотрятся как-то сопливо.
А почему это надо считать багом? Ведь интерпретатор правильно сообщает об ошибке.

Офлайн

#3 Ноя. 9, 2022 08:43:31

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

Помогите исправить ошибку TypeError: must be str, not int

xam1816
если метод требует на вход тип int, то ведь можно об этом позаботиться вне этого метода. привести в нужный тип. Почему то картинка вспомнилась
Минутка юмора. Вот и я о том же.

Офлайн

#4 Ноя. 9, 2022 10:11:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Помогите исправить ошибку TypeError: must be str, not int

m1r42
А почему это надо считать багом? Ведь интерпретатор правильно сообщает об ошибке.
Он не сообщает, что аргументы для функции randint() не того типа. Этот случай использования функции randint() не учтён и фактически выпадает именно внутренний код, когда пытается это выполнить. Хорошо, что он выпал и что-то вывел на экран, а мог бы и неправильно сработать втихую и выдать какой-то якобы правильный результат.

Вот примеры правильных обработок аргументов не того типа
  
>>> 'abc'.split(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str or None, not int
>>>
>>> ''.join(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only join an iterable
>>>
>>> import math
>>> 
>>> math.cos('x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be real number, not str
>>>



Отредактировано py.user.next (Ноя. 9, 2022 10:18:26)

Офлайн

#5 Ноя. 9, 2022 13:17:37

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

Помогите исправить ошибку TypeError: must be str, not int

py.user.next
Он не сообщает, что аргументы для функции randint() не того типа. Этот случай использования функции randint() не учтён и фактически выпадает именно внутренний код, когда пытается это выполнить. Хорошо, что он выпал и что-то вывел на экран, а мог бы и неправильно сработать втихую и выдать какой-то якобы правильный результат.
Понял.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version