forループ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
Pythonの制御構造には、ほかのプログラミング言語と同様に、ループ(繰り返し)と条件分岐が備わっています。
まずは、ループの代表格である、forループ。
forループの書き方
for i in range(10): print i
Pythonのforループでは、範囲指定に「range(10)」という風にします。
その後に、「:」(コロン)をつけることで、次の行からがまとめて実行されるブロックであることを表します。
Rubyのブロック「{ }」と同じように、ブロックを特別な部分として表すようになっています。
また、2行目の「 print i」には、インデントが必ず必要です。
Pythonでは、ループの範囲を指定するときに、{ }(波括弧)などを使わずに、コードのインデントだけで表します。
ソースコード中のインデントが、他言語に比べて極めて重要な役割を担い、この性質のおかげで、誰が書いても同じような読みやすいインデントに統一できるというメリットがあるようです。
上記のスクリプトの実行結果は・・・
0 1 2 3 4 5 6 7 8 9
となります。
繰り返しの範囲を指定したい場合は、range(1, 8)と、開始と終了の位置を指定します。
range(1, 8)と指定してやると、1~7の範囲でループされます。
for i in range(1, 8): print i
実行結果は、以下の通り。
1 2 3 4 5 6 7
forループのステップ指定
また、ステップ(増加分)を指定してやると、指定したステップを増やしながら、ループします。
for i in range(5, 20, 4): print i
開始位置5、終了位置20、で4ずつ増えていきますから、実行結果は以下の通り。
5 9 13 17
内部的には、range(5)は・・・
[0, 1, 2, 3, 4]というリストを生成する関数です。
ですから、forループには、リストを直接指定することもできます。
for i in [5, 7, 2, 9, 10]: print i
実行結果。
5 7 2 9 10
こいういった、for in 文は、JavaScriptに似ていますね。
ここまで勉強してきて、Pythonはサーバーサイド言語ではありますけど、JavaScriptに似ているなぁ、という印象です。
あと、オブジェクト指向やブロックの考え方、メソッドの記述の仕方とかは、Rubyにそっくりですね。
PythonやRubyは、比較的新しい言語であるためか、PerlやPHPよりも、より洗練されていて学びやすい印象を受けます。
forループでの文字列からの文字抜き出し
最後に・・・
Pythonでは、文字列もリストと同じような、コレクションというデータ型の一部となります。
ゆえに、以下のような荒業チックな書き方も通ります。
for i in 'Programing Python': print i
実行結果。
P r o g r a m i n g P y t h o n
文字列が、先頭から一つずつ「i」に代入されて、表示されます。
- - 関連記事 -
- 三項式
- inによる条件式
- 比較演算子・論理演算子
- if~elif~elseの条件分岐
- whileループ