みっかぼーず

日常も仕事もゲームも下ネタも徒然なるままに書いていく。更新は不定期(水or日)

【Python】#3 条件分岐をかじってみる

f:id:sousakuito:20180114232903j:plain:w240 
※Pyhton3系の記事です。

どーも、いとです。
冬休みでpaizaラーニング「Python入門講座」の無料分の学習を終えることができました!

【ざっくり講座内容】
・四則演算
・条件分岐(if/elif/else文)
・ループ処理(for文/while文)
・標準入力
・リスト

演習問題は問題なく解けたためスキルチェックにも挑戦してみました。しかし、いざスキルチェックで問題を解こうとすると、問題文を読んでいる時点で「なんじゃこりゃ??」となり全然解けませんでした(・・;)

※paizaには「コーディングスキルチェック」という、出題された問題のコーディングを提出(制限時間あり)すると採点してもらえる機能があります。難易度別の問題があるので挑戦してみました。

やはり、講座内容だけでなく自分で調べて勉強していかないと厳しいなーと実感。英語だって、英単語と文法を数種類習ったくらいじゃ思うように喋れませんからね……。それと同じです。

さらに、時間が経つとプログラミングって忘れてしまうのですよ……。「:」「,」を一つ忘れるだけで構文エラーを吐きます。日頃から使っていないと書けなくなっちゃうんですよねー^^;


というわけで、備忘録の意味も含めて今回は「if文」を使ったプログラミングをやっていきます。

※プログラミング初心者が書いた記事なので、もし誤りなどがありましたらご指摘お願いします(むしろ間違いを晒し続ける方が自分にも読者のためにもならないはず……)


if else文

 
条件分岐の基本形

if 条件式:
    条件式が成立したときの処理
else:
    条件式が成立しなかったときの処理

条件式が成立する場合2行目(ifの下)の処理を行い、成立しなかった場合は4行目(elseの下)の処理を行います。処理部分は「インデント(タブまたは半角スペース4つ)」を入れて書きます。
※Pythonでは、条件式の後の「:」やelseの後の「:」から始まってインデント行が終わるまでを、ひとかたまりのブロックとして扱います。

例えば、年齢によって入場料が異なる動物園があるとします。「入場料は18歳以下なら200円、そうでなければ(19歳以上)は500円」という条件だとすると、下記のような記述になります。

if 年齢が18歳以下:
    入場料は200else:
    入場料は500

条件式や処理はイメージしやすさを優先して日本語で表しました。入場料は18歳以下の場合は200円、そうでない場合は500円になります。


比較演算子で条件分岐

今回はif文の条件式に比較演算子を使用します。
さきほどの例の「18歳以下」といった、数の大小比較(等しい/等しくないなども含む)に用いられるものです。

■Pythonで使える比較演算子

比較演算子 意味
== a == b aとbは等しい
!= a != b aとbは等しくない
< a < b aがbよりも小さい
> a > b aがbよりも大きい
<= a <= b aがb以下である
>= a >= b aがb以上である


練習

それでは、英語の点数に応じて異なるメッセージを出力するプログラムを書いていきます。

【仕様もどき】
①英語のテスト結果(点数)を表示する
②点数は0~100の数値がランダムで入る
③60点以上なら「合格です。おめでとうございます。」、60点未満なら「不合格です。後日追試を受けてください。」を表示する

ちなみに、筆者の中学校では英語のテストで60点以下をとると追試でした。ほぼ追試に引っかかっていたのも今では懐かしい思い出です。

▼実際のコード

#coding: utf-8
#点数(point)に0~100のランダムな値を入れる
import random
point = random.randint(0,100)

#点数を表示する
print("「英語のテスト結果を返却します。」")
print("「あなたは" + str(point) + "点です。」")

#60点以上なら「合格」、60点未満なら「不合格」の旨を表示する
if point >= 60:
    print("「合格です。おめでとうございます。」") #条件式が成立したときの処理
else:
    print("「不合格です。後日追試を受けてください。」") #条件式が成立しなかったときの処理

 
 
個人的ポイント
仕様①
→point変数に代入された数値をstr関数で文字に変換する
仕様②
→randint関数で0〜100の数値をランダムに代入する
仕様③
→if文の条件式で比較演算子を使い「60点以上」の時の処理を入れる

 
▼実行結果はこちら

★60点以上の場合

「英語のテスト結果を返却します。」
「あなたは95点です。」
「合格です。おめでとうございます。」

★60点未満の場合

「英語のテスト結果を返却します。」
「あなたは31点です。」
「不合格です。後日追試を受けてください。」

うまくできました(・∀・)



今回はif/elseの条件分岐基本形の練習でした。
elifを入れると複数の条件を入れることができますが、それはまたの機会で取り上げようと思います。

次回以降は、標準入力やテストコードなどにも触れていきたいと思っていますが、何をするかは考え中ですー。

では、本日はこのへんで!(*^^*)ノシ

←前回 『#2 paizaでプログラミング勉強始めた
→次回 まだ