ユーニックス総合研究所

  • home
  • archives
  • python-continue

仕事が出来る人のPythonのcontinue文の使い方

  • 作成日: 2022-04-01
  • 更新日: 2023-12-25
  • カテゴリ: Python

仕事が出来る人のPythonのcontinue文の使い方

Pythonには「continue文」という文があります。
これを使うとループ処理中にループを1つスキップすることができます。

いわゆる「仕事が出来る人」はこのPythonのcontinue文をどのように使うのでしょうか?
この記事ではPythonのcontinue文の基本的な使い方を解説し、仕事が出来る人がcontinue文をどう使うかを解説します。

この記事を読めばPython使いとして1つスキルアップ! ……できるかもしれません。

関連記事

頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
形態素解析で代名詞+助詞+名詞を文章から抜き出す【Python, 自然言語処理, Janome】
在宅・未経験、Pythonで稼ぐ方法は?【取引・宣伝・広告】

頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
目が覚めるC言語のdo-while文の使い方【ループ処理、初心者向け】
状態遷移による文字列パースのテクニック【Python】
形態素解析で代名詞+助詞+名詞を文章から抜き出す【Python, 自然言語処理, Janome】

continueb文の基本的な使い方

Pythonのcontinue文はループ文の中で使える文です。
ループ文はfor文やwhile文になります。

ループ文の外ではcontinue文は使うことができません。
たとえば↓のようにcontinue文だけを書いてもエラーになります。

continue  
File "err.py", line 1  
    continue  
    ^  
SyntaxError: 'continue' not properly in loop  

for文とcontinue文

for文の中でcontinue文を使う場合は例えば↓のように書けます。

for i in range(4):  
    print('hello')  
    continue  
    print('world')  

↑のコードを実行すると↓のような結果になります。

hello  
hello  
hello  
hello  

continue文をループの中で書いて実行すると、continue文以降にある処理はスキップされます。
↑のコードではループが4回回ります。
print('hello')は4回実行されますが、print('world')はcontinue文でスキップされるため実行されません。

if文とcontinue文を組み合わせるとより複雑な条件でループをスキップできます。
たとえばカウント変数iが2の倍数だったらスキップしたい場合は↓のように書きます。

for i in range(4):  
    if i % 2 == 0:  
        continue  
    print(i)  
1  
3  

↑の出力結果を見てもわかるようにカウント変数が「0」や「2」だった場合はループがスキップされています。
このようにif文とcontinue文を組み合わせると高度な処理も書くことができます。

while文とcontinue文

while文でcontinue文を使う場合もfor文と同じです。
while文の中でcontinue文を書くとループをスキップできます。

i = 0  
while i < 4:  
    i += 1  
    print('hello')  
    continue  
    print('world')  
hello  
hello  
hello  
hello  

while文の中でカウント変数を使ったループを書く場合、continue文を使うのは注意が必要です。
カウント変数のインクリメントがスキップされてしまうと、while文が無限ループになる場合もあります。
while文では手動でカウント変数を増加させますので、その辺は注意が必要です。

仕事が出来る人のcontinue文の使い方

なぜ「仕事が出来る人のcontinue文の使い方」と言えるのでしょうか。
これはいわゆるすごいライブラリの開発者などをフォローしているとわかります。
そういった人のコードを見ると、ここで紹介するようなcontinue文の使い方をしていることが多いからです。

では仕事が出来る人のcontinue文はどういうものでしょうか。
これはまずシチュエーションを考えましょう。

あるループがあって、そのループに変数で入力を与えます。
変数の値は複数に場合分けされています。
この変数の値によって処理を分岐したい場合があります。

そういう時は↓のようにif文を使うのが普通です。

for i in range(4):  
    if i == 0:  
        print('zero')  
    elif i == 1:  
        print('one')  
    elif i == 2:  
        print('two')  
    elif i == 3:  
        print('three')  

確かにこれでもいいのですが、1つの処理が終了したらループをスキップすればif文を長々と書く必要もなくなります。
↓のようにです。

for i in range(4):  
    if i == 0:  
        print('zero')  
        continue  

    if i == 1:  
        print('one')  
        continue  

    if i == 2:  
        print('two')  
        continue  

    if i == 3:  
        print('three')  
        continue  

このようにfor文を書くと、1つのif文を長々と書く必要がなくなります。

🦝 < いやいや、コード長くなってるけど?

はい。確かにこの方法はコードが長くなります。
ですので時と場合によって選択すべき方法です。
全ての場合においてこのcontinue文を書いた方法が便利になるとは限りません。

この方法の利点はif文を分けることで柔軟性が上がることです。
たとえば1つのif文で処理を実行させて、残りのif文の処理も実行させたい場合などは↓のように書けます。

for i in range(4):  
    if i == 0:  
        print('zero')  

    if i == 0 or i == 1:  
        print('zero or one')  
        continue  

1つの目のif文でcontinue文を省略することで、それ以降のif文の処理も実行させることができます。
このようにif文を分割することで対応できる処理の幅が広がり、コードの柔軟性が上がります。
これは分割統治的な考えから言っても合理的と言えます。

ただしこの方法は前述のように多少コードが長くなる副作用があります。
ですので全ての場合において有効とは言えません。
if文の柔軟性を上げたい場合はcontinueやreturnを使った方法を組み合わせると吉かもしれません。

おわりに

今回は仕事が出来る人のPythonのcontinue文の使い方を解説しました。
仕事が出来る人は柔軟にコードを書きます。
それは一見するとはっとするようなコードであることが多いです。
仕事が出来る人の思想を吸収するのは良いことだと言えるでしょう。

🦝 < 仕事できるようになりたい

🐭 < me too