2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

python3 for文 基本構造からネストまで

Last updated at Posted at 2019-09-02

###Pythonのfor文

pythonのfor文にどんな特徴があるのか少しまとめた。

####構造

for 変数 in イテレータ:
    処理内容

python3にはforeach文がないそのためc#やJavaScriptなどとfor文の考え方が若干異なる。

python3のfor文はfor文というより他の言語でいうforeach文に近い。

イテレータの中からオブジェクトを一つ一つ取り出して処理していくような考え方である。

このイテレータの中には様々のものを置くことができる。リストはもちろん条件を満たせばクラス等も置ける。

pythonのstring型はイテレータでもあるので以下のような書き方もできてしまう。

for c in 'aiueo':
    print(c)

実行結果は以下のようになる。

a
i
u
e
o

####range()関数を使ったfor文
繰り返し文でもっとも良く使うのはN回処理を繰り返すという、数字を基準にしてfor文を回していくことだ。

その際pythonではrange()関数を使う。

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

実行結果は以下のようになる。

0
1
2

インデックスは0はじまりなことに注意

####ネストさせたfor文
次にfor文をネストさせてみる

for i in range(3):
  for j in range(2):
    print(i)
    print(j)

実行結果は以下のようになる

0
0
0
1
1
0
1
1
2
0
2
1

実行結果から注目して欲しいのは、
for文を2つネストさせた場合2番目に書いたfor文が全て回りきるまで1番目のループは次のオブジェクトに行かない。

上の例でいえばjが1になったあとiが0から1になりその後はまたjがインクリメントされ0から1になる。

そのループが終わるとまたiがインクリメントされiが1から2になる。

おまけ:いろいろな言語でのfor文

様々な言語のfor文を集めた。

c#のfor文

c#で上記のコード を書こうとするとこうなる

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
           
 			for(int i = 0; i <= 2; i++){
				for(int n = 0; n <= 1; n++){
    				System.Console.WriteLine(i);
      				System.Console.WriteLine(n);
   				}
			}
 
        }
    }
}

c#ではfor文一回のループでインデックスをインクリメントしていることが分かる
対してpython3ではオブジェクトに対してループが回されている。

####rubyのfor文

rubyはpython3のfor文に考え方は近い

for i in 0..2 do
  for n in 0..1 do
    puts i
    puts n
  end
end

####JavaScriptのfor文
@shiracamus さんありがとうございます。
2015年度版以降

for (let i in [0, 1, 2]) {
  for (let n in [0, 1]) {
    console.log(i)
    console.log(n)
  }
}

2015年度版以前

for(var i=0; i<=2;i++){
	for(var n=0; n<=1; n++){
    	console.log(i);
      	console.log(n);
    }
}

2015年度版以前のJavaScriptはc#の考え方に近くindexを回している。
しかし、2015年度版以降になるとpythonやrubyによってきたような印象を受ける。

###参考
【Python入門】for文を使った繰り返し文の書き方

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?