Python > 言語 > 制御構造 > ループ > For文


Python - 言語 - 制御構造 - ループ - For文

*

*



制御構造:指定範囲内の反復:For

概要

[ edit ]

  • 概要
    • 指定範囲内で繰り返す

文法

[ edit ]

   1 "for" <<変数>> "in" <<条件式expression>> ":"
   2     <<ブロックsuite>>
   3        ...
   4 ["else:"
   5     <<ブロックsuite>>
   6        ...  ]

いろいろな使い方

列データ,テキストファイルの順次アクセス

  • リスト,タプルの各要素,辞書のキー,文字列の各文字,ファイルの各行などが順次アクセスの対象となる

リストの各要素で順次,繰り返し

   1 for n in [1, 2, 3, 4, 5]:
   2     print( n )

1
2
3
4
5

タプルの各要素で順次,繰り返し

   1 for n in (1, 2, 3, 4, 5):
   2     print( n )

1
2
3
4
5

辞書型のキー要素で順次,繰り返し

   1 for k in {"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}:
   2     print( k ) 

one
two
three
four
five

文字列の各文字で順次,繰り返し

   1 for c in "12345":
   2     print( c )

1
2
3
4
5

ファイルの各行で順次,繰り返し

   1 for line in open( "data_file.txt" ):
   2     print( line )

rangeをつかった指定回数の繰り返し

  • 指定回数の繰り返し

    range(max)

    0, 1, 2, ..., max-1

    range(min, max)

    min, min+1, ..., max-1

    range(min, max, step)

    min, min+step, min+step*2,...(max未満)

   1 for n in range(10):
   2     print( n )

0
1
2
3
4
5
6
7
8
9

   1 for n in range(2,10, 2):
   2     print( n )

2
4
6
8

   1 for n in range(10,2, -2):
   2     print( n )

10
8
6
4
  • リストの添え字を使って,ループさせると,範囲を越えてしまう危険があるので注意が必要.

    • もっとも,リストxに対して,range( len(x) )は,0,1,2,...,len(x)-1なので,リストのサイズがそのまま変わらなければ,順次アクセス用の添え字に使うことができる

   1 x = [1,2,3,4,5,6,7]
   2 for i in range(len(x)):
   3     print( x[i] )

1
2
3
4
5
6
7
  • 文字列も,全角半角にかかわらず1文字ずつアクセスする.

    • この場合も文字数を越える危険がないので,安心.
    • 文字列型は,更新不能(イミュータブル)であり,ミュータブルな列(シーケンス)型ではない←テキストシーケンス型

   1 for c in "おもてなし":
   2     print( c )

else節

[ edit ]

  • else節 がある場合は,ループの完了後にelse節を実行する

   1 for n in [1, 2, 3, 4, 5]:
   2     print( n )
   3 else:
   4     print( "無事,終了しました" )

1
2
3
4
5
無事,終了しました
  • breakした場合は,else節を実行しない

   1 for n in [1, 2, 3, 4, 5]:
   2     print( n )
   3     if n >= 3:
   4         break
   5 else:
   6     print( "無事,終了しました" )

1
2
3
*

リファレンス

*



Software Engineering(IIJIMA, Tadashi -- Keio Univ.)



*

SoftEng: Python/Lang/ControlStructure/Loop/ForStatement (last edited 2018-09-28 14:06:33 by TadashiIijima)