Новичок в 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)
Причиной сбоя является то, что (Python 3) input возвращает строку.Чтобы преобразовать его в целое число, используйте int(some_string).
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 должно быть строка .
n
s
Для дальнейшего использования Python строго типизирован . В отличие от других динамических языков, он не будет автоматически приводить объекты одного или другого типа (скажем, от str до int), поэтому вы должны сделать это самостоятельно. Тебе это понравится в долгосрочной перспективе, поверь мне!
str
int