TypeError: неподдерживаемый тип (типы) операнда для-: 'ул.' и 'интервал'

В новинку для 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)
47
задан YOU 4 March 2010 в 02:38
поделиться

2 ответа

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

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

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

52
ответ дан 26 November 2019 в 19:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: