简洁计算器Python代码

简洁的Python计算器,直接上代码(用时10分钟):

Python Gui图形化开发探索GUI开发的无限可能,使用强大的PyQt5、默认的Tkinter和跨平台的Kivy等工具,让Python成为你构建应用程序的得力助手。从本机用户界面到现代触摸设备的开源Libavg,再到PySimpleGUI的简化入门,每个工具都有其独特的优势。PyForms让你在不同平台上创建高度交互的应用程序,而Wax作为wxPython的友好包装器提供更简单的访问方式。PySide2作为Qt的官方模块提供验证过的工具和库,而轻量级的PyGUI框架则简化了Python应用程序的本机用户界面创建。无论你是新手还是经验丰富的开发者,这些工具都能满足你对于GUI开发的各种需求。icon-default.png?t=N7T8https://fostmar.online/archives/471/

import tkinter as tk

def button_click(number):
    current = entry.get()
    entry.delete(0, tk.END)
    entry.insert(0, current + str(number))

def clear():
    entry.delete(0, tk.END)

def calculate():
    try:
        result = eval(entry.get())
        entry.delete(0, tk.END)
        entry.insert(0, str(result))
    except Exception as e:
        entry.delete(0, tk.END)
        entry.insert(0, "Error")

def key_press(event):
    if event.keysym in ("Return", "="):
        calculate()
    elif event.keysym == "c":
        clear()
    elif event.keysym in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"):
        button_click(event.keysym)
    elif event.keysym in ("plus", "minus", "asterisk", "slash"):
        button_click("+" if event.keysym == "plus" else "-" if event.keysym == "minus" else "*" if event.keysym == "asterisk" else "/")

root = tk.Tk()
root.title("Calculator")
root.geometry("340x400")

entry = tk.Entry(root, width=16, font=("Arial", 24), bd=10, relief=tk.SUNKEN, justify=tk.RIGHT)
entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10, ipady=10)

buttons = [
    "7", "8", "9", "/",
    "4", "5", "6", "*",
    "1", "2", "3", "-",
    "0", ".", "=", "+"
]

row_val = 1
col_val = 0

for button_text in buttons:
    tk.Button(root, text=button_text, width=4, height=2, font=("Arial", 20), command=lambda text=button_text: button_click(text) if text != "=" else calculate()).grid(row=row_val, column=col_val, padx=5, pady=5)
    col_val += 1
    if col_val > 3:
        col_val = 0
        row_val += 1

tk.Button(root, text="C", width=4, height=2, font=("Arial", 20), command=clear).grid(row=row_val, column=col_val, padx=5, pady=5)

# 绑定键盘事件
root.bind("<KeyPress>", key_press)

root.mainloop()
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值