掲示板<26>2026/1/11
from=TOZ

Pythonを利用③「dentaku.py」

pyファイルをクリックしただけで実行できるようにするには、pyプログラムの先頭に 「#!/usr/bin/env python3」を入れると可能となる。 このあと、このpyプログラムのアクセス権(パーミッション)を次のように設定する。 「chmod +x dentaku.py」 (注)tkinterエラーが出たときは、「python3-tk」をインストールする。
#!/usr/bin/env python3
import tkinter as tk
from tkinter import messagebox

def on_click(button_text):
    if button_text == "=":
        try:
            # 入力された式を計算
            result = eval(entry.get())
            entry.delete(0, tk.END)
            entry.insert(tk.END, str(result))
        except Exception:
            messagebox.showerror("エラー", "計算式が正しくありません")
            entry.delete(0, tk.END)
    elif button_text == "C":
        entry.delete(0, tk.END)
    else:
        entry.insert(tk.END, button_text)

# メインウィンドウの設定
root = tk.Tk()
root.title("Python電卓")

# テキスト入力欄
entry = tk.Entry(root, width=20, font=("Arial", 18), borderwidth=5,
 relief="flat", justify='right')
entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)

# ボタンの配置
buttons = [
    '7', '8', '9', '/',
    '4', '5', '6', '*',
    '1', '2', '3', '-',
    'C', '0', '=', '+'
]

row_val = 1
col_val = 0

for button in buttons:
    action = lambda x=button: on_click(x)
    tk.Button(root, text=button, width=5, height=2, font=("Arial", 14),
              command=action).grid(row=row_val, column=col_val, padx=2, pady=2)
    col_val += 1
    if col_val > 3:
        col_val = 0
        row_val += 1

root.mainloop()


← 一覧へ戻る