はじめに
どのプログラミング言語を使用するとしても、私たちは皆「if-else」ステートメントを書きますが、「for-else」はどうでしょうか?
C、C、Java などの多くの言語では、ループの後に「else」を使用することは完全に間違っています。しかし、Python はエレガントな言語として、この「奇妙だが便利」な機能を備えています。正しく使用すれば、コードはよりクリーンになります。
この記事では、Python の "for-else" 関数を紹介し、簡単な例を通してその正しい使用方法を説明します。
「For-Else」機能の基礎知識
「for-Else」機能は、初めて見ると奇妙に見えてわかりにくいと思います。 (この関数を最初に使い始めたとき、else のインデントが間違っていると誤って考えてしまいがちでした)。しかし実際には、その使い方は驚くほど簡単です。一文だけで十分です。コード内の「else」ブロックは、ループに中断がない場合にのみ実行されます。
ちょっと単純すぎて真実ではないように思えませんか?例を見てみましょう:
leaders = ["Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Not found Yang!
上に示したように: 上に示したように、リーダー リストには「Yang」が含まれていないため、for ループには中断がありません。したがって、「else」ブロックが実行され、情報が出力されます。
リーダーリストに「陽」が含まれている場合はどうなりますか?
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Yang is a leader!
上に示したように、リーダー リストに「Yang」が含まれているため、for ループが中断され、「else」ブロックの内容は実行されません。
つまり、for-else 機能自体を理解することは難しくありませんが、それを正しく上手に使用することは難しくありません。以下に、for-else 機能が適した 3 つのシナリオを紹介します。
For-Else 関数を使用する 3 つのシナリオ
Python プログラムでは、必ずしも for-else 機能を使用する必要はありません。正直に言うと、これがなくても同じことができますが、これを使用するとコードがよりエレガントになります。
1. マークされていない要素を反復して検索する
リストを反復して特定の要素を見つけるのが、ループを使用する基本的なシナリオです。通常、ターゲット要素が見つかった場合、繰り返しを続けるのは意味が無く、ループから抜け出す必要があります。問題は、要素が見つかったかどうかをどうやって知るかということです。
従来の解決策は、「マーク」変数を定義し、特定の項目が見つかったときにそれを True に設定することです。
leaders = ["Yang", "Elon", "Tim", "Warren"] have_yang = False for i in leaders: if i == "Yang": have_yang = True # Do something break if have_yang == False: # no yang ...# Do others
上の例に示すように、have_yang 変数はフラグです。 for ループが完了した後、その値が False であれば、「Yang」がリストにないことがわかり、他の操作を行うことができます。
この方法でも十分ですが、Python の「エレガントな」機能を活用したい場合は、for-else を使用することもできます。
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": have_yang = True # Do something break else:# no yang ...# Do others
この書き方は次のようになります。すっきり見えますよね?
2. ネストされたループから抜け出すために使用されます
For-else は、コード内にネストされたループがある場合にも役立ちます。
for i in range(5): for j in range(5): if j == 2 and i == 0: break if not (j == 2 and i == 0): continue break
上で示したように、内側のループが抜けているかどうかを知る必要があるため、入れ子になったループから抜け出すのは少し困難です。
上記のコードは、内部ループが中断されたかどうかを判断するためのぎこちない解決策を示しています。確かに正常に動作しますが、for-else を使用することでよりきれいにできます:
# use the for-else syntax for i in range(5): for j in range(5): if j == 2 and i == 0: break else:# only execute when it's no break in the inner loop continue break
3. 例外の処理を支援します
nums = [1, 3, 0, 5] for denominator in nums: try: 20/denominator except ZeroDivisionError: break else:# no found ZeroDivisionError ...# Do others
上記のように、for ループ内の場合はいいえZeroDivisionError が発生すると、「else」ブロックで対応する後続の操作を実行できます。
概要
Python の for-else 機能は最初は少し奇妙に思えるかもしれませんが、その使用法を理解するのは難しくなく、特定のシナリオで使用できます。その有用性。結局のところ、覚えておくべきルールは 1 つだけです。「else」ブロックは、ループに中断がない場合にのみ実行されるということです。
以上がFor-else: Python の奇妙だが便利な機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
