ホームページ  >  記事  >  バックエンド開発  >  Python で複数のループを中断するためのアイデアを棚卸しする

Python で複数のループを中断するためのアイデアを棚卸しする

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼転載
2019-09-26 17:37:092191ブラウズ

Python で複数のループを中断するためのアイデアを棚卸しする

I. 単一ループからの脱出

プログラミング言語が何であっても、ループから抜け出す必要がある場合があります。列挙時などのループは、条件を満たす数値が見つかった時点で終了します。単一ループから抜け出すことは、次のように非常に簡単です。

for i in range(10):
    if i > 5:
        print i
        break

ただし、複数のループから抜け出す必要がある場合があり、break は次のように 1 つのループからのみ抜け出すことができます。

for i in range(10):
    for j in range(10):
        if i+j > 5:
            print i,j
            break

そのようなコードはありません。 i j > 5 のグループが見つかったら停止すると言われていますが、break は for j in range (10) ループから飛び出すだけなので、連続して 10 個のグループが見つかります。では、どうすれば多重加重カテゴリーから抜け出すことができるのでしょうか?ここにメモを書きます。

関連する推奨事項: 「Python チュートリアル

II. 複数のループからの脱出

実際には、標準構文Python の基本的な考え方は、複数のループから抜け出すことをサポートしていないため、関数として記述する、デカルト積を使用する、デバッグを使用するといういくつかのテクニックのみを使用できます。

もちろん、最も一般的なアイデアは、変数表記を使用することです。

def f():
    flag = 0
    for i in range(10):
        for j in range(i):
            if i+j>5:
                print i,j
                flag = 1
                break
        if flag == 1:
            break
if __name__ == "__main__":
    f()

関数として記述します

Python では、関数は次の値に達すると停止します。したがって、この機能を使用して、関数を複数のループを終了する関数として記述することができます。

例:

def work():
    for i in range(10):
        for j in range(10):
            if i+j > 5:
                return i,j
print work()

デカルト積を使用する

この方法のアイデアは、単一の領域から飛び出すことができるため、単一ループの場合、itertools でデカルト積関数積を使用できます。例:

from itertools import product
for i,j in product(range(10), range(10)):
    if i+j > 5:
        print i,j
        break

デバッグ モードを使用します

デカルト積法は非常に賢く、非常にシンプルですが、各ループのコレクションが独立している場合にのみ使用でき、ループの各レベルが前のレベルと密接に関連している場合、この手法は使用できません。このとき、最初のメソッドを使用して関数として記述することもできますし、デバッグモードを使用することもできます。これは、デバッグ モードでエラーが発生するとすぐに終了するという原理を利用し、エラーを偽装します。

rree

以上がPython で複数のループを中断するためのアイデアを棚卸しするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。