IndexError: строковый индекс вне диапазона 2018 python 3 - PullRequest
0 голосов
/ 22 октября 2018

Этот код в основном отражает введенную вами строку.Я получаю

Type something please: Hey Hello                                                                                                                                                        
Traceback (most recent call last):                                                                                                                                                      
  File "Week3Basic1.py", line 13, in <module>                                                                                                                                           
    mirror(input("Type something please: "))                                                                                                                                            
  File "Week3Basic1.py", line 9, in mirror                                                                                                                                              
    result = last+  mirror(middle) + first                                                                                                                                              
  File "Week3Basic1.py", line 9, in mirror                                                                                                                                              
    result = last+  mirror(middle) + first                                                                                                                                              
  File "Week3Basic1.py", line 9, in mirror                                                                                                                                              
    result = last+  mirror(middle) + first                                                                                                                                              
  File "Week3Basic1.py", line 4, in mirror                                                                                                                                              
    first= string[0]                                                                                                                                                                    
IndexError: string index out of range  

Код:

def mirror(string):

      first= string[0]
      middle= string[1:-2]
      last= string[-1]


      result = last+  mirror(middle) + first

      print (result)

    mirror(input("Type something please: "))

1 Ответ

0 голосов
/ 22 октября 2018

Для правильной работы ваша функция предполагает, что длина ввода не менее двух символов.

В то же время она рекурсивно вызывает себя для сокращенной версии ввода - необходимо учитывать, когдаи как эта цепочка рекурсивных вызовов должна прекратиться.

Этот аспект, о котором вам нужно подумать, называется базовый случай .

...