スポンサーリンク

コードが書ける!数式が書ける!AAが書ける!スタンプが貼れる!

無料の匿名掲示板型SNS「このはちゃんねる

新規会員募集中!

【Python】よくわかるfor文の書き方、rangeの使い方【入門第21回】

104, 2019-08-14

目次

for文とは?

こんにちは、narupoです。

今回はPythonのfor文をやりたいと思います。
for文は、単純作業を自動化したい時に使われます

たとえば幽霊が皿を数えるとしましょう。
皿を数えるごとに「皿がn枚……」とprintするわけです。
皿が100枚とかあったらめんどくさいですよね。
でもfor文が使えれば簡単に書くことが出来ます。

この記事では↓を見ていきます。

  • for文の書き方
  • rangeの使い方
  • rangeの正体

for文はif文と同じく、プログラミングでは無くてはならないメジャーな文です。
この記事で覚えておきましょう。

for文の書き方

for文は↓のように書きます。

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

このfor文は「4回繰り返せ」というfor文です。
このfor文を実行すると、↓のような結果になります。

0
1
2
3

1つずつ見ていきましょう。

まずforの部分です。これはそのまま、forと書くのが約束です。これがfor文と言われるゆえんです。
次にiですが、これはカウント変数と呼ばれています。
↑のfor文ではコロン(:)以下のインデントされたコードが4回実行されますが、回数が増えるごとにこのカウント変数の値が増加します。
次にinですが、これはfor文の一部です。
その次のrange(4)は、値の範囲を設定しています。range()の中の数値が繰り返す回数です。
i in range(4)というのは、range(4)からカウント変数を取り出していると見ることも出来ますね。
その次にコロン(:)を書きます。そしてこのコロン以降のインデントされたコードが、for文で実行されます。

つまり、↑のfor文は↓のように捉えることが出来ます。

for カウント変数 in range(繰り返す回数):
    print(カウント変数)

先ほどのfor文を改造して8回繰り返すようにして見ましょう。
その場合は↓のようにします。

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

range(4)range(8)になっていますね。
カウント変数の出力方法も変えてみましょう。

for i in range(8):
    print(i, '回目のループです')

↑のコードの実行結果は↓のようになります。

0 回目のループです
1 回目のループです
2 回目のループです
3 回目のループです
4 回目のループです
5 回目のループです
6 回目のループです
7 回目のループです

このようにカウント変数は0ベース(0オリジン)でカウントされます。
コロン(:)以降のインデントされたコードはもちろん複数書くことができます。
たとえば↓のようにです。

for i in range(2):
    print('これが何回目のループか')
    print('おれたちゃ知らない')
    print('知りたくもない')

↑のコードの実行結果は↓のようになります。

これが何回目のループか
おれたちゃ知らない
知りたくもない
これが何回目のループか
おれたちゃ知らない
知りたくもない

rangeの使い方

for文でループの方法を制御するには、rangeの使い方を覚える必要があります。
たとえば0から4までループを回したい時は↓のようにしました。

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

これは↓のように書き直すことも出来ます。

for i in range(0, 4):
    print(i)

rangerange(0, 4)になっていますね。
これは「0から4より下まで」という意味です。
range(4)のようにすると、rangeは勝手にrange(0, 4)のように解釈します。
よって、range(4)と書いてもrange(0, 4)と書いても同じ意味になります。

2から4より下まで」という条件でループしたい場合は↓のようにします。

for i in range(2, 4):
    print(i)

↑のコードの実行結果は↓のようになります。

2
3

開始位置が2からになり、終了位置が4より下までになっています。

rangeはデフォルトでは1ずつカウントします。
このカウント量を変更したい場合はrangeの3番目に数値を指定します。

for i in range(0, 4, 2):
    print(i)

↑のコードの実行結果は↓のようになります。

0
2

カウントが2ずつになっていますね。
もちろん3にしたり10にしたりすることも可能です。

for i in range(0, 9, 3):
    print(i)

for i in range(0, 50, 10):
    print(i)

3番目の数値は負数を指定することも出来ます。
負数を指定するとカウント変数を減らしていくことが可能です。
たとえば「4から0より上まで1ずつ減らしていく」場合は↓のようにします。

for i in range(4, 0, -1):
    print(i)

↑のコードの実行結果は↓のようになります。

4
3
2
1

負数も-2とか-10とか、好きな値を指定できます。

rangeの正体

ここらへんはちょっと難しい話なので、興味のない人はスルーしてOKです。
rangeとはいったいなんなのか? という話です。

rangeはPythonに組み込まれているクラスです。
いままでtypeというのも使ってきましたが、このtypeもクラスなので、同じものです。
このようにPythonには最初から組み込まれている(最初から何もしなくても利用できる)クラスや関数やオブジェクトがたくさんあります。

rangeにカッコ(())をつけると、Pythonはrangeクラスからオブジェクトを生成します。
そのオブジェクトはfor文で回せる仕様になっています。
このようなオブジェクトをPythonではシーケンス型と言います。
シーケンス型のオブジェクトはrangeのほかにもlisttupleがあります。

おわりに

for文は機能が多いので、次回もfor文をやりたいと思います。
基本的なことはこの記事に書いてあるので、なんとなーくfor文を使えるようになりたい人はこの記事を読むようにしてください。

for文を覚えると、プログラミングのだいご味である「大量の単純作業の自動化」が可能になります。
for文を使えるようになってパソコンの性能をいかんなく発揮しましょう。

以上、次回に続きます。

また見てね

関連動画

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク