2016-08-25 2 views
0

며칠 전부터 Python을 배우기 시작했고 Grok Learning을 사용해 왔습니다. 도전에 대해서는 제가 볼 수있는 한 모든 것을 가지고 있지만 제출할 때 "모음으로 시작하는 또 다른 사례를 테스트합니다. 귀하의 제출은 IndexError 유형의 예외를 발생 시켰습니다. 이것은 제출 한 8 행에있었습니다. " 이 문제를 해결하는 방법이나 내가 잘못하고있는 것조차 확실하지 않습니다. 그런데 내가 메시지 당신은 두 개의 편지를 받았다 한 모음으로 시작하면 시간이 너무 (10)에 의해 첫 글자하지 않을 경우 다음 번 두 번째 문자 (10)Python Grok의 IndexError 예외 학습

msg = input("Enter a word: ") 
h = " " 
half =" " 
first = msg[0] 
second = msg[1] 
msg2 = "gg" 
length = len(msg) 
third = msg[2] 
if first not in "aeiou": 
    if second != third: 
    print(msg.replace(msg[1], msg[1] * 10)) 
    elif second == third: 
    msg2 = third * 6 
    msg3 = (msg.replace(msg[2], msg2)) 
    msg4 = first + msg3[2:] 
    print(msg4) 
else: 
    half = first * 10 
    msg10 = msg[1:length] 
     print((half) + msg10) 
+0

를 얻을 수 있습니다 '문제이다. 'msg'에는 3 개의 항목이 없으므로'msg [2]'는'IndexError'를 발생시킵니다 –

답변

0

가 있는지 확인하는 프로그램을 만드는 중이라서 문자열을으로 입력하면 msg[2]에 액세스 할 수 없습니다. 이러한 인덱스가 없기 때문입니다.

if len(msg) > 2: 
    third = msg[2] 
else: 
    third = None 

를 또는 하나의 라이너를 사용 :이 경우를 처리하려면 다음과 같이 제 값을 정의 할 수 있습니다

third = msg[2] if len(msg) > 2 else None 
0

글쎄, 이것은 아마도 입력 메시지 미만 3 당신은 확인해야합니다을 길이가 의미 메시지가, 그것은 콘텐츠의 접근을 시도하기 전에 충분히 긴 경우, 그렇지 않으면 당신은 참으로 그것은`제 = MSG [2]처럼 보이는 IndexError

length = len(msg) 
if length > 2: 
    third = msg[2] 
관련 문제