MENU

1-10 繰り返し処理 for

同じ処理を何度も実行することを「繰り返し処理」または「ループ」と呼びます。プログラミングでは非常に重要な概念です。

for を使った繰り返し処理が必要な場面

  • 1から10まで数字を表示したい。
  • ある数字から別の数字までの合計を足し算したい。
  • 年利3%でお金を預けたときの10年間の預金額の推移

1. for文の構造

for 変数 in 集まり:
    くり返したい処理

意味は、「集まりの中から1つずつ取り出して処理する」です。

たとえば、変数 i1,2,5,10という数字を順番に入れて処理するような場合に for を使います

 for i in [1,2,5,10]:
    print(i)

forifelseと同じ制御構文でコロンで終わります。コロンの次の行はインデントによって範囲指定されたブロックで制御構文の処理する範囲を指定します。
上記の for の行の[1,2,5,10]はリストと言います。リストは角括弧を使います。文字列も可能です。

files = ["photo.jpg", "doc.pdf", "image.png", "cat.jpg"]
for f in files:
     print(f)

これを用いれば、文字列を1文字ずつ取り出して判定することができます。

text = "T3aB48xyz"
for c in text:
    if c.isupper() :
        print(f"{c}は大文字です")

2. range() 関数

for とセットでよく使われるのはrange()です。range() は、連続した整数の列を作るための関数です。

range() は、引数をひとつだけ指定すると、0から開始して、整数のリストになります。

for i in range(5):
    print(i)

range() は、引数として開始値終了値-1を指定することができます。

for i in range(123,127):
    print(i)

range() は、引数として開始値終了値-1, 増え方のステップを指定することができます。

for i in range(123,132,3):
    print(i)

3. for と range() を利用したプログラム

同じ作業を4回繰り返したいとき

for i in range(4):
    print("Wow!") 

1万円を年利3%で預けた時の経過年数とそのときの預金額。(for文は累積処理に長けている。)

money=10000
for year in range(4):
    print(f"{year}年のとき{money}円")
    money= money * 1.03 

11から19までの数を二乗した数を表示

for i in range(11,20):
    x = i ** 2
    print(f"{i}×{i}={x}") 

4. 出力を横に並べる方法

通常、print()は出力後に自動的に改行して出力が画面上で縦に並びます。これを横に並べて1行に出力したいときは、print コマンドの中にオプション end=" "を指定すると、改行の代わりにスペースを出力します。

for x in range(1,10):
    print(x,end=" ") 

数学で数列にしたいときにはコンマ区切りにします。

for x in range(1,10):
    print(x,end=", ") 

5. 繰り返しのネスト

繰り返しループの中に繰り返しループを入れて、繰り返しをネストすることができます。

2つの値 x と y の和を表示する。yを1から4まで動かし、そのそれぞれに対して、xを1から7まで動かすという2重のループを走らせる。

for y in range(1,5):
    for x in range(1,7):
        total = x + y
        print(total,end=" ")
    print() 

上記のコードでは、y=1のときにxを変化させて1行、そして y=2のときにxを変化させて1行と、合計4行の行列ができる。ただし、1桁のところと2桁のところで列がずれるので、f文字を使ってつぎのように書くとそれぞれの値を2桁で表示することになるので、列が揃います。

for y in range(1,5):
    for x in range(1,8):
        total = x + y
        print(f"{total:2}",end=" ")
    print() 

罫線をつけたければ、以下のように書きます。

print(f"----------------------")
for y in range(1,5):
    print("",end="|")
    for x in range(1,8):
        total = x + y
        print(f"{total:2}",end="|")
    print()
    print(f"----------------------") 

コメント

コメントする