Pythonでのリスト操作とループ処理の基本:printで想定外の出力が出る理由

プログラミング

Pythonでリストを操作する際、ループ処理や条件文の書き方によっては、予期せぬ出力が表示されることがあります。本記事では、初心者がよく直面する「printで複数回出力される」現象について解説します。

whileループの条件とリスト操作の基本

Pythonのwhileループは、指定した条件がTrueである間、ブロック内の処理を繰り返します。リストの長さを条件にする場合、len()関数でリストの要素数を確認します。

例えば、catalog = []として、while len(catalog) > 3:とすると、初期状態ではlen(catalog)は0なので、条件がFalseとなり、ループは一度も実行されません。

print()が複数回表示される理由

print関数はループの中に書かれている場合、そのループが回るたびに出力されます。ループ条件が誤っていると、想定通りの回数にならず、結果的に出力が複数回表示されるように見えることがあります。

例えば、条件をwhile len(catalog) < 3:とすることで、catalogに3つの要素が入るまでループが回り、入力ごとにprint(‘catalog:’, catalog)が表示されます。

コード例と修正ポイント

正しい例としては以下のように書きます。

catalog = []
while len(catalog) < 3: item = input('item: ') catalog.append(item) print('catalog:', catalog)

この場合、catalogに要素が追加されるたびに現在のリストが表示され、3つ入力後にループが終了します。条件を逆にしてしまうとループが開始されず、出力が意図しない動きになります。

具体例:入力と出力の関係

入力: item1 → 出力: catalog: ['item1']

入力: item2 → 出力: catalog: ['item1', 'item2']

入力: item3 → 出力: catalog: ['item1', 'item2', 'item3']

このように、ループ条件とリスト操作を理解することで、printが複数回表示される理由が明確になります。

まとめ:Pythonでのリストループのポイント

Pythonでリストを使ったループ処理では、条件式の設定が非常に重要です。ループ条件が誤っていると、print関数が想定より多く実行されることがあります。

ループ条件を正しく理解し、リストの長さや要素の追加タイミングを意識することで、意図した回数だけ出力されるコードを書くことができます。

コメント

タイトルとURLをコピーしました