現在の見出し:2.2節:計算結果の表示改良
見出し一覧
- 2.2節:計算結果の表示改良
- - 計算式表示の実装
- - 結果フォーマットの改良
【PR】『Python』を学べる企業・個人向けのプログラミングコース
計算式表示の実装
前節(第2章 2.1節)で作成したコードを基盤として、計算式表示機能を実装していきます。
前節では条件分岐条件分岐はプログラム内で指定した条件によって処理の分岐を行う制御構造です。による演算処理を実装し、選択された演算子演算子は数値や文字列などのデータを扱う際に使用される記号や記述方法です。に応じて計算結果のみを表示していました。実際の電卓アプリでは、ユーザーが入力した計算式を明確に表示することによって、「何を計算しているか」を視覚的に確認できる機能が必要になります。計算式表示機能では、数値と演算子を組み合わせた計算式を作成し、結果と合わせて表示する処理を実装します。
計算式表示の実装では、f-stringを使用して「{num1} {operator} {num2}」の形式で計算式を構築します。この処理を各条件分岐内で実行することによって、加算、減算、乗算、除算のすべての演算で統一された計算式表示を実現できます。計算式を変数変数はデータを一時的に記憶しておく場所です。に保存してから結果と合わせて表示することで、ユーザーは計算の内容と結果を同時に確認できるようになります。
この実装により、電卓アプリの使いやすさが大幅に向上し、計算内容の確認が容易になることによって、ユーザーの入力ミスを防ぐ効果も期待できます。
# コード
print("電卓アプリ")
print("2つの数値を入力してください")
# 最初の数値を入力
num1 = float(input("最初の数値を入力してください: "))
# 2番目の数値を入力
num2 = float(input("2番目の数値を入力してください: "))
# 演算子を入力
operator = input("演算子を入力してください(+, -, *, /): ").strip()
# 条件分岐による演算処理
if operator == "+":
result = num1 + num2
formula = f"{num1} {operator} {num2}"
print(f"計算式: {formula}")
print(f"計算結果: {result}")
elif operator == "-":
result = num1 - num2
formula = f"{num1} {operator} {num2}"
print(f"計算式: {formula}")
print(f"計算結果: {result}")
elif operator == "*":
result = num1 * num2
formula = f"{num1} {operator} {num2}"
print(f"計算式: {formula}")
print(f"計算結果: {result}")
elif operator == "/":
if num2 != 0:
result = num1 / num2
formula = f"{num1} {operator} {num2}"
print(f"計算式: {formula}")
print(f"計算結果: {result}")
else:
print("エラー: ゼロで割ることはできません")
else:
print("エラー: 無効な演算子です")
# 実行結果
電卓アプリ
2つの数値を入力してください
最初の数値を入力してください: 15
2番目の数値を入力してください: 3
演算子を入力してください(+, -, *, /): *
計算式: 15.0 * 3.0
計算結果: 45.0
行数 | コード | 解説 |
---|---|---|
1行目 | print("電卓アプリ") |
アプリケーションのタイトルを表示する |
2行目 | print("2つの数値を入力してください") |
ユーザーに数値入力を促すメッセージを表示する |
3行目 | num1 = float(input("最初の数値を入力してください: ")) |
ユーザーから最初の数値を文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。で取得し、float()で浮動小数点数浮動小数点数は実数を表現するための数値表現方式で、仮数部と指数部に分けて表現し、非常に大きな数や小さな数を効率的に扱えます。に変換してnum1変数に代入代入は変数に値を割り当てる操作です。する |
4行目 | num2 = float(input("2番目の数値を入力してください: ")) |
ユーザーから2番目の数値を文字列で取得し、float()で浮動小数点数に変換してnum2変数に代入する |
5行目 | operator = input("演算子を入力してください(+, -, *, /): ").strip() |
ユーザーから演算子を文字列で取得し、strip()メソッドメソッドは特定の処理をまとめたプログラムの塊です。で前後の空白を除去してoperator変数に代入する |
6行目 | if operator == "+": |
if文を使用してoperator変数の値が「+」と等しいかを比較演算子比較演算子は二つの値を比較する際に使用する記号です。で判定する |
7行目 | result = num1 + num2 |
加算演算子を使用してnum1とnum2を足し合わせ、結果をresult変数に代入する |
8行目 | formula = f"{num1} {operator} {num2}" |
f-stringを使用してnum1、operator、num2を組み合わせた計算式を作成し、formula変数に代入する |
9行目 | print(f"計算式: {formula}") |
f-stringを使用してformula変数の値を表示する |
10行目 | print(f"計算結果: {result}") |
f-stringを使用してresult変数の値を表示する |
11行目 | elif operator == "-": |
elif文を使用してoperator変数の値が「-」と等しいかを判定する |
12行目 | result = num1 - num2 |
減算演算子を使用してnum1からnum2を引き、結果をresult変数に代入する |
13行目 | formula = f"{num1} {operator} {num2}" |
f-stringを使用してnum1、operator、num2を組み合わせた減算の計算式を作成し、formula変数に代入する |
14行目 | print(f"計算式: {formula}") |
f-stringを使用して減算の計算式を表示する |
15行目 | print(f"計算結果: {result}") |
f-stringを使用して減算の結果を表示する |
16行目 | elif operator == "*": |
elif文を使用してoperator変数の値が「*」と等しいかを判定する |
17行目 | result = num1 * num2 |
乗算演算子を使用してnum1とnum2を掛け合わせ、結果をresult変数に代入する |
18行目 | formula = f"{num1} {operator} {num2}" |
f-stringを使用してnum1、operator、num2を組み合わせた乗算の計算式を作成し、formula変数に代入する |
19行目 | print(f"計算式: {formula}") |
f-stringを使用して乗算の計算式を表示する |
20行目 | print(f"計算結果: {result}") |
f-stringを使用して乗算の結果を表示する |
21行目 | elif operator == "/": |
elif文を使用してoperator変数の値が「/」と等しいかを判定する |
22行目 | if num2 != 0: |
if文を使用してnum2が0でないかを不等価演算子で判定する |
23行目 | result = num1 / num2 |
除算演算子を使用してnum1をnum2で割り、結果をresult変数に代入する |
24行目 | formula = f"{num1} {operator} {num2}" |
f-stringを使用してnum1、operator、num2を組み合わせた除算の計算式を作成し、formula変数に代入する |
25行目 | print(f"計算式: {formula}") |
f-stringを使用して除算の計算式を表示する |
26行目 | print(f"計算結果: {result}") |
f-stringを使用して除算の結果を表示する |
27行目 | else: |
num2が0の場合の処理を定義するelse文 |
28行目 | print("エラー: ゼロで割ることはできません") |
ゼロ除算ゼロ除算は数をゼロで割る操作を指し、数学的に定義されておらず、多くのプログラミング言語でエラーや例外を引き起こします。エラーのメッセージを表示する |
29行目 | else: |
無効な演算子が入力された場合の処理を定義するelse文 |
30行目 | print("エラー: 無効な演算子です") |
無効な演算子エラーのメッセージを表示する |