Подтвердить что ты не робот

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)
4b9b3361

Ответ 1

  1. Причина, по которой это терпит неудачу, заключается в том, что (Python 3) input возвращает строку. Чтобы преобразовать его в целое число, используйте int(some_string).

  2. Обычно вы не отслеживаете индексы вручную в 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)
    
  3. Я немного изменил ваш API выше. Мне кажется, что n должно быть количество раз, а s должно быть строкой.

Ответ 2

Для дальнейшего использования Python строго типизирован. В отличие от других динамических языков, он не будет автоматически отбрасывать объекты из одного типа или другого (скажем от str до int), поэтому вы должны сделать это самостоятельно. Вам понравится в долгосрочной перспективе, поверьте мне!

Ответ 3

Я думаю, что вы должны добавить() к вашему "бла, бла"