Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Pythonの基本的な文法(3) : 繰り返し (for文)

次に「繰り返し」について学びます.


繰り返しの基本

プログラミングにおいては,同じ処理を何度も実行させたいときがあります. 次のコードを見てみましょう.

x = 0

x = x + 1
print('xの値は{0}です.'.format(x))

x = x + 1
print('xの値は{0}です.'.format(x))

x = x + 1
print('xの値は{0}です.'.format(x))

x = x + 1
print('xの値は{0}です.'.format(x))

このコードでは,「 x に 1 を足して結果を出力させる」ことを4回繰り返しています. このコードの実行結果は次のとおりです.

xの値は1です.
xの値は2です.
xの値は3です.
xの値は4です.

'x'の中身が上書きされて,表示される数値が1ずつ増えていることがわかります.

4回繰り返すだけならコードの量は大したことはありませんが, これが10回,100回...ともっと処理を繰り返したいときがあります. そうなると,単にコピー&ペーストするにも負担が大きくなりますし,長いコードとなって読みにくくなります.

そういった際に,繰り返し処理(forループ) が役に立ちます. 次のコードは上のコードをforループで書き換えたものです.

x = 0
for i in range(4):
	x = x+1
	print('xの値は{0}です.'.format(x))

3行目の for は「次のブロックを繰り返し処理する」ことを意味します. つまり,4~5行目のブロックで書いた「 x に 1 を足して結果を出力させる」ことを繰り返してくれます.

繰り返す回数は for と同じ行の in のあとで指定できます.ここでは range(4) と書いています. 「range」は「範囲」を意味する英単語ですね.range( )の括弧内の数値で範囲を指定します. そして range(3) は 「0~3 の4つの数字」を示します. Pythonでは 0 がスタートの数値となりますので,範囲は 1~4 ではなく 0~3 になることに注意です.

念のため,上のコードの実行結果を確認しましょう.

xの値は1です.
xの値は2です.
xの値は3です.
xの値は4です.

forループ の書き方

それでは for ループの書き方について簡単にコメントします.

for の書き方ルール
  • 次の形式で繰り返し処理を行う.
for 変数 in シーケンス:
    繰り返し処理したいコード
  • シーケンス部分で繰り返しを制御する.例えばシーケンス部分に range( ) を書き,括弧内に繰り返し総数を指定する.
  • シーケンス部分にリストを使用した場合,繰り返しごとにリスト内の要素を順番に取り出す.繰り返し総数はリストの要素数となる.

リストの形式

数字や文字列をまとめて格納する「リスト」という形式がPythonには用意されています. 使い方は簡単で,角括弧 [ ] の中に数字や文字を入れてカンマで区切るだけです. 例えば,下のようにリストを作ることができます.

Nums = [1, 2, 3, 5, 7] # 数字を並べたリスト
Fruits = ['オレンジ', 'りんご', 'バナナ'] # 文字列を並べたリスト

また,リストに要素を追加することもできます.次のコードを眺めてみましょう.

Fruits.append('キウイ')

「append」は「追加する」という英単語です.つまり Fruits に追加するので,Fruits.append( ) と書きます.削除などもできますが,各自で調べてみてください.


リストを使った繰り返し

リストを使って for ループを作ることもできます. それではコード 05_for_check.py を見てみましょう. 実行結果は次のようになります.

1番目に好きなフルーツはオレンジです.
2番目に好きなフルーツはりんごです.
3番目に好きなフルーツはバナナです.
4番目に好きなフルーツはキウイです.

このコードにあるリストを使った for ループの命令部分を見てみましょう.

for fruit_ in Fruits:

これは,ループのたびに Fruits の要素を先頭から順に取り出し, 変数 fruit_ に代入することを意味します. なので fruit_ には1ループ目は 'オレンジ' が入って処理ブロックを処理します.2ループ目は fruit_'りんご' が入って処理ブロックを処理して…を繰り返します. リスト Fruitsappend('キウイ') で要素を追加した結果,要素数が全部で4になるので,for ループの繰り返し総数は4回となっています.

ちなみに,append によって追加される要素はリストの末尾になります.たしかに「キウイ」が最後に出力されていることが確認できます.


インクリメントによる繰り返し回数の把握

先ほどの 05_for_check.py にある変数 i に注目しましょう. 変数 ifor ループを繰り返した回数をカウントする役割を持っています.

まず for ループが始まる前に i = 1 と初期値を与えます. そして for ループ内の i = i + 1 で,繰り返しごとに i の値を1ずつ増やしています. これは出力される表示の「○番目」の数字からも確認することができます.

このような「1ずつ増える」処理を「インクリメント」と呼びます. インクリメントは for ループではよく使います.


練習問題

練習問題 7: forループと要素の取り出し1

リスト内の要素は, [ ] と数字で取り出すことができます. 例えば,次のコードはリスト Alphabet の1番目の要素と4番目の要素を取り出して表示しています(0番目から数えてです).

Alphabet = ['A', 'B', 'C', 'D', 'E']
print(Alphabet[1])	# A
print(Alphabet[4])	# E

それではこの性質を利用して for ループを作ってみましょう. コード 05_for_exercise.py を修正して,先ほどの 05_for_check.py と同じ結果が出力されるようにしましょう.

ただし,コードにある for ループ

for k in range(4):

には手を加えないでください. k にはループを繰り返した回数(0からスタート)が入ります.

練習問題 8: forループと要素の取り出し2

次のリスト内の要素をすべて足した結果を表示するコードを書きましょう. for ループをうまく使ってください.

Numbers = [1, 1, 2, 3, 5, 8, 13, 21, 34]

ヒント: リスト Numbers の要素を1つずつ取り出し,足し合わせます.for ループの前にあらかじめ変数 result = 0 を用意して,要素を足し合わせていきましょう.


演習課題

演習課題 3: forループとif文

次のリストの要素にある 'オレンジ' の個数を数えましょう. for ループと if 文をうまく使ってください.

A = ['オレンジ', 'りんご', 'バナナ', 'オレンジ', 'ぶどう', 'ぶどう', 'オレンジ']

ヒント: if 文を使って,リスト A の要素ごとに 「'オレンジ'と等しいかどうか」を判定して,等しい場合に結果を保存する変数をインクリメントします.


チャレンジ課題

チャレンジ課題 1: 特別forループとif文

次のリストの要素にある 'りんご' の個数と 'ぶどう' の個数を数えましょう. for ループと if 文をうまく使ってください.

A = ['オレンジ', 'りんご', 'バナナ', 'オレンジ', 'ぶどう', 'ぶどう', 'オレンジ']
B = ['りんご', 'オレンジ', 'オレンジ', 'ぶどう', 'りんご', 'ぶどう', 'オレンジ']

なお、それぞれの 'りんご''ぶどう' の個数を表示し、 'りんご''ぶどう' の合わせた個数も表示する.


< 前へ | トップに戻る | 次へ >