【Python】for文とif文を使って条件処理を行う!サンプルコード付き!
for文とif文を組み合わせることで繰り返し処理の間に条件分岐を行うことができます。
例えば、100回繰り返して処理を行いますが、その内、50回「こんにちは」を表示させ、残りの50回は「こんばんは」と表示させたい場合に条件分岐を使うことで一つのfor文で実行することができます。
また、配列などのリストでも、「この値はAへ、この値はBへ」と別々に格納することも可能です。
今回はfor文とif文を組み合わせた場合の処理について解説していきます。
目次
for文とは
for文とはある処理を繰り返し行いたい場合に使用する処理です。
同じ文を何度も書く代わりにfor文の中に処理を書くことでその処理を決められた回数繰り返すことができます。
つまり、print()を10回書くことをfor文一つで実行できるということです。
for文の書き方
for文は下記のように書きます。
1 2 |
for 変数 in リストなど: // 処理内容 |
for文について詳しく知りたい場合は【Python】for文(for in)で繰り返し処理を行う!書き方や使い方を徹底解説!をご参考ください。
if文とは
if文とは、ある条件が成立しているかしていないかによって処理を変えたいときに使います。
これを条件分岐といいます。
ifの後ろに条件文を記述し、条件が満たされるなら条件文はtrueを返しif文の中の処理が実行され、
条件が満たされないとき条件文はfalseを返し、if文の中の処理はスルーされます。
if文について詳しく知りたい場合は、【Python】if文で条件分岐を行う!書き方や使い方を分かり易く解説!をご参考ください。
if文の書き方
if文は次のように書きます。
1 2 3 4 5 6 |
if 条件1: 処理1 elif 条件2: 処理2 else: 処理3 |
for文とif文の組み合わせたサンプルコード
for文とif文の基本がわかったなら、for分とif文を使った複雑な処理を見ていきましょう。
今回はfor文とif文、for文とif-else、for文とif-elif-elesを組み合わせたサンプルコードをそれぞれ見ながら解説していきます。
for文とifの組み合わせ
for文とifを組み合わせたコードを見てみましょう。
list1は数字の配列であり、list2とlist3は空の配列となっています。
ここでlist2には偶数の値を、list3には奇数の値をlist1から取得してきます。
例
1 2 3 4 5 6 7 8 9 10 11 |
list1 = [3, 5, 4567, 8, 56, 10, 234, 99,16, 13, 5, 86, 999, 1234] list2 = [] list3 = [] for i in list1: if i % 2 == 0: list2.append(i) if i % 2 != 0: list3.append(i) print(list2) print(list3) |
出力結果
[8, 56, 10, 234, 16, 86, 1234]
[3, 5, 4567, 99, 13, 5, 999]
for文でくりかえし処理を行っている中、ifによってtrueなら偶数であるという条件とtrueなら奇数であるという条件の2つに処理が分かれています。
そのため、list2には偶数の値が、list3には奇数の値がそれぞれ配列として格納されています。
for文とif-elseの組み合わせ
for文とif-elseを組み合わせたコードを見てみましょう。
list1に数値を追加し、list2、list3、list4、list5は空の配列となっています。
ここでlist2には偶数の値を、list3には奇数の値をlist1から取得し、
その中から100以上の数値をlist4、list5へ格納します
例
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 32 |
list1 = [3, 5, 4567, 8, 56, 10, 234, 99,16, 13, 5, 86, 999, 1234, 1255, 9765, 423,] list2 = [] list3 = [] list4 = [] list5 = [] for i in list1: if i % 2 == 0: list2.append(i) if i > 100: list4.append(i) else: list3.append(i) if i > 100: list5.append(i) print(list2) print(list3) print(list4) print(list5) |
出力結果
[8, 56, 10, 234, 16, 86, 1234]
[3, 5, 4567, 99, 13, 5, 999, 1255, 9765, 423]
[234, 1234]
[4567, 999, 1255, 9765, 423]
for文で繰り返し処理を行っている中、if文によって偶数である場合はtrueとなり、でifの下の処理が実行され、奇数である場合はfalseとなり、elseの下の処理が実行されます。
さらにその中で100以上の数値はそれぞれのlistへ格納します。
そのため、list2には偶数の値が、list3には奇数の値がそれぞれ配列として格納され、
list4には偶数の100より大きい数値が、list5には、奇数で100より大きい数値が格納されています。
for文とif -elif-elseの組み合わせ
for文とif-elif-elseを組み合わせたコードを見てみましょう。
list1に数値を追加し、list2、list3、list4、list5、list6、list7は空の配列となっています。
ここでlist2からlist5は変わりませんが、list6には、偶数ではない5の倍数の値が格納されます。
そして、list7にはその中で100より大きい値が格納されます。
例
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 32 33 34 35 36 37 38 39 40 41 42 43 44 |
list1 = [3, 5, 4567, 8, 56, 10, 234, 15,16, 13, 5, 86, 999, 35, 1255, 9765, 423,] list2 = [] list3 = [] list4 = [] list5 = [] list6 = [] list7 = [] for i in list1: if i % 2 == 0: list2.append(i) if i > 100: list4.append(i) elif i % 5 == 0: list6.append(i) if i > 100: list7.append(i) else: list3.append(i) if i > 100: list5.append(i) print(list2) print(list3) print(list4) print(list5) print(list6) print(list7) |
出力結果
[8, 56, 10, 234, 16, 86]
[3, 4567, 13, 999, 423]
[234]
[4567, 999, 423]
[5, 15, 5, 35, 1255, 9765]
[1255, 9765]
list1に数値を追加し、list2、list3、list4、list5は前回と変わりませんが
list6にはifの条件がfalseであり、elifの条件がtrueである>為、偶数ではない5の倍数の値が、list7にはその中で100より大きい値が格納されています。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。