TypeError: неподдерживаемый тип операндов для -: 'str' и 'int'
Новое для python и программирования, почему я получаю эту ошибку?
def cat_n_times(s, n):
while s != 0:
print(n)
s = s - 1
text = input("What would you like the computer to repeat back to you: ")
num = input("How many times: ")
cat_n_times(num, text)
Ответы
Ответ 1
-
Причина, по которой это терпит неудачу, заключается в том, что (Python 3) input
возвращает строку. Чтобы преобразовать его в целое число, используйте int(some_string)
.
-
Обычно вы не отслеживаете индексы вручную в Python. Лучшим способом реализации такой функции было бы
def cat_n_times(s, n):
for i in range(n):
print(s)
text = input("What would you like the computer to repeat back to you: ")
num = int(input("How many times: ")) # Convert to an int immediately.
cat_n_times(text, num)
-
Я немного изменил ваш API выше. Мне кажется, что n
должно быть количество раз, а s
должно быть строкой.
Ответ 2
Для дальнейшего использования Python строго типизирован. В отличие от других динамических языков, он не будет автоматически отбрасывать объекты из одного типа или другого (скажем от str
до int
), поэтому вы должны сделать это самостоятельно. Вам понравится в долгосрочной перспективе, поверьте мне!
Ответ 3
Я думаю, что вы должны добавить() к вашему "бла, бла"