コンテンツ
私はデータ分析と統計に大きな関心を持っているソフトウェア開発者です。
任意のプログラミング言語のループ構造を使用して、一連のステップを指定された回数だけ繰り返し実行します。 Pythonでは、forループとwhileループの2種類のループを使用できます。別のループにループを追加して、Pythonでネストされたループを作成することもできます。
Forループ
繰り返しながら タプルまたはリスト、インデックスを使用して、C / C ++で見られるものと同様の従来のforループを作成するか、Javaで見られるものと同様のfor-each-sequenceループを作成することができます。 forループについてもっと学びましょう。
シーケンスのビルディングブロックを反復処理する
#!/ usr / bin / python3 print( "各行に文字列の文字を出力しています...")for cur in'Hello World! ':print(cur)rhymes = [' Mary '、' Had '、' A ' 、 'Little'、 'Lamb'] print( "各行の韻の単語を印刷しています...")韻の単語の場合:print(word)print( "...最後に到達しました...")
最初のforループでは、文字列「HelloWorld!」シーケンスを取得し、反復を使用して反復します。 変数。一般に、このタイプのforループの構文は次のように表すことができます。
for iter_var in sequence:#forループ内のステップ。
最初の2つのforループは、文字列内の文字とフレーズを表すリスト内の単語が、シーケンスの個々の構成要素としてどのように扱われるかを示しています。
上記のプログラムの出力は次のようになります。
各行に文字列の文字を印刷しています...
H
e
l
l
o
W
o
r
l
d
!
各行の韻に単語を印刷しています...
メアリー
持っていました
A
リトル
子羊...終わりに達した...
このタイプのforループは、タプルまたは辞書の場合にも適用できます。以下のコードは、キーまたはキーと値のペアをシーケンスの構成要素と見なして、辞書を反復処理する方法を示しています。
#!/ usr / bin / python3 print( "Iterating over a dictionary")studentDict = {'firstName': 'john'、 'lastName': 'Smith'、 'age':29、 'studentId':415312} print( "forループでキーのみを使用して反復する")for key in studentDict:print( "key:"、key、 "、value:"、studentDict [key])print( "Iterating using key and value")for foo、bar StudentDict.items():print( "key:"、foo、 "、value:"、bar)print( "...最後に到達しました...")
最初のforループでは、キーのみを使用して辞書を反復処理します。 2番目のforループでは、キーと値の両方が反復変数として使用され、「studentDict」という名前のディクショナリ内の項目を反復処理します。 forループで常に「key」と「value」として名前を指定する必要はないことに注意してください。これを示すために、fooとbarを使用しました。
上記のコードの出力は次のようになります。
辞書を反復処理する
forループでキーのみを使用して反復する
キー:firstName、値:john
キー:studentId、値:415312
キー:lastName、値:Smith
キー:年齢、値:29
キーと値を使用して反復する
キー:firstName、値:john
キー:studentId、値:415312
キー:lastName、値:Smith
キー:年齢、値:29
インデックスと範囲を使用してシーケンスを反復処理
これは、C / C ++ / Javaなどの言語で見られるforループに似ています。特定のシーケンスの要素はインデックスを使用してアクセスされます。
range()関数は、下限としてゼロから始まり、上限のパラメーターとして指定された値までの値の範囲を返すために使用されます。下限と上限に言及することでサブレンジを取得することができます。
たとえば、range(2,6)は2、3、4、5を返しますが、range(3)は0、1、2を返します。次のコードでは、range(len(rhymes))を使用して、Pythonに反復処理を指示します。韻[長さ– 1]まで0、1、2を配置し、値を出力します。
#!/ usr / bin / python3 rhymes = ['Mary'、 'Had'、 'A'、 'Little'、 'Lamb'] print( "インデックスによってアクセスされる新しい行に各単語を出力します。")for index in range (len(rhymes)):print(rhymes [index])
上記のコードの出力は次のようになります。
インデックスによってアクセスされる新しい行に各単語を印刷します。
メアリー
持っていました
A
リトル
Whileループ
whileループの一般的な構文は、次のように表すことができます。
while条件:#これらの手順を実行します
条件が当てはまる限り、ステップを繰り返し実行します。したがって、無限ループは、C / C ++ / Javaで次のコマンドを使用して作成するのと同じように、このwhileループを使用して簡単に記述できます。
test = 1 while test == 1:#これらのステップを無限に実行する
次のプログラムでは、単純なwhileループを使用して11から20までの数値を出力します。
#!/ usr / bin / python3 print( "Counting from 11 to 20")count = 11 while count = 20:print(count)count = count + 1
上記のプログラムの出力は次のようになります。
11から20まで数える
11
12
13
14
15
16
17
18
19
ネストされたループ
ループを別のループ内にネストすることができます。次のサンプルプログラムについて考えてみます。これは、次の方法で数値ピラミッドを印刷するように設計されています。
1
1 2
1 2 3
…
1 23…n
#!/ usr / bin / python3#次のような数値ピラミッドを出力するプログラム:for i in range(1,6):for j in range(1、i + 1):print(j、end = "")print( "")
最初のforループでは、範囲の下限を1に、上限を5 +1に指定します。 2番目のループでは、各行に1からi +1までの範囲を指定します。 printステートメントにはend =”“という名前のパラメーターがあることに注意してください。
これは、同じ行にさらに出力を印刷するようにインタプリタに指示するためのものであり、これらの出力はすべて、示されている特殊文字を使用して分離する必要があります。ステートメントがprint(j、end =’, ’)、すべての数字の末尾にコンマが付きます。上記のプログラムの出力は次のようになります。
1
1 2
1 2 3
1 2 3 4
ループ制御ステートメント
Pythonは、次の3つの制御ステートメントを提供します。
- ブレークステートメント: ループステートメントを終了し、スコープ外の制御をループに続く次のステートメントに移します。
- ステートメントを続ける: これにより、ループはループの残りのステップをスキップしますが、次の反復を続行します。
- パスステートメント: 多くの場合、コードのデバッグに役立ちます。ステートメントが実行されても、実際には何も起こりません。
例を使用して、これらのステートメントについて詳しく見ていきましょう。
#!/ usr / bin / python3 print( 'Welcome'に文字を印刷する 'Welcome'の文字:if letter == 'l':break print(letter、end = "、")print( "" )print( 'lを省略した後のウェルカムレターの印刷') 'Welcome'のレター:if letter == 'l':続行print(letter、end = "、")print( "")print( "パスブロックの追加'Welcome'の文字のlに遭遇したとき "):if letter == 'l':pass print(" ")print(" Encountered pass block ")print(" Continue Printing ")print(letter、end ="、 ")
上記のコードの出力は次のようになります。
ウェルカムで文字lまで文字を印刷する
我々、
lを省略した後の歓迎の手紙の印刷
私たちは来る、
lが検出されたときにパスブロックを追加する
我々、
遭遇したパスブロック
印刷を続ける
l、c、o、m、e、