VBAユーザーの為のPYTHON 08回
【動画で学べる内容】
●1.Pythonで関数を自作するにはどうするか。
●2.IFを使った条件分岐をPythonコードで書いてみる
●3.Pythonのif文は小文字
●4.ブロックの開始を示すためにコロン(:)を使用
●5.インデントは必須
●6.input()関数の使い方
1. ExcelVBAで書いたマクロコードは以下のようになります。それをPythonで書くとどのようなコードになるのかという説明をします。

2. VBA大文字と小文字、Pythonは小文字
IF文はVBAで使用されるキーワードであり、大文字で始まります。
if文はPythonで使用される組み込みキーワードであり、小文字で始まります。Else IFは小文字でelif、 Else はelse 、End IF はPythonの場合は不要です。

4. 最初に示したVBAコードをPythonコードで書き直すとこのようになります。
Pythonコードが以下のようにシンプルなのは、インデントが構文の一部になっているためです。
Pythonでは、ブロックの開始を示すためにコロン(:)を使用し、ブロックのコードはインデントによって区切ります。End Ifは不要です。インデントがなければブロックが終了するからです。
# 敏雄の点数を例として設定
点数 = 70
if 40 <= 点数 <= 60:
評価 = '良'
elif 点数 < 40:
評価 = '可'
else:
評価 = '優'
print(f"敏雄の点が{点数}点なので、敏雄は{評価}をもらえるでしょう。")

5.条件が一つの場合はこのようなコードになります。
# 条件が1つ
点数 = 70
if 点数 >= 60:
print("優です。")

6.条件を2通りに分岐する場合はこのようなコードになります。
# 条件が2つ
点数 = 50
if 点数 >= 60:
print("優です。")
else:
print("優ではありません。")

7. 最初の3通りの分岐のコードでは、print()関数を使った引数の文字列の中でf文字を使いました。
f文字を使うと、とても柔軟な文字列を表示することができます。

8. f文字とは、Format済み文字列リテラル(文字を直接コードにベタ打ち)ということを示しています。

9. 関数を作成することで、同じ処理を複数回実行する必要がある場合でも、同じコードを何度も書く必要がなくなります。
出現回数の多いコードは関数にしておくと便利です。
Pythonでは、def キーワードを使用して関数を定義します。
関数の本体はインデント(字下げ)されたブロック内に記述されます。
Pythonの関数は、return キーワードを使用して戻り値を返します。

10. 最初の3通りの場合分けのPythonコードを関数にしてみました。
# 関数を作成
def 評価(点数):
if 40 <= 点数 <= 60:
return '良'
elif 点数 < 40:
return '可'
else:
return '優'

11. 実行すると、期待通りの答えを得ることができました。

12. さてせっかく関数も作成したことですので、柔軟に使ってもらえるようにユーザーに値を入力してもらうためのinput()関数を使ってみましょう。
Pythonのinput()関数は、ユーザーからの入力を受け取る際に使用される非常にシンプルで便利な関数です。

13. input()関数の引数はオプションですので、指定しない場合はユーザーに何もメッセージを表示せずに入力を待ちます。
それですと、不親切ですから、やはりメッセージを表示させましょう。

14. 数値入力の処理
input()関数が受け取るのは文字列なので、数値を入力しても文字列として受け取ります。
ユーザーから年齢を入力してもらい、それを数値として扱いたい場合には数値に変換してやる必要があります。int()関数の登場です。
# ユーザーに入力してもらう
点数 = int(input("点数を入力してください。"))
コードはこれだけ、これでユーザーからの入力データを受け取れます。

15. 今回はVBAで実行していた条件分岐のコードをPythonでする場合についてのコードを作成しながら、学習しました。 formatメソッドやf文字についてのプリント関数で詳しく説明しています。興味のある方はそちらもご覧ください。