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関数が想定より多く実行されることがあります。
ループ条件を正しく理解し、リストの長さや要素の追加タイミングを意識することで、意図した回数だけ出力されるコードを書くことができます。

コメント