80行代码使用Python+tkinter实现一个计算器

闲话不说,直奔主题。建议大家跟着敲一遍代码,体会一下代码复用、字符串方法的运用和动态创建组件的妙处,然后在这个框架的基础上进行补充和发挥。

选择任何一款Python开发环境,创建一个程序文件,命名为tkinter_Calculator.pyw,然后编写下面的代码:

1)导入标准库re和tkinter,创建并简单设置应用主程序,在窗口顶部放置一个只读的文本框用来显示信息。

2)编写计算器上各种按钮的通用处理代码。

3)创建计算器上的各种按钮,设置相应的属性和行为,启动消息主循环。

编写完成,运行界面如图:

----------相关阅读----------

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享一:基础知识(106页)

Python实现定时自动关闭的tkinter窗口

Python+tkinter模拟“记住我”自动登录原理

基于Python+tkinter+pygame的音乐播放器完整源码

Python使用tkinter打造自定义对话框完整代码

Python+tkinter动态创建与销毁组件小案例

Python实现屏幕取色器功能

Python编写抽奖式随机提问程序

Python使用tkinter编写图片浏览程序

Python实现倒计时按钮

Python使用tkinter的Treeview组件实现表格功能

详解Python GUI版24点游戏制作过程

Python tkinter版猜数游戏

Python+tkinter实现任意多层级关系的组合框

Python+tkinter+pillow实现屏幕任意区域截图

大家都在学Python,你和别人的差距在哪?

大学生们颤抖吧,中学生已经开始学Python了!

祝所有程序员1024节日快乐

学会提问,你就成功了一大半!

盘点那些让人上火的提问方式(论如何让交流更高效)

----------喜大普奔----------

1、继《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》、《Python程序设计开发宝典》之后,董付国老师新作《中学生可以这样学Python》已于2017年10月正式出版,已在各大书城全面上架。大学生们颤抖吧,中学生已经开始学Python了!

2、董付国老师6本Python系列图书阅读指南

3、董老师免费视频地址: http://pan.baidu.com/s/1c14WYn2 密码: 9xwr

--------近期Python培训班安排------

1、2017年12月21日-25日 (21日报到)  厦 门:Python编程及应用--数据分析与科学计算可视化培训班

2、2018年1月12日至14日(11日报到) 合肥:全国Python科研应用专题实操培训班

3、2018年1月19日---1月21日(18日报到) 烟台:2018年全国中高等院校教师 “Python编程及应用”培训班通知

4、2018年1月28日—2月2日(28日全天报到)  厦门:“Python编程及大数据应用”课程教师(厦门)寒假研修班

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个简单的 Python Tkinter 实现计算器的示例代码,您可以参考: ```python import tkinter as tk class Calculator: def __init__(self): self.current = "" self.result = 0 self.operator = "" self.reset = False def add_digit(self, digit): if self.reset: self.clear() self.current += str(digit) def add_decimal(self): if self.reset: self.clear() if "." not in self.current: self.current += "." def add_operator(self, operator): if self.reset: self.operator = operator self.reset = False else: self.calculate() self.operator = operator self.result = float(self.current) self.current = "" def calculate(self): if self.operator == "+": self.result += float(self.current) elif self.operator == "-": self.result -= float(self.current) elif self.operator == "*": self.result *= float(self.current) elif self.operator == "/": self.result /= float(self.current) self.operator = "" self.current = str(self.result) self.reset = True def clear(self): self.current = "" self.result = 0 self.operator = "" self.reset = False class CalculatorApp(tk.Frame): def __init__(self, parent): tk.Frame.__init__(self, parent) self.parent = parent self.calculator = Calculator() self.current_label = tk.Label(self.parent, text="0", font=("Helvetica", 20)) self.current_label.grid(row=0, column=0, columnspan=4, sticky="nsew") buttons = [ "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+" ] self.buttons = [] for i in range(len(buttons)): button = tk.Button(self.parent, text=buttons[i], font=("Helvetica", 16), command=lambda x=buttons[i]: self.button_click(x)) button.grid(row=i//4+1, column=i%4, sticky="nsew") self.buttons.append(button) self.parent.grid_columnconfigure(0, weight=1) self.parent.grid_rowconfigure(0, weight=1) for i in range(1, 5): self.parent.grid_rowconfigure(i, weight=1) self.parent.grid_columnconfigure(i-1, weight=1) def button_click(self, button): if button in "0123456789": self.calculator.add_digit(button) self.current_label.configure(text=self.calculator.current) elif button == ".": self.calculator.add_decimal() self.current_label.configure(text=self.calculator.current) elif button in "+-*/": self.calculator.add_operator(button) elif button == "=": self.calculator.calculate() self.current_label.configure(text=self.calculator.current) elif button == "C": self.calculator.clear() self.current_label.configure(text=self.calculator.current) if __name__ == "__main__": root = tk.Tk() root.title("Calculator") app = CalculatorApp(root) app.grid(sticky="nsew") root.grid_columnconfigure(0, weight=1) root.grid_rowconfigure(0, weight=1) root.mainloop() ``` 在这个示例中,我们创建了一个 Calculator 类来处理所有计算逻辑,并创建了一个 CalculatorApp 类来创建用户界面。在用户界面中添加了一个 Label 来显示当前输入和计算结果,并在每个按钮上绑定一个回调函数来处理用户的输入。当用户按下“等号”时,计算器将计算结果并在屏幕上显示。当用户按下“C”按钮时,计算器将重置并返回默认状态。 您可以运这个代码来查看它的效果,然后根据您的需求进修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值