【Python】Udemyでif文について学んだのでアウトプットするよ


Udemyの超人気コース[『100 Days of Code - The Complete Python Pro Bootcamp』][4]にてPythonを学んでいます!

ここでの学習のアウトプットとしてつまづいたところなどを中心にQiitaにまとめていきます

今日はPythonの条件分岐であるif文の書き方について学びました!

使用環境

Python3.8
VScode

Pythonのif文について

ゴタゴタと語るのは煩わしいので、早速コードから。

▼課題①

number = int(input("Which number do you want to choose?"))

if number % 2 == 0:
    print("This is an even number.")
else:
    print("This is an odd number.")

このコードでは、好きな数字を入力して、その数が偶数(even number)である場合は"これは偶数です(This is an even number.)"を返し、奇数(odd number)である場合は"これは奇数です(This is an odd number.)"を返すようにしています。

まず、ifで偶数(even number)である場合 = すなわち2で割って余りがゼロになるということと同じと考えればnumber % 2 == 0と書けます。

さらに、それ以外は全て奇数であると考えられるので、else(それ以外)には条件文は加えずに、シンプルに「これは奇数です(This is an odd number)」と返してあげればいいでしょう。

ポイントはifelseを使う際にこの :(コロン)を忘れないように注意してください。

Rubyから学んだ私は特に、このコロンを忘れがちです。
(幸い、VScodeでpythonのプラグイン を使用しているため、忘れている場合はすぐに波線で教えてくれます

あとはこんなのもやりました。

▼課題②


#pizza order
print("Welcome to Python Pizza Deliveries!")
size = input("What size pizza do you want? S, M , L ?")
add_pepperoni = input("Do you want pepperoni? Y, N ?")
extra_cheese = input("So you want extra cheese? Y, N ?")

bill = 0
#code
if size == "S":
    bill += 15
    print("Small pizza: $15 ")
elif size == "M":
    bill += 20
    print("Medium pizza: $20 ")
elif size == "L":
    bill += 25
    print("Large pizza: $25 ")

if add_pepperoni == "Y":
    if size == "S":
        bill += 2
    else:
        bill += 3
if extra_cheese == "Y":
    bill += 1

print(f"Your final bill is ${bill}. ")

ピザのサイズ(S・M・L)を聞いて、それにトッピングがいるかどうか聞き、最終的な支払い金額を教えてくれるプログラムです。

これも先ほどのほぼ一緒で、if文とセットでelif(else ifの略)を使用している点が違います。

先ほどの単純な if 文や if else 文では、分岐条件は 1 つだけです。

ではelif 文は、どういう時に使うのかというと、そこにさらに分岐条件を加えたい場合に使います。
また、elifはいくつでも追加できるので、分岐条件を制限なく作ることが可能になります。

ここでは、コードの内容を詳しく解説しませんが面白いのでぜひ解読して実行してみてください!

あとは少々トリッキーな分岐条件の課題もやったので軽く紹介します。

▼課題③

print("Welcome to the rollercoaster!")
height = int(input("What is your height in cm?"))
bill = 0
if height >= 120:
    print("You can ride the rollercoaster!")
    age = int(input("What is your age?"))
    if age < 12:
        bill += 7
        print("Child tickets are $7.")
    elif age <= 18:
        bill += 10
        print("Youth tickets are $10.")
    elif age >= 45 and age <= 55:
        print("Everything is going to be okay. Have a free ride on us!")
    else:
        bill = 12
        print("Adult tickets are $12.")
    answer = input("Do you want a photo taken? $3 Y or N.")
    if answer == "Y":
        bill += 3

    print(f"So your totall bill is ${bill}. ")
else:
    print("Sorry, you have to grow taller before you can ride.")

ジェットコースター問題です。
身長を聞いて、120cmであれば、年齢に応じてチケット料金が変わります。さらにそこから写真のオプションをつけるかどうか聞いて、つけると聞いたら最終金額はチケット代にその写真代が加算された値段になります。

この課題はif文の中にelse文やelif文が囲まれていますが、落ち着いて読み解いて行けば簡単です。

講師も言っていましたが、分岐条件が分からなくなったときのポイントはロジックツリーを手書きで書いてみることです。

そうすることでどのように書けばいいかある程度見当がつくと思います。

では、今日はこんな感じで!

また明日も楽しみです