注目キーワード

【Python】range関数を使って逆さま(reverse)の数字を取得する方法

はじめに

Pythonの開発を行っていて連続した逆さまの数字が取得したいと思いrange関数について調べました。どうやら、range関数のstepにマイナスの値を指定するとreverseな数字が取得できるそうです。この記事ではPythonのサンプルソースを使いながら逆さま(reverse)な連続した数字の取得方法を説明します。

この記事を読めば以下のような数字が取得できるようになります。

  • 「5, 4, 3, 2, 1」
  • 「10, 8, 6, 4, 2」

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

基本的なrange関数の使い方

基本的なrangeの使い方については以下の記事にまとめてあります。

連続した値をreverseする

冒頭で少し触れましたが、「5, 4, 3, 2, 1」のような連続した逆さまの数字を取得するには、三番目の引数にマイナスの値を設定します。

range(開始, 終了, マイナスの間隔)※逆さまにする場合は、開始が大きく終了が小さい値にすること

以下のサンプルソースの場合10から-1ずつ引いていって1を出力したタイミングで処理が終了します。設定内容は開始が10、終了が0、間隔が-1となります。ここで注意することは、上でも書きましたが「開始が大きく終了が小さい値にすること」です。

sample_range_reverse1.py の実行結果は、以下の想定通りで「10, 9, 8 ・・・3, 2, 1」と出力されていますね。。

sample_range_reverse1.pyを実行

startとendを逆にしても動くのか検証してみた

ここで「start」と「end」を逆さまにして動かすとどのように動くのか少し気になったので試してみました。

下のサンプルソースは開始が「 0 」で終了が「10」で毎回「-1」するという処理になっています。

スポンサーリンク

上のサンプルソースを実行した場合、永遠に条件が満たせないので無限ループになってエラーになるのかと思いましたが、エラーなどは出力されず何も出力されないみたいですね。

sample_range_reverse2.pyを実行

まとめ

range関数を使って連続した逆さま(reverse)の数字を取得したい場合は「range(開始, 終了, マイナスの間隔)」で呼び出す。

この場合は、開始の値を大きくする。逆に指定すると何も出力されない。