2017-11-11 41 views
0

コマンドライン引数を繰り返して文字列内の各文字がアルファベットであるかどうかを確認しようとしています。argv(Python)をループしている間にエラーが発生しました

はTypeError:文字列のインデックスは

import sys 

k = sys.argv[1] 

if len(sys.argv) != 2: 
    print("Error.") 
    return 1 
else: 
    for i in k: 
     if k[i].isalpha() == False: 
      return 1 
      print("Error.") 
+0

あなたは 'argv'をループしていません。あなたは 'argv'の最初の項目の文字をループしています。これはおそらくあなたがしようとしているものですが、それは明確ではありません。 ''abc'.isalpha()';を実行すると、文字列がアルファベットかどうかを確認できます。それぞれのキャラクターを個別にチェックする必要はありません。 –

答えて

2

変更の整数でなければなりません これはif i.isalpha() == False:

にelseステートメント内のステートメントは、kの値をループの繰り返し処理のためとは、変数を設定するためなら、私と等しいk [i]

forループをインデックスに設定する場合は、forループを次のように変更する必要があります。

for i in range(k): 
+0

これは意味があります。ありがとうございました。私はPythonが文字通り "for i IN ___"を意味することを知らなかったので、forループを代入して変数[i] solutionを使用しなければならないCではなく、既に索引を繰り返しています。 –

関連する問題