В новинку для 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 строго типизирован . В отличие от других динамических языков, он не будет автоматически приводить объекты из одного или другого типа (скажем, из str
в int
), поэтому вы должны сделать это самостоятельно. Вам это понравится в долгосрочной перспективе, поверьте мне!
Причина неудачи в том, что (Python 3) input
возвращает строку. Чтобы преобразовать ее в целое число, используйте int(some_string)
.
В Python вы обычно не отслеживаете индексы вручную. Лучшим способом реализации такой функции будет
def cat_n_times(s, n):
for i in range(n):
print(s)
text = input("Что бы вы хотели, чтобы компьютер повторил вам: ")
num = int(input("Сколько раз: ")) # Сразу же преобразуем в int.
cat_n_times(text, num)
Я немного изменил ваш API выше. Мне кажется, что n
должно быть количеством раз, а s
должно быть строкой.