overflow33の日記

python 機械学習 系の記事を書いて行きたい所存

C Matlab python での for ループ比較

ループ処理の書き方

C言語

int i;
for(i=0; i<=10; i++;){
    printf("%d\n", i)
}

Matlab

for i = 0: 10
    disp(i)
end

python

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

pythonリストの処理

L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in L:
    print(i)

すべて 0 から 10 までの整数を順番に表示するプログラムである。

ループ処理の開始と終了範囲

C : {}で括る範囲
matlab : for から end までの間
python : for~~: より下の行で、インデント(行頭のスペース)が下がった範囲

ループ処理の開始値と終了値

C

始値、終了条件、一回終了時の処理を明示する必要がある。
for(開始値; 終了条件; ループ毎の処理;)

float j;
for(j=0.0; j<=1.0; j=j+0.1;){
    printf("%d\n", j)
}

Matlab

コロン(:)で、開始値と終了値を指定する。
増分(差分)を指定したい場合は、開始値 : 増分値 : 終了値のように書く

for j = 0: 0.1: 1
    disp(j)
end

python

range()関数で配列(正確には< range class >)が作成され、その中身が順次 i に入ることでループの処理が行われる。
0以外の数値から開始したい場合は、次のようにrange()関数のrange(start,stop,step)を指定すれば良い。
(range関数では、引数が一つの場合、range(x) => start=0, stop=x, step=1と解釈される。2つの場合 range(x,y) -> start=x, stop=y, step=1)
また、range()関数の引数は、整数(int型)のみで、小数(float型)は使えない。

for i in range(5, 11, 2):
    print(i)

output

5
7
9