EAT-SLEEP-CODE-REPEAT

Life is too short. Programming book is too thick. I am too lazy to practice all.

Python/Error

[파이썬 에러]Traceback (most recent call last): File "main.py", line 8, in <module> print(strReverse(value)) File "main.py", line 4, in strReverse result.append(str[len(str)-i])IndexError: string index out of range 의미/해결방법

codeho 2020. 12. 20. 21:48
반응형

[파이썬 에러]Traceback (most recent call last):  File "main.py", line 8, in <module>    print(strReverse(value))  File "main.py", line 4, in strReverse result.append(str[len(str)-i])IndexError: string index out of range 

 

[ 파이썬   에러 ]Traceback (most recent call last):    File "main.py", line 8, in <module>      print(strReverse(value))    File "main.py", line 4, in strReverse      result.append(str[len(str)-i])IndexError: string index out of range 

line 8과 line4에 에러가 발생했지만 4번만 보면 된다. 

 

[ 파이썬   에러 ]Traceback (most recent call last):    File "main.py", line 8, in <module>      print(strReverse(value))    File "main.py", line 4, in strReverse      result.append(str[len(str)-i])IndexError: string index out of range 

 

IndexError(인데스 에러)가 발생했는데, 문자열의 인덱스을 벗어났다고(string index out of range) 한다. 

 

for문에서 있는 range에 인수가 1개라서 0부터 문자열의 길이(len(str))만큼 i가 증가한다. 여기서 문자열의 길이가 4라면 i의 값은 0~3까지 이다. 마지막 숫자는 포함하지 않기 때문. 즉, i가 0일 때 4번 줄에 append(str[len(str)-i])은 문자열 길이 값 그대로 들어갈테고, 인덱스를 벗어났다는 오류가 발생한다. 

 

[ 파이썬   에러 ]Traceback (most recent call last):    File "main.py", line 8, in <module>      print(strReverse(value))    File "main.py", line 4, in strReverse      result.append(str[len(str)-i])IndexError: string index out of range 

 

해결 방법으로는 range함수에 '시작 값'으로 1을 넣어준다. 총 인수가 두 개로써 range(start, end)가 되는것이다. 

반응형