- 2018-8-18
- pythonプログラミング, while
- python, ループ処理
- 【Python入門】ループ処理についてわかりやすく解説 はコメントを受け付けていません
この記事ではPythonでif文とwhile文を組み合わせたり
if文とfor文を組み合わせたループ処理についてわかりやすく解説していきます。
if文を組み合わせていない単純なループ処理については
こちらの記事で詳しく解説していますので
あわせてご覧ください。
⇒【Python】for文の書き方を誰でもわかるように解説
⇒【Python】whileループについてわかりやすく解説
【Python入門】if文とfor文を組み合わせたループ処理
for文は処理回数がはっきりしている場合に
使用できるループ処理でしたね。
⇒【Python】for文の書き方を誰でもわかるように解説
このfor文に対してさらにif文を組み合わせることで
さらに高度なループ処理を扱うことができます。
それでは例題1をご覧ください。
#例題1 a = [3,6,7,10,21,35] for b in a: if b%3 == 1: print(b)
例題1ではまず
a = [3,6,7,10,21,35]
リストとして
3,6,7,10,21,35
という数字をaに代入しています。
次に
for b in a:
for文ループを使って
aのそれぞれの要素に処理を行うことができます。
続いて
if b%3 == 1:
とすることで、
aからbにうつった各要素を3で割り
余りが1になった場合にだけ、
print(b)が実行され、表示されます。
3,6,7,10,21,35
の中で3で割ったら1余るのは
7と10だけですね。
したがって例題1を実行すると
7と10が表示されるわけですね。
こんな感じでfor文によるループ処理の中に
if文を使って条件分岐させることもできます。
ちなみに%の計算は演算子のところで
詳しく解説しています。
気になる方はこちらをご覧ください。
⇒【Python】演算子まとめ
【Python入門】if文とwhile文を組み合わせたループ処理
while文を使ってもfor文と同じ処理を
実行させることができます。
例題2をご覧ください。
#例題2 a = [3,6,7,10,21,35] b = 0 while b < len(a): c = a[b] if c%3 == 1: print(c) b += 1
例題2を実行すると
例題1と同じ結果が得られます。
例題2の構造を詳しく解説していきますね。
a = [3,6,7,10,21,35] b = 0
で、
変数aにリスト[3,6,7,10,21,35]を代入し
変数bに0を代入しています。
そして次、
while b < len(a):
lenについて詳しくはこちらをご覧ください。
⇒pythonのlen関数を使って文字列の長さを調べる
ここでは簡単にlen関数について説明しておきますね。
lenによって要素数を調べることができます。
なのでlen(a)となっているので
リストaの要素数、ここでは3,6,7,10,21,35と6個という意味になります。
なので。変数bがaの要素数6より小さい間、
それよりも下の処理が行われることになるんですね。
次に
c = a[b]
です。
ここで、
b = 0
と最初にしていましたね。
したがって
c = a[b]
は
c = a[0]となります。
a = [3,6,7,10,21,35]
aの0番目の要素である3がcに代入されるわけです。
ちなみに3を0番目、6を1番目、7を2番目とカウントしていくことになりますね。
そして
if c%3 == 1: print(c) b += 1
先ほど3がcに代入されましたね。
3を3で割った余り(ここでは0)が1と同じ数字なら
print(c)で表示されます。
でも、3÷3のあまりは0なので表示されません。
で、その下のb += 1によって
bの値が0+1=1となります。
c = a[b]
で、1はaの2番目の数字6がまたcに代入され
if c%3 == 1: print(c) b += 1
で、6÷3=2あまり0
またあまりが0なので何も表示されません。
それから
b += 1
によって、1+1=2となり
aの3番目の数字7がcに代入されます。
c = a[b]
そして、
if c%3 == 1: print(c) b += 1
で7÷3=2あまり1で
ここであまりが1になったので
print(c)によって、数字の7が表示されます。
ただ、まだ
while b < len(a):
により、aの要素数の方がbより大きいので
while文が繰り返されます。
これがaの要素数が存在する限り続けられて
結局、
となり、実行すると、
『7』と『10』が表示されます。
こんな感じでfor文であったりwhile文とif文を組み合わせることで
より複雑なループ処理を実行することができるようになります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。