2016-08-25 11 views
0

私は数日前にPythonを学習し始めました。私はGrok Learningを使用しています。挑戦のためには、私が見ることができる限りすべてが働いていますが、私はそれを提出すると "母音で始まるもう一つの事件をテストします"あなたの提出はIndexError型の例外を提起しました。 "私はこれを解決する方法や私が間違っていることさえもわからない。ちなみに私はメッセージあなたは2つだけの手紙を受け取っている母音で始まり、もしそう回10による最初の文字でない場合は、その後回第二の手紙10Python 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 

または1つのライナーを使用します:あなたは次のように、第3の値を定義することができ、その場合処理するに

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

はまあ、これはおそらく、入力されたメッセージの長さを持っているあなたがチェックする必要があります 3よりも少ないことを意味しますメッセージは、それがコンテンツのアクセスを試みる前に十分な長さであればそうでない場合、あなたは確かにそれは `第三= MSG [2]のように見えますIndexError

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