sec03 - range()関数を使いこなす:Pythonでの数値シーケンスの基本と応用
スポンサーリンク

range()関数を使いこなす

このレクチャーでは、for文と一緒に使われるrange()関数について深掘りします。

range()関数の基本

基本的に、range()は引数に整数を渡すと0から順番に数値を返す関数ですが、引数を複数渡すと、listのスライスのように生成される数値の範囲を制御できます。

引数と出力される整数

  • range(n): 0から、nの1つ手前までの整数を返します
    • nマイナスの値0で指定すると数値を返さないため、for文の繰り返しは一度も実行されずに終了します
    • nを1以上にすると、n回繰り返されることになります
      • range(3): 0 → 1 → 2
  • range(n, m): nから、mの1つ手前までの整数を返します
    • n < m の関係になるように引数を渡します
      • range(1, 5): 1 → 2 → 3 → 4
    • n > m の場合、何も返しません
      • range(5, 1): # 何も返さない
    • n < m であれば、マイナスの値も指定できます
      • range(-5, 0): -5 → -4 → -3 → -2 → -1
  • range(n, m, step): step数を入力すると、range(n, m)の範囲内でstep数ごとに要素を抽出します
    • listのスライスと異なり、nおよびmの値は省略できません
      • range(1, 20, 5): 1 → 6 → 11 → 16
    • stepにマイナスの値を指定することも可能です
      • マイナスの値を指定した場合、逆順に要素が抽出されます。この時、n, mの値は、n > mの関係にないといけません。
      • range(5, 1, -1): 5 → 4 → 3 → 2

1. range(n) の基本

range(n)0 から n-1 までの整数を順番に生成します。

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

出力例:

0
1
2
3
4
スポンサーリンク

2. range(n, m) の使い方

range(n, m)n から m-1 までの整数を順に生成します。listのスライスと異なり、nを省略することはできません。

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

出力例:

2
3
4
5

3. range(n, m, step) でステップ指定

range(n, m, step)n から m-1 までの整数を、stepごとに生成します。stepは正の値でも負の値でも指定可能です。

for i in range(1, 10, 2):
    print(i)

出力例:

1
3
5
7
9

stepに負の値を指定すると、逆順に数値を生成できます。

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

出力例:

5
4
3
2
1
スポンサーリンク