**セクション6 **フロー制御ステートメント
みなさん、こんにちは。今日学ぶ文法的な知識は「フローコントロールステートメント」と呼ばれています。
以前のコースを振り返ると、Python構文に関する定数と変数、演算子と式について学び、いくつかの組み込み関数(input()とprint())にも触れましたが、まだ正式には関数を導入していません。概念。前後を数えて、たくさんのpythonコードを書きましたが、それらはすべて実行できます。 !
しかし、これまでのところ、私たちのプログラムは、いくつかの割り当ての問題、計算の問題を解決する、つまり、式の範囲内の問題を解決することができるように思われるため、常に質問があります。巨視的には、それはまだ一点の範囲内にあり、そのような小さな火花で「輝き」ます。ビジネスプロセスで継続的な問題に直面するなど、複雑な問題が発生した場合、どのように解決しますか?
したがって、私たちの文法システム、または私たちの知識構造は、引き続き充実し、改善される必要があります。これらの基本的な文法上の定義に加えて、プログラムフロー制御ステートメントの導入を必要とする比較的複雑な問題を処理する機能もあります。
はい、このクラスでは、pythonに焦点を当てます。
1つ、判断文
この図は、判断ステートメント(ifステートメントとも呼ばれます)の論理プロセスのフローチャートを示しています。
ifステートメントの基本的な文法構造は次のとおりです。
状態判断の場合:
ステートメントブロック1
else:
ステートメントブロック2
**説明:**この文の構造を見て、私たちは何を考えることができますか?とにかく、私が最初に考えたのは、小学校の中国語で学んだ中国語の文法構造でした。実際、それはもともとこれを意味し、深遠なものは何もありませんでした。
**# 例:6-1 **
画面に入力された文字列を変数aに割り当て、3に等しいかどうかを判断します。等しい場合は「テスト合格」と表示され、そうでない場合は「テスト終了」と表示されます。
a = input( '入力してください:')
if a=='3':
print( 'テストに合格しました!')
else:
print( 'テストは終了しました!')
3つの特徴があります:
2、ブランチステートメント
ifステートメントの変形、複数の条件付き判断ステートメント
条件判断の場合1:
ステートメントブロック1
elif条件判断2:
ステートメントブロック2
elif条件判断3:
ステートメントブロック3
else:
ステートメントブロック4
**注:**前の判断ステートメントと比較して、この文法構造は実際にいくつかの可能性を追加します。つまり、ステートメント実行のプロセスはいくつかのブランチを追加します。その論理的思考と論理的関係はまったく同じです。
**# 例:6-2 **
画面に入力した文字列を変数aに割り当て、aの値が1、2、3に等しいかどうかを判断し、等しい場合は「エントリーレベル」、「通常レベル」、「エリートレベル」をそれぞれ表示します。そうでない場合(両方が等しい場合)いいえ)「テスト終了」と表示されます。
a =入力( "入力してください:")
if a=='1':
印刷(「エントリーレベル!」)
elif a=='2':
印刷(「通常レベル!」)
elif a=='3':
印刷(「エリート!」)
else:
印刷(「テストは終了しました!」)
特徴は次のように要約されます:
3つ目は、ループ内のステートメント
ループステートメントを使用すると、ステートメントまたはステートメントグループを繰り返し実行できます。
(1)、whileループ
状態判定中:
ステートメントブロック1
(break)
else:
ステートメントブロック2
説明: whileループステートメントの実行フローは次のようになります。設定条件が確立されると、ステートメントブロック1が繰り返し実行されます。それが実行されるたびに、条件が確立され続けているかどうかをチェックしますか?条件が確立されていない場合、elseに続くステートメントが実行されます。ステートメントブロック1では、ループを終了するための追加条件を設定することもできます。追加条件が確立されると、実行(ブレーク)はループを終了します。このとき、ステートメントブロック2は再度実行されません。
**# 例:6-3 **
これは推測番号ゲームです。画面では、文字列(変数に割り当てられます)を入力するように求められ、入力(a)が「9」に等しくないかどうかを判断します。等しくない場合は、新しい文字列を入力するようにユーザーに通知し続けます。そうでない場合は、画面に「おめでとうございます!ご想像のとおり」と表示されます。
a = input( '入力してください:')
while a! = '9':
print( "再入力してください!")
a = input( '入力してください:')
else:
print( "おめでとうございます!ご想像のとおりです。")
whileループステートメントを要約すると、その特徴は次のとおりです。
(2)、forループ
順番にi_varの場合:
ステートメントブロック1
else:
ステートメントブロック2
説明: forループは、ビット0から始まり、ループするたびに値の1つを取り、シーケンスの終わりまでステートメントブロック1をループし、ループを終了して、ステートメントブロック2を実行するシーケンスをトラバースします。
以下に特別な注意を払う必要があります:
forループとwhileループは、ループ条件の設定が根本的に異なります。 whileループの条件は、真の関係式、つまり論理的な判断であり、その結果は真か偽かだけであり、ループを継続するかどうかを決定します。ただし、forループは非常に特殊であり、その条件付き判断は「トラバーサルプロセス」です。つまり、forループは、トラバーサルが終了するまで、常にオブジェクトのシーケンスをトラバースします(シーケンスを構成する各要素をチェックします)。 (チェックが完了しました)、サイクルを終了できます。もちろん、ループ本体の実行可能ステートメントブロックにブレークアウト条件を含めることもでき、条件が満たされ、ループを早期に終了してジャンプアウトすることもできます。シーケンスオブジェクトをトラバースするforループの特性により、これを「反復ステートメント」と呼ぶことがよくあり、トラバースのプロセスは「反復」プロセスになっています。
PS:文字列はシーケンスタイプのデータであることに加えて、将来的にはより多くのシーケンスタイプのデータ構造に遭遇するでしょう。シーケンスタイプデータには、次の3つの重要な特性があります。(1)インデックス(つまり、シーケンス番号、0から数える)、(2)値:各インデックスシーケンス番号の値、(3)長さ:シーケンス要素の総数、これは常に最大インデックス値より1大きい値です(インデックスは0からカウントされるため)。たとえば、「abc」の場合、インデックス0はa、インデックス1はb、インデックス2はc、長さは3です。
**次の例では、文字列のシーケンスをチェックして、どの文字が含まれているかを確認し、表示します。次の例6-4は、反復プロセスで取得された各文字を直接表示します。例6-5は、インデックスをトラバースしてループし、シーケンスのインデックスとインデックスに対応する値を表示します。 ****
**# 例:6-4 **
a = ”abcde”
for x in a:
print(x)
else:
print( "終わった!")
**# 例:6-5 **
a = "abcde"
for index in range(len(a)):
print(index,a[index])
else:
print( "インデックスの終わり!")
PS:例6-5では、次のように説明されている2つの組み込み関数が使用されています
(1)** len()**は、pythonの組み込み関数であり、オブジェクトのシーケンスの長さを取得するために使用されます。
(2)** range()**もpythonの組み込み関数であり、0から始まり、指定された数値の前の値までの整数の連続シーケンスを作成するために使用されます。
例:range(6)は、「0,1,2,3,4,5」の番号シーケンスを取得します。
特徴は次のように要約されます:
概要
このセクションでは、3つのフロー制御ステートメント(判断、分岐、ループ)について学習しました。if、while、for、およびそれらに関連するbreakステートメントとcontinueステートメントです。これらはPythonで最も一般的に使用されるステートメントであり、構文は非常に単純です。
特別な注意が必要です。他の言語の経験がある学生の場合、 pythonのこれらのフロー制御ステートメントは、他の言語(C / C ++など)と比較して明らかな違いがあります。
要約すると、違いは次のとおりです。
**(1)本文(親文)の末尾にコロンがあります。 ****
(2)すべてのステートメントの最後にセミコロンはありません。
(3)すべての条件判断に括弧はありません。
Recommended Posts