【Python】range関数の使い方全10パターンを徹底解説

Python

(最終更新月:2022年2月)

✔このような方へ向けて書かれた記事となります

「range関数って何?どんなことができるの?」

「実際にrange関数を作ってみたい。やり方全部教えて!」

「rangeオブジェクトから値を取得する方法は?for文だけなの??」

✔当記事を通じてお伝えすること

  • range関数とは?range関数では何ができる?
  • range関数の使い方 10パターン全て公開
  • rangeオブジェクトから値を取得する
profile_icon

【Python歴】10年 x 【営業マン歴】11年

HP作成、社内システムの構築、コンサルティング

Pythonベースのフレームワーク 「Django」を使って下記のようなサイトを作っています!

日報アプリ
当ブログで一から開発方法を解説している日報アプリ(デモ版)です
ツールアプリ
当ブログで紹介したPythonアプリのWeb版です。DjangoAPIとReactで開発。随時更新中です。

✔月9,800円でWebデザインが学べる

デザナルは、Webデザインに苦手意識がある方におすすめのサブスク型スクールです。

特徴は以下の通り。

  • 初期費用不要
  • 教材が使い放題
  • 案件で収入も得られる

デザナルは稼ぎながら学べる、格安のWebデザインスクールです。

>>詳細はこちら<<

安いWebデザインスクール「デザナル」を徹底分析

range関数とは?range関数では何ができる?

range関数とは、リストやタプルなどのデータ構造体に値を格納せずに、指定した範囲の連続した数値を返すことができる関数です。

range関数により返されるのはイテラブルなオブジェクトとなり、戻り値はfor文、もしくは配列などに変換する必要があります。

>>> type(range(10))
<class 'range'>
>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4

通常の配列とは違い、メモリへの格納が不要です。使用するメリットとしては、大きな数値を扱いながらもコンピューターへの負担を最小限に抑えることが可能になることが挙げられます。

rangeオブジェクトの使い方 10パターン全て公開

基本的には、

range(start, stop, step)

という記述方法です。

  • startは「範囲の始まり」
  • stopは「範囲の終わり」
  • stepは「数字の向きと何個ごとに出力するか」

を意味しています。

とは言いましてもなかなかイメージもわかないので10個のパターン全てをご紹介します。

0から始まる

range(範囲の終わり)

>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4

数値は範囲の終わりの一つ手前まで出力されます。

引数一つの場合は、startは0、入力した値を範囲の終わりとみなします。

startが0以外

range(範囲の始まり、範囲の終わり)

>>> for i in range(3,10):
...     print(i)
... 
3
4
5
6
7
8
9

1個飛ばし

range(範囲の始まり、範囲の終わり、何個ずつか)

>>> for i in range(1,10,2):
...     print(i)
... 
1
3
5
7
9

逆順

2通りあります。

①range(範囲の始まり, 範囲の終わり, -1)

>>> for i in range(10, 1, -1):
...     print(i)
... 
10
9
8
7
6
5
4
3
2

②reversed(range(範囲の始まり, 範囲の終わり)

>>> for i in reversed(range(1,10)):
...     print(i)
... 
9
8
7
6
5
4
3
2
1

空のオブジェクトを作成

range(0)

>>> for i in range(0):
...     print(i)
...

マイナスのオブジェクト

range(範囲の始まり、範囲の終わり、-1)

>>> for i in range(0, -10, -1):
...     print(i)
... 
0
-1
-2
-3
-4
-5
-6
-7
-8
-9

小数点で作成

小数点で範囲の指定はできません。

>>> for i in range(1.0, 10.0):
...     print(i)
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer

リスト化

list(range(範囲の指定))

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

タプル化

tuple(range(10))

>>> tuple(range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Python2における「xrange」

xrange(start, stop, step)

>>> xrange(1,10,1)
(1, 2, 3, 4, 5, 6, 7, 8, 9)

rangeオブジェクトから値を取得する

値を取得する方法は主に2通りです。

  • for文を使う
  • オフセットを指定する

一つずつ見ていきます。

for文を使う

>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4

オフセットを指定する

>>> range(5)[3]
3

まとめ

当記事の内容をまとめていきます。

range関数とは、リストやタプルなどのデータ構造体に値を格納せずに、指定した範囲の連続した数値を返すことができる関数です。

range関数を使用するメリットは、メモリの消費がとても少ないことと言えます。

具体的にrangeを使った例を上げていくと、

  1. 0から始まる
  2. startが0以外
  3. 1個飛ばし
  4. 逆順
  5. 空のオブジェクトを作成
  6. マイナスのオブジェクト
  7. 小数点で作成
  8. リスト化
  9. タプル化
  10. Python2での記述方法

特に興味があるものは、例を見ながらご自身でもターミナルを開いて使ってみて下さい。

Pythonでホームページが作れるのをご存知でしょうか?

当ブログでは、PythonをベースとしたDjangoフレームワークを使って一からホームページを作成、公開するまでを解説しているブログになります

最終的には、下記リンク先のような日報アプリを開発、公開できるように進めていきます

https://nippo.itc-app.site/
ようこそ!簡易日報アプリ「D-Repo」へ!こちらは無料で使える日報アプリのデモサイトになります!「Webアプリはとてもカンタンで便利!」を感じてみよう!

興味のある方はシリーズの記事が一覧となっている↓のページをご覧ください

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました