13,000
回編集
細 (Wiki がページ「反復処理 - for文(Python)」を「Pythonの基礎 - 反復処理(for文)」に、リダイレクトを残さずに移動しました) |
細 (文字列「<source lang="python">」を「<syntaxhighlight lang="python">」に置換) |
||
9行目: | 9行目: | ||
Pythonでfor文を使ってループ処理のコードを書くには、forの後ろに繰り返し変数を記述する。<br> | Pythonでfor文を使ってループ処理のコードを書くには、forの後ろに繰り返し変数を記述する。<br> | ||
続けて、inキーワードを記述した後にリストなどのシーケンスを記述して、末尾にコロンを置く。<br> | 続けて、inキーワードを記述した後にリストなどのシーケンスを記述して、末尾にコロンを置く。<br> | ||
< | <syntaxhighlight lang="python"> | ||
for 繰り返し変数 in シーケンス: | for 繰り返し変数 in シーケンス: | ||
実行コード | 実行コード | ||
15行目: | 15行目: | ||
<br> | <br> | ||
以下の例では、リスト変数から各要素を取得している。<br> | 以下の例では、リスト変数から各要素を取得している。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python","PHP","Swift"] | lang = ["Python","PHP","Swift"] | ||
29行目: | 29行目: | ||
次に、文字列をシーケンスとして使用する。<br> | 次に、文字列をシーケンスとして使用する。<br> | ||
以下の例では、Pythonという文字列を、繰り返し変数をsとして、1文字ずつ取得している。<br> | 以下の例では、Pythonという文字列を、繰り返し変数をsとして、1文字ずつ取得している。<br> | ||
< | <syntaxhighlight lang="python"> | ||
for s in "Python": | for s in "Python": | ||
print(s) | print(s) | ||
46行目: | 46行目: | ||
for文でも、while文と同様にbreak文を使用して反復処理を抜けることができる。<br> | for文でも、while文と同様にbreak文を使用して反復処理を抜けることができる。<br> | ||
以下の例では、取得した文字がhの時にfor文から抜ける処理をしている。<br> | 以下の例では、取得した文字がhの時にfor文から抜ける処理をしている。<br> | ||
< | <syntaxhighlight lang="python"> | ||
for s in "Python": | for s in "Python": | ||
if s == "h": | if s == "h": | ||
62行目: | 62行目: | ||
continue文を使用して、処理をスキップして再度反復処理の先頭に戻ることができる。<br> | continue文を使用して、処理をスキップして再度反復処理の先頭に戻ることができる。<br> | ||
以下の例では、指定した文字hの場合のみ処理がスキップしている。<br> | 以下の例では、指定した文字hの場合のみ処理がスキップしている。<br> | ||
< | <syntaxhighlight lang="python"> | ||
for s in "Python": | for s in "Python": | ||
if s == "h": | if s == "h": | ||
80行目: | 80行目: | ||
for文もwhile文と同様に、処理が終わったら何か別の処理をする場合にelse文と組み合わせることができる。<br> | for文もwhile文と同様に、処理が終わったら何か別の処理をする場合にelse文と組み合わせることができる。<br> | ||
以下の例のように、else文を最後に付け加えるだけである。<br> | 以下の例のように、else文を最後に付け加えるだけである。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python","PHP","Swift"] | lang = ["Python","PHP","Swift"] | ||
98行目: | 98行目: | ||
break文で反復処理を抜けると、else文の処理は実行されない。<br> | break文で反復処理を抜けると、else文の処理は実行されない。<br> | ||
このような処理は、break文が実行されなかった場合は、else文でチェックするような時に使用する。<br> | このような処理は、break文が実行されなかった場合は、else文でチェックするような時に使用する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python","PHP","Swift"] | lang = ["Python","PHP","Swift"] | ||
117行目: | 117行目: | ||
次のような辞書型変数を用意して、for文で処理する。<br> | 次のような辞書型変数を用意して、for文で処理する。<br> | ||
print関数で出力されているものは、辞書のキーの部分である。このように、辞書型変数をfor文で処理するとキーが処理される。<br> | print関数で出力されているものは、辞書のキーの部分である。このように、辞書型変数をfor文で処理するとキーが処理される。<br> | ||
< | <syntaxhighlight lang="python"> | ||
foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | ||
131行目: | 131行目: | ||
上記のサンプルコードは、次のように辞書型変数のkeys関数を使用した処理と同じである。<br> | 上記のサンプルコードは、次のように辞書型変数のkeys関数を使用した処理と同じである。<br> | ||
for文で辞書をそのまま使用してもkeys関数を使用しても、結果はどちらもキーが取得されることになる。<br> | for文で辞書をそのまま使用してもkeys関数を使用しても、結果はどちらもキーが取得されることになる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | ||
146行目: | 146行目: | ||
辞書の値を反復処理で取得する場合は、values関数を使用する。<br> | 辞書の値を反復処理で取得する場合は、values関数を使用する。<br> | ||
以下の例では、values関数を使用して辞書の値を取得している。<br> | 以下の例では、values関数を使用して辞書の値を取得している。<br> | ||
< | <syntaxhighlight lang="python"> | ||
foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | ||
160行目: | 160行目: | ||
===== for文と辞書のitems関数 ===== | ===== for文と辞書のitems関数 ===== | ||
辞書のキーと値をセットでタプル型に変換して反復処理する場合は、items()関数を使用する。<br> | 辞書のキーと値をセットでタプル型に変換して反復処理する場合は、items()関数を使用する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | ||
175行目: | 175行目: | ||
ピリオドと改行コードを文末に出力するために、print関数のendオプションを使用している。<br> | ピリオドと改行コードを文末に出力するために、print関数のendオプションを使用している。<br> | ||
それぞれキーと値が対応した位置に出力されている。<br> | それぞれキーと値が対応した位置に出力されている。<br> | ||
< | <syntaxhighlight lang="python"> | ||
foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | foods = {"breakfast":"miso soup", "lunch":"sandwich", "dinner":"steak"} | ||
193行目: | 193行目: | ||
<br> | <br> | ||
range関数の使用方法は、range(start値, end値, step値)という形でそれぞれの値に数値を指定する。(スライスと同様の使用方法)<br> | range関数の使用方法は、range(start値, end値, step値)という形でそれぞれの値に数値を指定する。(スライスと同様の使用方法)<br> | ||
< | <syntaxhighlight lang="python"> | ||
for i in range(5): | for i in range(5): | ||
print(i) | print(i) | ||
206行目: | 206行目: | ||
<br> | <br> | ||
次に、range関数のstart値、end値、step値を指定する。<br> | 次に、range関数のstart値、end値、step値を指定する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
for i in range(1, 10, 3): | for i in range(1, 10, 3): | ||
print(i) | print(i) | ||
217行目: | 217行目: | ||
<br> | <br> | ||
range関数は、list関数を使用してリストに変換することができる。<br> | range関数は、list関数を使用してリストに変換することができる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
a = list(range(1, 10, 3)) | a = list(range(1, 10, 3)) | ||
print(a) | print(a) | ||
232行目: | 232行目: | ||
各リストの共通するインデックスの値が抜き出されて反復処理されている。<br> | 各リストの共通するインデックスの値が抜き出されて反復処理されている。<br> | ||
3つのリストがここでは全て同じ要素数でしたが、要素数がそれぞれ異なる場合は、一番小さい要素数に合わせたオフセットで反復処理がなされます。 | 3つのリストがここでは全て同じ要素数でしたが、要素数がそれぞれ異なる場合は、一番小さい要素数に合わせたオフセットで反復処理がなされます。 | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python", "PHP", "Swift"] | lang = ["Python", "PHP", "Swift"] | ||
prefix = ["P", "P", "S"] | prefix = ["P", "P", "S"] | ||
248行目: | 248行目: | ||
上記のサンプルコードをrange関数を使用して記述すると、以下のようになる。<br> | 上記のサンプルコードをrange関数を使用して記述すると、以下のようになる。<br> | ||
実行すると同様の結果が出力される。<br> | 実行すると同様の結果が出力される。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python", "PHP", "Swift"] | lang = ["Python", "PHP", "Swift"] | ||
prefix = ["P", "P", "S"] | prefix = ["P", "P", "S"] |