こんにちは、Pythonを用いて計算機アプリを簡単に作ってみたいと思います。CUI版とGUI版の2パターン用意しましたのでコピペして実際に遊んでみてもらえたら幸いです。
Pythonで作る!CUI版計算機アプリ
四則演算(加算、減算、乗算、除算)ができる電卓アプリを作成しています。ユーザーが操作を選択し、対応する関数が呼び出されて結果が表示されます。このコードはコンソールベースの電卓アプリです。
# シンプルな電卓アプリ
# 加算関数
def add(x, y):
return x + y
# 減算関数
def subtract(x, y):
return x - y
# 乗算関数
def multiply(x, y):
return x * y
# 除算関数
def divide(x, y):
if y == 0:
return "エラー: 0で割ることはできません"
return x / y
# メイン関数
def main():
while True:
print("操作を選択してください:")
print("1. 加算")
print("2. 減算")
print("3. 乗算")
print("4. 除算")
print("5. 終了")
choice = input("選択 (1/2/3/4/5): ")
if choice == '5':
break
if choice not in ('1', '2', '3', '4'):
print("無効な選択です。再試行してください。")
continue
num1 = float(input("第1の数値を入力してください: "))
num2 = float(input("第2の数値を入力してください: "))
if choice == '1':
print("結果: ", add(num1, num2))
elif choice == '2':
print("結果: ", subtract(num1, num2))
elif choice == '3':
print("結果: ", multiply(num1, num2))
elif choice == '4':
print("結果: ", divide(num1, num2))
if __name__ == "__main__":
main()
- 最初に、四則演算(加算、減算、乗算、除算)を行うための4つの関数が定義されています。関数は特定の動作を実行するためのブロックです。
main
関数は、プログラムのメイン部分です。この関数は無限ループ (while True
) 内で実行され、ユーザーが選択した操作を処理します。- ユーザーには、1から5までの操作を選択する機会が与えられます。それぞれの操作は、加算、減算、乗算、除算、終了を表します。
- ユーザーが操作を選択すると、その選択が
choice
として保存されます。プログラムはこの選択に応じて異なる操作を実行します。 - もし選択が ‘5’ であれば、プログラムは無限ループを抜け出し、アプリが終了します。
- もし選択が ‘1’ から ‘4’ のいずれかでない場合、無効な選択としてエラーメッセージが表示され、ユーザーは再試行を求められます。
- 数値を入力すると、それらの数値が
num1
およびnum2
として保存されます。これらは計算に使用されます。 - 選択に応じて、対応する関数(加算、減算、乗算、除算)が呼び出され、計算結果が表示されます。
- プログラムの実行は
main()
関数で始まります。この関数はコードの最後でif __name__ == "__main__":
の条件で呼び出されます。
Pythonで作る!GUI版計算機アプリ
import tkinter as tk
# 数字ボタンがクリックされたときの処理
def button_click(number):
current = entry.get()
entry.delete(0, tk.END)
entry.insert(0, current + str(number))
# "="ボタンがクリックされたときの処理
def calculate():
result = eval(entry.get())
entry.delete(0, tk.END)
entry.insert(0, result)
# クリアボタンがクリックされたときの処理
def clear():
entry.delete(0, tk.END)
# GUIウィンドウの作成
window = tk.Tk()
window.title("電卓")
# 入力欄の作成
entry = tk.Entry(window, width=20)
entry.grid(row=0, column=0, columnspan=4)
# 数字ボタンの作成
buttons = [
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
]
row_val = 1
col_val = 0
for button in buttons:
tk.Button(window, text=button, padx=20, pady=20, command=lambda b=button: button_click(b) if b != "=" else calculate() if b == "=" else clear()).grid(row=row_val, column=col_val)
col_val += 1
if col_val > 3:
col_val = 0
row_val += 1
# ウィンドウの実行
window.mainloop()
import tkinter as tk
: Tkinterライブラリをtk
としてインポートします。TkinterはPythonの標準GUIライブラリで、ウィンドウベースのアプリケーションを作成するのに使います。button_click(number)
関数: 数字ボタンがクリックされたときに呼び出される関数です。現在の入力を取得し、クリアして新しい数字を追加します。calculate()
関数: “=” ボタンがクリックされたときに呼び出される関数です。入力された式を計算し、その結果を表示します。clear()
関数: クリアボタンがクリックされたときに呼び出される関数です。入力欄をクリアします。window = tk.Tk()
: GUIウィンドウを作成します。window.title("電卓")
: ウィンドウのタイトルを設定します。entry = tk.Entry(window, width=20)
: テキスト入力欄(Entryウィジェット)を作成し、20文字幅に設定します。entry.grid(row=0, column=0, columnspan=4)
: 入力欄をウィンドウに配置します。row=0
とcolumn=0
は、行と列の位置を示します。columnspan=4
は、4列にまたがることを意味します。- 数字ボタンの作成:
buttons
リスト内に数字や演算子を含むボタンが作成されます。これらのボタンはグリッド形式で配置され、クリック時に対応する関数が呼び出されます。 - ウィンドウの実行:
window.mainloop()
は、ウィンドウを表示し、ユーザーがアプリを使用できるようにします。ウィンドウを閉じるまでプログラムはこの行で停止します。
まとめ
今回はコンソール上で動くCUIの計算機アプリとGUIの計算機アプリを紹介しました。Pythonの学習に役に立ててもらえれば幸いです!