どうも!リョクちゃです。
今回は、初心に戻ってPythonで偶数か奇数かを判定する方法を紹介し、
プログラムを作っていきます。
これ、意外とプログラミング学びたての人が躓きやすかったりする上、
練習問題では割と早期に出てきますね。ここで挫折する人も多いはず!
ということで、紹介していきます。
ちなみに前回はこちら
目次
偶数・奇数の定義
定義も何も、小学生高学年以上(小学3年生ぐらいから)なら知っての通り、
ある数字を2で割った時に、割り切れる場合と割り切れない場合ってありますよね。
ここでいう割り切れているとは、余りが0のことを指します。
割り切れる場合の、数字を偶数っていいます。
⇒ 例) 2は2で割り切れるので偶数ですね。
割り切れない場合の数字を奇数っていいます。
つまり、あまりが発生する数字は奇数になりますね。
⇒ 例) 3は2で割り切ることができないので奇数ですね。
数式で表すと、
$ある数字 ÷ 2 = ?$
右辺の値が、0であれば割り切れているので偶数
0以外であれば、割り切れていないので奇数になります。
偶数・奇数の判定をプログラミングで表すと?
前述で偶数と奇数が何者なのかわかりました。
2で割り切れれば、偶数、割り切れなければ奇数でしたね。
このことから、パターンがあることがわかります。
これを置き換えると、何らかの条件があることがわかります。
ここでいう条件は、2で割り切れるかどうかになります。
この条件をプログラムに組み込んであげることができれば、
偶数と奇数を判定させることができますね。
さて、プログラムに条件を組み込む…にあたって、何が必要かを考えていくことになります。
(言葉が難しいですね。。。)
プログラムでは、与えられる条件によって動作(処理)を変える場合が、
モノによってはあります。例えば、家庭にあるエアコンで説明すると、
エアコンには、リモコンがありますね。このリモコンよく見ると、
“冷房“、”暖房“、”除湿“といったボタンがあります。
これらのいずれかを押すことで、その機能を使うことができます。
冷房を押すと、エアコンから冷気が流れ、部屋の温度を下げてくれますね。
一方で暖房を押すと、エアコンから暖気が流れ、部屋の温度を上げてくれます。
このように、あるボタンを押すと、それに合わせた動作をしてくれます。
これが条件による分岐を表しています。
これを偶数と奇数に当てはめてみると、
こんな感じですね、あとはこれをプログラムコードで表せれば、
偶数と奇数を判定できますね。
偶数と奇数を判定するプログラムの実装
それでは、条件分岐について、Pythonで実装する場合は、以下のように表現できます。
if 条件式 :
処理1
else :
処理2
というような記述で表現ができます。
詳しくは、こちらで解説してるので、興味のある方は一度ご覧ください。
条件式には、先ほどの”ボタンがON”や”3 ÷2 = ?”が入ります。
条件式に当てはまる場合は、処理1が動作し、当てはまらない場合は処理2が動作します。
これを2で割り切れるかどうかで当てはめてみると、
if X ÷ 2 = 0(条件式):
割り切れる場合の処理(処理1)
else:
割り切れない場合の処理(処理2)
※()内の表記は補足
ちなみに”X”は与えられた”ある数字”になります。
と、こんな風に記述することができますね!
こうして1つずつを当てはめていくと簡単ですね。
図に書いて、文法に落とし込んでいくとわかりやすいですよ。
Pythonで表現
これを正しく、Pythonで表現すると、以下の通りになります。
1 2 3 4 5 6 |
X = int(input()) if X % 2 == 0: print("偶数です") else: print("奇数です") |
また、図で表すと
いくつか補足すると、
print()は()内の値を出力してくれる関数です。
ここでは、偶数であれば、”偶数です”、奇数であれば”奇数です”と出力してくれます。
また、Xは与えられた数字が代入されます。
input()では、私たちユーザが何らかの数字を入力した結果をXに代入します。
int()されているのは、与えられた結果は文字として扱われてしまうので、
数字として扱えるように変換をします。
条件式として記述した、X % 2 = 0は、Pythonでは割り算は、
“/(スラッシュ)“で表されるのですが、偶数と奇数を判定する場合、
余りが0であるかどうかが判断のポイントとなります。
X / 2としてしまうと、結果としては”商“が返されてしまうため、
期待する結果が返ってきません。
そのため、X % 2とすることで”余り“を取得しています。
関数化してみる
ちょこっと応用的なことをしてみます。先ほど書いたプログラムでは、汎用性がなく、
いつでも利用したいってなった時、いちいち書いていかないといけません。
それだと、面倒くさいので、いつでも呼び出せるよう関数化しちゃいます。
1 2 3 4 5 |
def IsOddOrEven(number): if number % 2 == 0: return true else: return false |
関数を呼び出した時、trueが返ってきたら偶数でfalseが返ってきたら奇数になります。
意外と使い道はあるかと思います。
まとめ
例えをお見せしながら、説明していきましたが、難しいですね。
かえってわかりづらくなってしまったかもしれません。
今回大事なのは、条件の分岐、Pythonで表現すると、if文になります。
これさえ、覚えておけば、どうにか偶数、奇数の判定はできます。
条件分岐のいろいろについてはこちら
更には、これを関数化することで、いつでも判定することができるコードの完成です。
関数については、こちら
まずは、書いてみて動き方がわかってきたら、
どんなことができるのか考えてみるといいです。
最後までお読みいただきありがとうございます。
・こちらの書籍を参考にPythonの理解を深めました。