移動print(resultString)
ループ内に入るようにしてください。
def printString(s,list):
i=0
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
i=i+1
print (resultString)
追加が、非本質的なアドバイス:
for
ループはすでにあなたのために価値を創造し、インクリメントの作業を行いますので、あなたは、i=0
またはi=i+1
を必要としません。 Pythonはその型がどうあるべきかについて何らのヒントなしで関数の途中で新しい変数を作成するために完全に満足しているので、
def printString(s,list):
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)
あなたはresultString=str()
は必要ありません。
def printString(s,list):
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)
あなたは一度だけ、その値を使用しているので、あなたは、必ずしもすべてでresultString
を必要としません。
def printString(s,list):
for i in range(len(list)):
print (s[list[i]])
それはあなたがインデックスの特定のニーズを持っていない場合は、むしろその指標よりも、リストの要素を反復処理することが望ましいです。
def printString(s,list):
for idx in list:
print (s[idx])
組み込み型の名前と同じ変数名を使用しないでください。この結果に
def printString(s,seq):
for idx in seq:
print (s[idx])
ループ自体を改善することができます。範囲(len(list))に続いて 'list [i]'の代わりに 'for i in list '。インデックスを作成してアイテムを取得するための範囲を作成する必要はありません。ループ構造がそれを行います。 – dsh
あなたのコードに関する追加の注記: 'i = 0'は意味がありません。ループで' i'を再利用すると値は上書きされます。 'resultString = str()'の行は、変数を使用する前にループ内の 'resultString'に再割り当てするので、目的を果たせません。最後に、文「i = i + 1」は、ループ構成によって「i」が上書きされるため、目的を果たさない。したがって、プログラムの結果に変更を加えることなく、これらの3行を削除することができます。 – dsh