Pythonを学んでいると、電卓(計算機)を作るといったエキササイズが出てくるようだ。
ということで、動画を参考に最初に作ったコードがこれ。
────────────────────────────────
#Python calculator operator = input("Choose an operator (+ - * /): ") num1 = float(input("Enter the 1st number: ")) num2 = float(input("Enter the 2nd number: ")) if operator == "+": result = num1 + num2 print(round(result, 3)) elif operator == "-": result = num1 - num2 print(round(result, 3)) elif operator == "*": result = num1 * num2 print(round(result, 3)) elif operator == "/": result = num1 / num2 print(round(result, 3)) else: print(f"{operator} is not a valid operator")
────────────────────────────────
まず
operator = input(“Choose~~~”)
で”+, -, * , /”を選ぶよう指示が出る。
つぎに、num1とnum2で計算に使用する数字を入力する。
演算子によって、足したり引いたりして、その結果を表示する。
ただし、演算子に”+, -, * , /”以外のものを入力すると、
else:
print(f”{operator} is not a valid operator”)
の箇所が実行され、{operator(入力した文字など)}は有効な演算子ではありません と表示させる。
この計算機を作ったあとに思ったのが、以下の二点。
①そもそも演算子でない値を入力したら、その時点で”それは演算子じゃないよ!!”と表示させたい
②割り算の際、num2に0を入力したら、”0じゃ割れないよ!!”と表示させたい
ということで、色々試行錯誤して最終的に書いたのがこれ。
────────────────────────────────
# Python calculator operator = input("Choose an operator (+ - * /): ") if operator not in ["+", "-", "*", "/"]: print("You didn't choose an operator! Try again!") else: num1 = float(input("Enter the 1st number: ")) num2 = float(input("Enter the 2nd number: ")) if operator == "+": result = num1 + num2 print(f"The result is : {result}") elif operator == "-": result = num1 - num2 print(f"The result is : {result}") elif operator == "*": result = num1 * num2 print(f"The result is : {result}") elif operator == "/": if num2 == 0: print("You can't divide by zero!") else: result = num1 / num2 print(f"The result is : {result}")
────────────────────────────────
まずoperatorの入力を促す。
if operator not in [“+”, “-“, “*”, “/”]:
print(“You didn’t choose an operator! Try again!”)
この箇所で、operatorとして入力された値が、”+”, “-“, “*”, “/”のいずれかでない場合、
演算子を選んでないよ!!もう1回やってくれい!!と表示させる。
そして、次のelse:文で(つまり、ユーザがちゃんと演算子を入力した場合)、
num1とnum2の入力を促す。
+なら足し算、-なら引き算・・・といった具合。
ただし、入力された演算子が”/”だった場合は、
まずnum2が0でないかのチェックが入る。↓この部分。
if num2 == 0:
print(“You can’t divide by zero!”)
0だった場合は、0じゃ割れないよ!と表示させる。
0以外なら、num1 / num2を行い、その結果を表示する。
一応、何回か動かしてみてちゃんと動作したから、問題ないと思われる。
自分で”こうしたらもっとよくなるんじゃないかな?!”と思ったアイデアを実現できるとすごく楽しいなあ。
というか、仮に実現できてなくても、学ぶことがあればすごく楽しいと感じる。
やはり勉強するうえでは楽しむことって本当に大事だと思う今日このごろ。
引き続きPython、勉強していこう。
それでは。