今回は規模の大きいコーディングをする際には基本となるif, else文による条件分岐とfor文による繰り返し処理についてご紹介します。
python以外のプログラミング言語でも基本的には存在する大事な命令なので覚えておきましょう。
それでは早速本題です。
if, elseを使った条件分岐
条件分岐というのは,ある条件に対してそれを満たしているか満たしていないかを判定して処理を変えるような命令になります。
基本的にはif文を使って判定します。
例として自分が100円持っていて対象の物を買えるかどうかの判定を行って結果を出力するプログラムを作成してみましょう。
money = 100 # 所持金 apple = 98 # 買いたいものの価格 if apple > money: # 条件を満たせばこちらを実行 print("You can't buy it !") else: # 条件を満たさなければこちらを実行 print("You can buy it.")
「You can buy it.」が出力されれば成功です。ここで1つ大切な注意ですが,pythonにおいてはifやelseの終了は
インデントで判断されます!
インデントとは字下げのことで,上の例で言うところの空白です。テキストエディタであれば基本的にはTabキーを押すだけで出来ます。
若しくは空白を自分で入れても構いませんが,空白の数に決まりは(多分)ありません。基本は4だと思いますが,拘りがなければTabキーで良いかと思います。
一応elseに入る例も書いてみましょう
money = 100 # 所持金 apple = 5000 # 買いたいものの価格 if apple > money: # 条件を満たせばこちらを実行 print("You can't buy it !") else: # 条件を満たさなければこちらを実行 print("You can buy it.")
思い通り動いたでしょうか?
では最後に条件が3つ以上の場合の条件分岐を説明します。実は言語によってはswitch文という多分岐向けの命令があるのですが,pythonには残念ながらありません。
pythonでは3つ以上の場合もif文で対応します。例を見る方が分かりやすいと思いますのでテストの点数によってA~Eまでで5段階判定するプログラムを書いてみましょう。
score = 83 # テストの点数 if score > 90: print("grade: A") elif score > 80: print("grade: B") elif score > 70: print("grade: C") elif score > 60: print("grade: D") else: print("grade: E")
実行したら「grade: B」が出力されると思います。お気づきかと思いますが,多分岐の場合はelif(else ifの意味)を用いて実現します。
また,最後にelseを書くことで上のどれにも当てはまらない場合の処理を書くことができます。
※ちなみに大学では60点以上でないと単位を貰えませんので今後大学に行く方はお気をつけください笑
for文で繰り返しを実現する
同じような処理を何度もしてほしい!ということはよくあります。というかそういう処理こそプログラムにやってほしいですよね?
そういった要望を叶えるのが今回紹介するfor文です。while文というのも同じように繰り返しを実現出来ますが,正直for文で殆どどうにかなりますので今回はfor文のみ紹介します。
説明する前に1つ残念なお知らせです。
pythonはfor文が苦手なので出来るだけ書かないのがベターです
というのもインタプリタ型言語は基本的にfor文が遅いです!笑
インタプリタ型言語とは簡単に言うと命令を1つずつ翻訳しながらプログラムを読んでいくような言語です。
分かりやすく開発時には非常に便利なのですが,製品化する場合はもっと高速な言語を用いるという企業さんが多いです。
ちなみにこれと対になるのはコンパイラ型言語というものになります。代表的なものでいうとC言語なんかが該当します。
ではpythonではfor文を書かないのかと言われればそんなことはなくてfor文を使わないといけない場面もたくさんあります。
驚かせてしまったかもしれませんが初心者のうちはあまり気にせず使っていっていいと思います。
前置きが長くなりましたが,for文を使った例を紹介しましょう。
まず0~9までの数字を順番に出力するプログラムです。rangeという関数を使います。
for i in range(10): print(i)
非常に簡単ですね。開始の数字を指定することも出来ます。少し変更して3~9までを出力するプログラムを書いてみましょう。
for i in range(3,10): print(i)
range(a,b)と書けばaからb未満で1ずつ増加しながら繰り返します。
ここまでは1ずつ増加する例だけ見ましたが,任意の数ずつ増加させることもできます。上の例を2ずつ増加するように変更しましょう。
for i in range(3,10,2): print(i)
3 5 7 9と出力されれば成功です。
実はfor文は数字だけでなく配列で実現することも出来ます。
詳しくは述べませんが,文字列や数字の集合みたいなものだと思ってもらっていいです。
ではプログラム例です。
arr = ["red", "green", "blue"] # 配列作成 for i in arr: print(i)
いかがですか?上手くいったでしょうか?
まとめ
今回は条件分岐と繰り返しの方法について簡単に説明しました。
この記事が少しでもpythonを始める方の参考になれば幸いです。
それでは今回もお疲れ様でした!