アフィリエイト広告を利用しています
ファン
検索
<< 2021年01月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール

広告

posted by fanblog

2020年12月31日

繰り返し





記事内容の出典:フリーテキスト「Python3入門」
このページの更新:2020/12/31
for 文

for はプログラムの繰り返し(反復)実行のため構文で,次のような形式です.

   for 変数 in データ列:
     (実行対象のスイート)


for 文は「データ列」から順番に要素を1つずつ取り出して「変数」に受け取り,それを用いた形で「実行対象のスイート」の部分を実行します.(次の例)


for c in 'プログラミング':
print( c )


実行結果:










この例では,文字列 'プログラミング' から1文字ずつ取り出してそれを変数 x に受け取り,スイートの部分でそれを print 出力しています.すなわち「print 関数を反復実行」しているわけです.

in の後ろに記述するデータ列としては,順序のあるデータ構造であれば概ね使用可能です.次の例はリストから要素を1つずつ取り出し,それを用いた print を反復実行するものです.


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


実行結果:


1
2
3
4



スイートに関しては if 文の解説記事で説明した形式と同じで,for 文が実行対象(反復対象)とするスイートも複数の行で構成することができ,for の記述位置よりも右側にずらして,なおかつ同じ桁位置から始まる形式(同一インデント)で記述します.スイートを構成する際に注意するべき点としては,空白文字(スペース)とTABを混同しないことです.(次の図)

SuiteFor.gif
(図の出典:フリーテキスト「Python3入門」

range を用いた繰り返し

for 文による繰り返しで頻繁に使用するデータ列が range です.range は整数列と同等のデータ列を作成するものです.(次の例)


for x in range(5):
print( x )


実行結果:


0
1
2
3
4



range が作る整数列は次の通りです.

   range( n )       0 以上 n 未満の整数列(増分は1)
   range( n1, n2 )     n1 以上 n2 未満の整数列(増分は1)
   range( n1, n2, 増分 )  n1 以上 n2 未満の整数列(指定した増分で)

複数のデータ列を束ねて反復に使用する方法:zip

for 文で使用するデータ列として,複数のデータ列をzipで束ねたもの(下記)を与えることができます.

   zip( データ列1, データ列2, … )

これを応用した例を次に示します.


q1 = [1,2,3,4,5,6,7]
q2 = 'プログラミング'
for x,y in zip(q1,q2):
print(x,y)


実行結果:


1 プ
2 ロ
3 グ
4 ラ
5 ミ
6 ン
7 グ


この例のように,for の後ろに x, y と2つの変数を用意し,束ねられた2本のデータ列からそれぞれ値を受け取るようにしています.もしも for の後ろの受取り用変数を1つだけにすると次のような結果となります.


q1 = [1,2,3,4,5,6,7]
q2 = 'プログラミング'
for x in zip(q1,q2):
print(x)


実行結果:


(1, 'プ')
(2, 'ロ')
(3, 'グ')
(4, 'ラ')
(5, 'ミ')
(6, 'ン')
(7, 'グ')


このように,各列から取り出した要素をタプルにして変数に受け取ります.

注意)長さの異なるデータ列を zip で束ねると,最も短いデータ列に揃えられてしまいます.

データ列に番号を与えて反復に使用する方法:enumerate

繰り返しに使用するデータ列に通し番号を付けるには enumerate(下記)を使用します.

   enumerate( データ列 )

これを使用した例を次に示します.


for i,x in enumerate('プログラミング'):
print(i,x)


実行結果:


0 プ
1 ロ
2 グ
3 ラ
4 ミ
5 ン
6 グ


このように,データ列の要素に対する番号が変数 i に得られています.

while 文

for 文は与えられたデータ列を基にした形の繰り返し実行をするものですが,次に説明する while 文は与えられた条件を基に繰り返し実行します.while 文の書き方は次の通りです.

   while 条件式:
     (実行対象のスイート)


while 文の使用例を次に示します.


n = 0
while n < 5:
print( n )
n += 1


実行結果:


0
1
2
3
4


これは「nが5未満である間,print と n+=1 を実行する」というプログラムの例です.

繰り返しの中断

for や while による繰り返しの最中に break を実行すると繰り返し処理を強制終了することができます.(次の例)


n = 0
while True:
print( n )
n += 1
if n > 4:
break


実行結果:


0
1
2
3
4


このように「while True:」の形で無限反復の形にして,繰り返し処理中の判断で break を実行して while 文を終了するというのもプログラミング手法の1つです.

Udemy-logo.gifPython3 の基礎 − 超入門・再入門 −



この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/10441893
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は30日以上新しい記事の更新がないブログに表示されております。