if文は、pythonでプログラムを書くときに使いこなせると便利ですよね。
このif文、構造自体はそれほど難しくないのですが、作るときの論理を理解するのが意外と難しいのです。
そこで、実際にif文を書いてみてた結果とを書いてみましょう。
if文の基本を書いてみる

まず、数学のテストの点数が合格か不合格かを判定するプログラムを、書いてみます。
数学 = int(input("点数を入力してください: "))# ユーザーに整数で点数の入力を促す。 if 数学 >= 60: # もし入力が60点以上の場合 print("試験に合格です。おめでとう") # 左のコメントが表示される。 if 数学 < 60: # もし入力が60点未満の場合 print("不合格です。もう少し勉強してください。") # 左のコメントが表示される。 点数を入力してください: 70 # 70が入力されたので、下記のコメントが表示される。 試験に合格です。おめでとう

入力が70点だったので、「試験に合格です。おめでとう」というコメントが表示され、入力された点数が60点未満の場合は「不合格です」というコメントが出ます。

でもif文を二つ重ねるよりも、else を使うことでもう少し簡潔にプログラムをかけます。
if文でelseを使う
では先に出てきた、ifを2回使ったプログラムを、elseを使ってもっと簡潔に書いてみましょう。
数学 = int(input("点数を入力してください: ")) # ユーザーに整数で点数の入力を促す。 if 数学 >= 60: # もし入力が60点以上の場合 print("試験に合格です。おめでとう") # 左のコメントが表示されます。 else: #その他(つまり60点未満の場合) print("不合格です。もう少し勉強してください。") #左のコメントが表示されます。 点数を入力してください: 70 # 70が入力されたので、下記のコメントが表示される。 試験に合格です。おめでとう

このプログラムで、入力が60点以上の場合「試験に合格です」とコメントが出、60点未満は「不合格」というコメントが出るようelseで振り分けています。

しかし、これでは不十分なんですよね。

そう入力する数の範囲を絞ってあげないと、このプログラムは使えません。
つまり、このプログラムに100点を超えた値を入力しても「合格」。
そしてマイナスの値を入力しても「不合格」が出てしまうんですね。
試験の点数では通常100点以上の点数とマイナスの点数は出ませんよね。
そこで、100点以上やマイナスの点数が入力された場合「不正な数の入力です」というコメントが出るように条件をさらに付けくわえます。
つまり条件分岐が3になるので、if、 else、 elif、を使う必要があります。
if、else、elifを使う

では100点以上やマイナスの数が入力されると「不正な数の入力です」とコメントが出るようにします。
数学 = int(input("点数を入力してください: ")) # ユーザーに整数で点数の入力を促す。 if 数学 > 100 or 数学 < 0: # 入力が100点以上またはマイナスの場合 print("不正な数の入力です") # 「不正な入力です」とコメントを出す。 elif 数学 >= 60: # その他もし入力が60点以上の場合。 print("試験に合格です。おめでとう。") # 左のコメントが表示されます。 else: # その他、つまり60点未満の場合 print("不合格です。もう少し勉強してください。") # 左のコメントが表示されます。 点数を入力してください: 200 # 入力が200だったので、下記のコメントが表示されます。 不正な数の入力です
まずプログラムの2行目で、どのような数を入れれば「不正な数の入力です」とコメントされるのかを定義します。
つまり「数学>100」そして「数学<0」の場合「不正な入力です」とコメントが出るようにします。
そしてelifを使って 60以上で合格、elseを使って60未満は不合格を表示します。
if、elif、else を使った正負判定プログラム

ではちょっと練習でプログラムを書いてみましょう。
if、elif、elseを使って正負判定のプログラムを書いてみます。
入力した値が「正の数」か「負の数」かを判定し、0の場合は「0です」とコメントするようにします。
数 = int(input("値を入力してください: "))# ユーザーに数の入力を促す。 if 数 < 0: # もし数が0未満の場合 print("負の値") #左のコメントを表示 elif 数 > 0: # もし数が0超過の場合 print("正の値") # 左のコメントを表示 else: # それ以外、つまり0の場合。 print("0です。") # 左のコメントを表示 値を入力してください: 0 #入力が0なので、下記のコメントを表示。 0です。
以上if文を使ったプログラムを書いてみました。
関連記事


コメント