Python简易计算器:tkinter实现四则运算与三角函数
在Python期末大作业中,学生使用了Tkinter库来开发一个简易计算器,该计算器实现了基本的四则运算和部分三角函数计算功能。代码的核心部分主要包含以下几个关键组件: 1. 导入模块:`import tkinter` 和 `import math` 分别用于图形用户界面(GUI)操作和数学计算。 2. 变量声明与状态管理: - `lists` 用于存储用户输入的数字和符号。 - `isPressSign` 和 `isPressNum` 是布尔变量,分别记录是否正在输入数字或等待输入符号。 - `root` 是Tkinter创建的窗口实例,设置了最小尺寸和标题。 3. 函数定义: - `pressNum(num)`:处理数字输入,将数字添加到列表中,并根据上一次输入的状态决定是否清空结果。 - `pressCompute(sign)`:处理运算符输入,将当前数字、运算符和结果加入列表,然后可能清空列表(如AC键)、处理括号(如b键)或执行计算(其他运算符)。 - `myreciprocal()`:实现求倒数功能,获取当前输入的数字,计算其倒数并格式化结果。 - `myon()`:实现取负功能,类似于求倒数,但结果取相反数。 4. 主程序逻辑: - 当用户点击数字时,调用`pressNum`函数并将数字显示在结果显示框`result`中。 - 当用户点击运算符或特殊功能按钮(如AC、b等)时,调用相应的函数,更新列表并可能改变显示内容。 - 在进行复杂运算(如乘除、加减)时,先将列表中的所有元素拼接成字符串`computrStr`,然后通过`eval()`函数计算结果,并格式化显示。 总结来说,这个Python项目让学生熟悉了如何利用Tkinter构建简单的图形用户界面,同时结合Python的基本数学库`math`实现了基础的算术和数学函数操作。通过这个项目,学生能够巩固Python编程基础,提升GUI编程能力和理解运算符优先级等概念。
import math
lists = []
isPressSign = False
isPressNum = False
root = tkinter.Tk()
root.minsize(490,500)
root.title('¼ÆËãÆ÷')
def pressNum(num):
global lists
global isPressSign
if isPressSign == False:
pass
else:
result.set(0)
isPressSign = False
oldnum = result.get()
if oldnum =='0':
result.set(num)
else:
newnum = oldnum + num
result.set(newnum)
def pressCompute(sign):
global lists
global isPressSign
num = result.get()
lists.append(num)
lists.append(sign)
isPressSign = True
if sign =='AC':
lists.clear()
result.set(0)
if sign =='b':
a = num[0:-1]
lists.clear()
result.set(a)
def myreciprocal():
global lists
global isPressSign
curnum = result.get()
lists.append(curnum)
computrStr = ''.join(lists)
endNum = eval(computrStr)
newNum = 1/endNum
剩余14页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展