Python

【Python】for文のインクリメントはrangeで変数にinする

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

Pythonのfor文を使ってループしますが、

カウンタをインクリメントする方法が他言語と大きく異なります。

『for文でインデックスのインクリメント方法は?』

『inで配列を変数に代入するの?』

『他言語と何が違うの?』

こんな疑問に答えます。

SE歴25年のオッサンが解説するぞい!
SEおっさん
SEおっさん

【Python】for文のインクリメントはrangeで変数にin

Pythonでインデックスに加算(インクリメント)しながらループさせたい場合は、

range関数で作成した連番をinを使って、1 つずつ取り出してループします。

連番を作成してから、作成した連番を取出してループさせるのです。


rangeを使用したfor文の書式と例文です。

for文:range要素を取出してループ

for インデックス変数 in range(終了値):
    処理

# 【例文】for文のrangeオブジェクト
for i in range(3):
  print(i) 
0
1
2

range(3)とするとインデックス変数が0・1・2とインクリメントされなが3回ループしてますね。

iはインデックスまたは変数カウンタ変数と呼ばれます。

ループの順番は…

  1. range関数でインクリメントされた連番を作成
  2. 作成された連番を取り出してループ

となります。

たろちゃん
たろちゃん
先にrangeで連番を作成してから
for文でループするんだね

Yes!
それがPythonの特徴じゃ
SEおっさん
SEおっさん

【Python】for文インクリメントの特徴

PythonはC言語やJavaのように加算しながらループするのではなく、

range関数で加算された連番を作成してから、作成された連番を取り出しながらループします。

ここがPythonと他言語の決定的な違いです。この決定的な違いは、Pythonの画期的な点でもあります。

【参考】range関数の使い方

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

【Python】range関数で1から連番・飛ばしの間隔・逆順など

 

rangeを作成した連番をfor文でループしましたが、

リストやタプルでも同じように配列の要素を順番に取得できます。

レンジやリストはイテラブルなオブジェクトであれば何でも同じように取り出せます。

【Python】for文とwhileはイテレータで要素を取り出し!
【Python】for文とwhileはイテレータで要素を取り出し!
Pythonのループはfor・while文を使ってループします。 forループの対象と取出し方が今イチわからないアナタへ。 『何を対象にループするの?』 『どう.....


スポンサーリンク

【Pythonのfor文】他言語との違い

for文はループする点では全ての言語で共通しています。

Pythonと他言語(C言語・Java等)との最大の違いは

インデックスの加算(インクリメント)する方法です。

 

C言語・Javaでインデックス変数を使用したfor文をみてみましょう。

Pythonでrangeで連番を作成し、インデックス変数へ代入する方法とずいぶん違いますね。

次の例文はC言語で、startは0、stopは3、stepは1としています。
(stepに相当する i++ は i = i+ 1 を省略した書き方です)

【例】C#のfor文

for(int i = 0; i < 3; i++){
  printf("%d¥n", i);
}
0
1
2

やってることはPythonもJavaもC言語も一緒なコトがわかるでしょうか。

Pythonはrangeオブジェクトを使用しているのでシンプルですね。

Pythonはシンプルで早くコーディングできるので、SEおっさん好みの言語の1つです。

Pythonは好みな言語じゃ♪
SEおっさん
SEおっさん

 

また、

配列を変数に代入しながらループするという点では、C#のforeach文やjavaの拡張for文と似ています。

【例】C#のforeach文

/* 【例】C#のforeach文 */
int[] ary = { 3, 5, 8 };
foreach (int i in numbers)
{
    Console.WriteLine("{0} ", i);
}
3
5
8

C#のforerch文とPythonのfor文の書き方はソックリ。

このようにプログラミング言語は基本的には同じ構造です。

どれか一つの言語をマスターしておくと、飲み込みは早いでしょう。

構造の理解はフローチャートが近道です♪

【記号は5つ】フローチャートの書き方【初心者向け簡単マニュアル】

フローチャートで簡単にループを抜ける方法!2つの図形と3つの判定

【Pythonのfor文】まとめ!rangeでインクリメントしてinで取得

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

Pythonのfor文はrangeでインクリメントしてinで変数に代入する方法

ついて紹介いたしました。

振り返ってみましょう!

 

for文でインデックスをインクリメントしてループさせたい場合

range関数で連番を作成してから、作成した連番を取出す

for文:range要素を取出してループ

for インデックス変数 in range(終了値):
    処理

# 【例文】for文のrangeオブジェクト
for i in range(3):
  print(i) 
0
1
2

iはインデックスまたは変数カウンタ変数と呼ばれる

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

【Python】range関数で1から連番・飛ばしの間隔・逆順など

 

リストやタプルのイテラブルオブジェクトでもfor文で同じようにループできる

【Python】for文のインクリメントはrangeで変数にinする

最後に…

for文はPythonでも他言語でも基本は同じで、繰り返し処理を行うものです。

ただ、言語ごとに微妙な違いがあります。

for文の言語による違いは日本語の標準語と関西弁の違い位のものです。

英語と日本語のような極端な違いは無く、

英語とフランス語のような違いも無いと言えるでしょう。

日本語の方言の違い程度のものですので、どれか1言語のをマスターすると他言語もマスターしやすいです。

初心者の場合はアレコレ手をださずに、どれか1言語を決めてマスターしましょう。

Pythonは初心者向けの良い言語だと思いますよ。

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

きちんと終了判定がしないと無限ループしてしまいます。
⇒プログラマあるある(笑)

一緒にガンバりましょー。

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

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪

LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!

取得資格
  • 応用情報技術者
  • Oracle Master Gold
  • Java Silver SE
  • Java EE Webコンポーネントディベロッパ
  • Python エンジニア認定データ分析
  • 簿記2級


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

コメントを残す

*