Python

【Python】range関数の使い方!範囲・最後の判定・初期値など

  • このエントリーをはてなブックマークに追加
  • LINEで送る

Pythonはrange関数で連番が作成できます。

しかし、

どのように作成して良いか今一歩わからないというアナタへ。

『range関数の使い方は?』

『範囲を指定する方法は?』

『最後の判定はドコに境界があるの?』

『始まりを省略した時の初期値は?』

『range関数の戻り値は?』

 

このような疑問に答えます。


SEおっさん
SEおっさん
SE歴20年のオッサンが詳しく解説するぞい!
※保有資格
応用情報技術者/OracleMasterGold/Java EE Webコンポーネントディベロッパ/Pythonエンジニア認定データ分析/簿記2級

【Python】range関数の使い方!範囲・最後の判定・初期値

Pythonでrange関数を使えば、簡単に連番が作成できます。

引数に連番の開始・終了・間隔(増える値)をそれぞれ指定するとOK。

開始値や間隔値は省略することもできるぞい
SEおっさん
SEおっさん

関数仕様は次の通りです。

最後の判定は少しクセがあるので気を付けてみてください。

range 関数
  • 引数
    1. 開始(start)…任意(省略時は0)
    2. 終了(stop)…必須
    3. 間隔(step)…任意(省略時は1)
  • 戻り値
    開始(start)から終了(stop)の直前まで、間隔(step)づつ加算した連続値
  • 戻り値の型
    range 型のオブジェクト

第3引数の間隔(step)は『連番の間隔』という意味です。

カウントアップする量といった方がわかりやすいかも知れません。
(間隔がマイナス値の場合、カウントダウンする量になります)

 

戻り値はrangeオブジェクトで連続値となります。

連続値とは「startからstopの直前までstepづつ加算した値」のことです。

連続値の範囲は次の通り。

stop≦連続値<stop

最後の判定は間違いやすいので注意しましょう。

終了値(stop)は含みません。stopの手前で終了します。

(間隔がマイナス値の場合は不等号が逆になります)
 stop≧連続値>stop

 

省略可能な引数は、開始値(start)と間隔値(step)です。

引数を省略時の初期値は次の通り。

第1引数の始点・始まり(step)を省略時は0

第3引数の間隔(step)を省略時は1

第2引数の終了(stop)は必須。終了は省略不可です。

 

たろちゃん
たろちゃん
うーん。わかり辛いかも…

例文で一緒に見ていこう
SEおっさん
SEおっさん

【Python】range関数の例…リスト化と範囲・最後の判定

range関数の説明だけでは辛かったかもしれません。

range関数を使用した例文で具体例を見ていきましょう。

(例文)
range関数の引数(開始:2、終了:5、間隔1)のケース

x = range(2, 5, 1)
print(x)
print(list(x))
range(2, 5, 1)
[2, 3, 4]

第3引数の間隔に1を指定しているので、1づつカウントアップします。

たろちゃん
たろちゃん
print(x)の実行結果はカウントアップされた連続値じゃないね
range(2, 5, 1)になってるなぁ…

ややこしいところですが、

range関数の戻り値の型はrangeオブジェクトなんです。

なので、

renge関数は連続値を作成しますが、print(x)ではrange(2, 5, 1)となります。

戻り値はrangeオブジェクトじゃ
SEおっさん
SEおっさん

printで連続値が表示するにはリスト化(list型に変換)するとOKです。

print(list(x))の実行結果は[2, 3, 4]になってますね。

第3引数の間隔に1を指定しているので、1づつカウントアップして[2, 3, 4]となります。

たろちゃん
たろちゃん
2から始まってるけど、4で終わってるよ
終了値は5なのに、なんで5で終わらないの?

もう1つ大事なポイントはrangeの終了判定です。

いったい「ドコからドコまで」を連続値の最後と判定するのでしょうか?

 

例文にある終了値が5の終了判定を考えてみましょう。

実行結果の表示は[2, 3, 4]となっています。

終了値は連続値に含まれてません。

実は…

終了値の手前に連続値の境界線があるのです。

例では4と5の間に境界線があります。

イメージはこんな感じです。

1|234|5
 境   境
 界   界

renge(2, 5, 1)で指定した終了値5は、連続値の対象外になります。

開始値の2の手前にも連続値の境界線がありますね。

つまり、

range関数が作成する連続値の範囲は

2≦連続値<5

開始値 ≦連続値<終了値

となります。

最後の判定は間違いやすいので注意しましょう。

引数で指定した終了値は含みません。終了値の手前で終了します。

終了値は対象外じゃ
SEおっさん
SEおっさん

もし、2から5までの連続値を作りたかったら

range(2, 6, 1)と指定すればOKですね。

また、

間隔がマイナス値の場合は不等号が逆になりますが考え方は同じです。

開始値≧連続値>終了値

このように不等号は逆ですが、終了値は含みません。

【Python】range関数の例…始まり省略時の初期値は0

range関数の引数は次の3つあります。

  1. 開始(start)…任意(省略時は0)
  2. 終了(stop)…必須
  3. 間隔(step)…任意(省略時は1)

第1引数と第3引数は省略可能です。

 

省略時の初期値を見ていきましょう。

第1引数を省略時の開始(start)は0

第3引数を省略時の間隔(step)は1

となっていますね。

 

第2引数の終了(stop)は省略不可で必須です。

