PythonのGotoステートメントについて知っておくべきことすべて



この記事では、Pythonでのgotoステートメントの詳細で包括的な知識とその制限と例を提供します。

は、今日の業界で最も人気のあるオペレーティングシステムの1つです。アマチュアからプロのユーザーまで、誰もがPythonを使用していますが、それでもまだ発見されていない側面がいくつかあります。 Pythonのそのような側面の1つは、ネイティブのgotoステートメントです。したがって、この記事では、Pythonでのgotoステートメントについて次の順序で説明します。

後藤文とは?

gotoステートメントは、同じ関数のコンテンツでgotoステートメントから宛先としてマークされたステートメントへの無条件ジャンプを提供する構文またはコードの一部として簡単に定義できます。簡単に言えば、プログラムがその間に特定の数の関数をスキップするようにしたい場合は、gotoステートメントを使用する必要があります。





PythonLogo-goto-statement-in-python注意: ほとんどのプログラマーの間でgotoステートメントを使用する可能性は非常に高いですが、gotoステートメントが存在するとプログラムフローの追跡が困難になることが多いため、監査目的では推奨されない場合があります。いずれかの状況で、プログラマーがプログラムの内容を変更して変更を加える必要がある場合、gotoステートメントが関数の一部を都合よくジャンプするため、正確な宛先を見つけることが困難になります。

構文



Pythonでのgotoステートメントの構文は次のとおりです。

#Syntax-1gotoラベル。 。 。ラベル:#Syntax-2ラベル:。 。 。 gotoラベル

上記の例では、ラベルは、キーワードGoを除いて、必要な任意のテキストに置き換えることができ、プログラム内の任意の場所(goステートメントの下または上)に設定できます。



Javaのデータ構造とは

クイックファクト: gotoステートメントは2004年4月1日にジョークとして最初にリリースされましたが、世界中のプログラマーがそれを真剣に受け止め、使い始めました。

後藤文の繰り返し

Pythonのgotoステートメントと同じように機能する別のコードは次のとおりです。から来る。どちらもから来るそしてそのgotoステートメントは、Pythonのプログラム全体に柔軟性を追加するため、プログラムフローメカニズムを制御できるようになり、以前は範囲外だったフローイディオムを制御するためのアクセシビリティも含まれます。

gotoとgotoの両方を使用するためにから来るPythonのステートメントでは、最初にそれらをメインライブラリにインポートする必要があります。これを行うには、以下のコードを入力します。

gotoからimportgoto、comefrom、label

ライブラリがインポートされると、プログラム全体でこれらの両方の関数を便利に使用できます。

Pythonでgotoステートメントを使用する場合、基本的には、現在のコードではなく、別のコード行を直接実行するようにインタープリターに指示します。インタプリタに現時点で実行させたいコードのターゲット行は、「ラベル」と呼ばれるセクションでマークする必要があります。ラベルタグについて注意すべきことの1つは、それらはほとんどランダムで任意のPython識別子であり、接頭辞は1つのドットです。例label.myLabel。

計算されたGotoステートメント

ほとんどのプログラマーがPythonで使用するgotoステートメントの最も一般的なバリエーションの1つは、計算されたgotoステートメントです。これでは、コードの最初にPythonインデックスについて言及し、後でハッシュタグを使用してそれを参照します。例、

x = calculateLabelName()goto * x

注意: 上記のステートメントのxの値には、この前の例で説明したプレフィックスドットを含めないでください。

から来る

Pythonでは、から来るステートメントは基本的にgotoステートメントの反対です。最も簡単な言葉で言えば、インタプリタに対するその機能は、「ラベルXに到達するたびに、代わりにここにジャンプする」というステートメントで説明できます。

の例から来る実行中のステートメントは以下に記載されています。

#...コード1 .. ..

ラベル。どこか

#...コード2 .. ..

配列c ++を昇順で並べ替える

どこかから来る

上記のステートメントでは、コード2は実行されません。インタプリタが行ラベル.somewhereに到達すると、次の行に直接スキップします。から来る。どこか。

について注意すべきもう1つの重要な側面から来るステートメントは、ほとんどの場合、プログラミングのデバッグ支援として使用されるという事実です。そのスタンドアロンのプログラミング操作での使用は、不便でサポート的な結果につながる可能性があるため、ほとんどお勧めできません。

PythonのGotoステートメントの制限

他のコーディングプラットフォームやコード行と同様に、Pythonもgotoステートメントとcomefromステートメントの両方で実行できることに対していくつかの制限を課しています。以下に挙げるのは、gotoステートメントとcomefromステートメントの両方で最も一般的な制限の一部です。

  1. ループの途中に飛び込む、または 最終的に これらのステートメントのいずれかを使用して句を使用することはできません。

  2. これらのステートメントのいずれかを使用して、関数やモジュール間をジャンプすることはできません。

  3. そもそも例外行がないため、例外行にジャンプするために使用することはできません。

#例1:深くネストされたループから抜け出す:

gotoからimportgoto、範囲内のiのラベル(1、10):範囲内のjの場合(1、20):範囲内のkの場合(1、30):k == 3の場合はi、j、kを出力します:goto。 end label .end print'Finishedn '

#例2:何かが失敗した後のクリーンアップ:

goto import goto、label#からこれらが実際のワーカー関数であると想像してください。 def setUp():print'setUp 'def doFirstTask():print 1 return True def doSecondTask():print 2 return True def doThirdTask():print 3 return False#これは失敗したふりをします。 def doFourthTask():print 4 return True def cleanUp():print'cleanUp '#これは、doThirdTaskが失敗するため、' setUp、1、2、3、cleanUp'-no'4 'を出力します。 def bigFunction1():setUp()if not doFirstTask():goto .cleanup if not doSecondTask():goto .cleanup if not doThirdTask():goto .cleanup if not doFourthTask():goto .cleanup label .cleanup cleanUp() bigFunction1()print'bigFunction1 donen '

gotoステートメントは、Pythonは、監査とデバッグのニーズに関して最も役立つものの1つです。日常のプログラミングで使用できる場合もありますが、頻繁に使用すると、驚くべき結果が生じる場合があります。

これで、Pythonの記事のこのgotoステートメントは終わりです。 Pythonとそのさまざまなアプリケーションに関する深い知識を得るには、次のことができます。 24時間年中無休のサポートと生涯アクセスを備えたライブオンライントレーニング用。

質問がありますか? 「PythonのGotoステートメント」のコメントセクションでそれらに言及してください。折り返しご連絡いたします。