2017-04-15 4 views
-2

-Hello!ユーザーはこのケースでは、文字列、[「ABC」、「DEF」、「GHI」]を入力すると、私のような私の機能の外観の出力を持つようにしようとしていますので、後:不適切な出力 - 理由について混乱しています

['abc', 'def', 'ghi] 
1 abc 
2 def 
3 ghi 

- これは私の関数であります:

import read_lines 

lines = [] 

print(lines) 

ci = 0 

contin = True 

while contin: 

    if len(lines) <= ci: 

      contin = False 

    else: 

      line = lines[ci] 

      ci += 1 

      print(ci, line) 

-Howeverは、出力のみを示しています

['abc', 'def', 'ghi'] 
[] 

側の注:私は私の宿題のために、whileループを使用する必要があります。

+2

あなたの問題を説明するものにあなたのタイトルを変更してくださいはありません。あなたがここに投稿しているなら、あなたは助けが必要なので、それをタイトルに含めることはあまり役に立ちません。 – Carcigenicate

+0

それを強調表示してctrl + kを押すことによってコードをフォーマットします。 – Carcigenicate

+2

[python:list index out of range error]の重複している可能性があります(http://stackoverflow.com/questions/1798796/python-list-index-out-of-range-error) – Carcigenicate

答えて

1

if len(lines) < ci':の後に<=記号が必要です。私はそれが2つの看板よりも少ないかどうかのタイプミスであるかどうか分からない。プログラムが実行されると、ciに1が追加されます。最終的には、+= 1のためci = 4(私は確信しています)ですが、コンピュータは3を3未満と認識しないため、elseステートメントに続き、インデックスが範囲外であることを示しています。何もあなたのリスト4のインデックスのみ0、1、および2

EDIT

else: 
    line = lines[ci] 
    ci += 1 
    print(ci, line)  
+0

ありがとうございました!それは間違いなくエラーメッセージを出します。しかし、今はリストを印刷しますが、印刷はしません(ci、line)。助言がありますか? – Panda1234

+0

@ Panda1234 'else'ステートメントの最後に' print(ci、line) 'があることを確認してください。私は – Goalieman

+0

を持っている 'else'ステートメントにコードを投稿しますので、それが正しいことを確認するためにあなたのものと一緒に更新しました。出力は最初にリストを出力しますが、その後に[]を印刷します – Panda1234

関連する問題