つづいて例文を見ていこう♪
SEおっさん
SEおっさん

range関数の具体例!引数省略時の初期値

例文で具体例をみていきましょう。

(例文1)range(0, 3, 1)と(例文2)range(3)は同じ結果になります。


(例文1)
range関数の引数(開始:0、終了:3、間隔:1)

x = range(0, 3, 1)
print(list(x))
[0, 1, 2]

(例文2)
range関数の引数(開始:なし、終了:3、間隔:なし)

x = range(3)
print(list(x))
[0, 1, 2]

(例文1)も(例文2)も同じ連続値[0, 1, 2]となっていますね。

【Python】range関数の使い方!まとめ

いかがでしたでしょうか?

range 関数の使い方について説明いたしました。

range関数は簡単に連続値を作成できるので、for文で良く使用されます。

 

振り返ってみましょう!

 

range 関数の基本構文です。

range 関数
  • 引数
    1. 開始(start)…任意(省略時は0)
    2. 終了(stop)…必須
    3. 間隔(step)…任意(省略時は1)
  • 戻り値
    開始(start)から終了(stop)の直前まで、間隔(step)づつ加算した連続値
  • 戻り値の型
    range 型のオブジェクト

 

range 関数の構文詳細です。

連続値と間隔
  • 連続値
    startからstopの直前までstepづつ加算した値
  • 間隔
    プラスの場合…カウントアップする量
    マイナスの場合…カウントダウンする量
連続値の範囲
  • stop≦連続値<stop
    最後の判定に注意
    終了値(stop)は含まず、stopの手前で終了
    (間隔がマイナスの場合は不等号が逆)

引数を省略時の初期値

第1引数の始点・始まり(step)を省略時は0

第3引数の間隔(step)を省略時は1

※第2引数の終了(stop)は省略不可で必須。

range関数は意外と奥が深いですよね。

もう少し掘り下げて、ケーススタディしてみたいかたはコチラ。

【Python】range関数で1から連番・飛ばしの間隔・逆順など
【Python】range関数で1から連番・飛ばしの間隔・逆順など
Pythonのrange関数でチョットした応用をしたいあなたへ。 『1から連番にするには?』 『間隔を飛ばしで連番にするには?』 『逆順にどうやってするの?』 .....

 

range関数はfor文で頻繁に使用します。

range関数でカウントアップした連番をfor文ループでさせるのです。

range関数を使用したfor文は学びたい方はコチラ。

【Python】for文のインクリメントはrangeで変数にinする
【Python】for文のインクリメントはrangeで変数にinする
Pythonのfor文を使ってループしますが、 カウンタをインクリメントする方法が他言語と大きく異なります。 『for文でインデックスのインクリメント方法は?』.....

 

どんなコトでも解ってつもりじゃなく、本当の意味で理解することが重要。

一緒にガンバりましょー

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

プロフィールの詳細

【あきらめんな】未経験からプログラマーに転職する3つの方法!

未経験という理由であきらめてませんか?


『お金は無い!!』

『プログラマに変身したい!!』

『自由に転職活動を行いたい!!』

 

そんな、あなたには…
内定辞退しても無料が消滅しない0円スクール がオススメです。

無料のプログラミングスクールは数多くありますが、
「斡旋企業へ就職しなければ無料が消滅する」
というスクールが乱立しています。

斡旋された企業の内定を辞退したら、高額なお金を支払わなければならないのです。

 

斡旋先がブラック企業かもしれません
(まともなスクールなら無いとは思いますが…)

あなたが自ら動いた転職活動で、理想の企業から内定をもらえたらどうしますか?
苦労して勝ちとった理想の企業を選んだら、スクールから高額な支払いが待っているなんて…



『うぉーー』

ですよね。

 

0円スクール は内定辞退しても無料の条件は消滅しません。

分かりやすく言うと「ハローワークの職業訓練」みたいなものです。
おすすめする理由が、なんとなく分かりましたか?

もし仮に、あなたが0円スクールへ入学すれば…

  1. 現場に必要なスキルを3ヶ月で学習

    プログラミングの基礎からアプリ開発まで

  2. マナー講座の受講

    挨拶・礼儀、来訪・往訪マナーや電話応対練習
    報連相の重要性

  3. IT業界で働く上で必要な情報セキュリティについて学習
  4. 希望があれば株式会社ブレーンナレッジシステムズの正社員として積極的に雇用

    就職率は9割以上、断ってもOK
    自分でも就職活動して良い企業を探すことができる。

このようなことが無料でGetできます。
プログラマとして年収・やる気アップさせるチャンスです。

今はどこの企業もIT技術者不足に悩んでいます。

0円スクールで見事にプログラマへ転職した後、
プログラマとして経験を積めば、再転職で更なる年収アップが期待できる。
そんな現実的な世界があなたを待っています。

ひと言だけ付け加えさせてもらうなら、
プログラマとしてのスキルアップに試行錯誤は必要ですよ。
また、それも楽しかったりします(^^;

とりあえず、伝えたいのは


未経験という理由であきらないで!
無料の一歩を踏み出そう!!


ということです。

正直、ここでは伝えきれないので、0円スクール をクリックした方が早いです。
あなたに合うプログラミングスクールか吟味してみて!

体験入学・説明会も開催しています。
迷っていたら、あなたの目と耳で実際に確認してみてください

  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*