[解決済み] pythonのGOTOに相当するもの [重複]。
質問
私は独学でpython2.7を勉強しています。私はGOTOステートメントを持っているBATCHを使用するいくつかの経験を持っています。 pythonでそれを行うにはどうすればよいですか?例えば、私が5行目から18行目にジャンプしたいとします。
このトピックに関する過去の質問があることは承知していますが、十分な情報が得られなかったり、私の現在の理解にはpythonのレベルが高すぎたりしています。
どのように解決するのですか?
Goto
は、非常に非構造的なコードにつながるため、コンピュータサイエンスやプログラミングでは普遍的に嫌われています。
Python は (今日のほとんどすべてのプログラミング言語と同様に) 構造化プログラミング は、if/then/else、ループ、サブルーチンを使ってフローを制御します。
構造化された方法で考えるための鍵は、コード上でどのように、そしてなぜ分岐しているのかを理解することです。
例えば、Pythonに
goto
と対応する
label
ステートメント
震える
. 次のコードを見てください。この中で、ある数字が0以上であれば、それを表示しています。
number = input()
if number < 0: goto negative
if number % 2 == 0:
print "even"
else:
print "odd"
goto end
label: negative
print "negative"
label: end
print "all done"
もし、あるコードがいつ実行されたかを知りたければ、プログラムの中を注意深くトレースバックして、ラベルがどのようにたどり着いたかを調べる必要があります - これは実際にはできないことです。
例えば、上記を次のように書き換えることができます。
number = input()
goto check
label: negative
print "negative"
goto end
label: check
if number < 0: goto negative
if number % 2 == 0:
print "even"
else:
print "odd"
goto end
label: end
print "all done"
ここで、quot;end"に到達する方法は2通りあり、どちらが選ばれたかはわからない。プログラムが大きくなると、このような問題はさらに深刻になり スパゲッティ・コード
それに比べて、以下はどうでしょう。 となる このプログラムをPythonで書いてみましょう。
number = input()
if number >= 0:
if number % 2 == 0:
print "even"
else:
print "odd"
else:
print "negative"
print "all done"
のツリーを辿ることで、ある特定のコード行を見て、それがどのような条件で満たされているかを知ることができるのです。
if/then/else
の中にあるブロックです。例えば、次の行は
print "odd"
が実行されると
((number >= 0) == True) and ((number % 2 == 0) == False)
.
関連
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
Python カメの描画コマンドとその例
-
Python jiabaライブラリの使用方法について説明
-
python implement mysql add delete check change サンプルコード
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み] CまたはC++の良いゴトの例 [終了しました]。