python - 如何实现 pow(x) 和 sqrt(x)?
问题描述
我试图寻找类似的答案,但没有找到任何东西。所以这里。
我目前的任务是使用 tkinter 工具在 Python 中创建一个带有 GUI 的简单计算器。
当我在实现 pow(x) 和 sqrt(x) 并让它们正常工作时遇到一些问题时,我几乎完成了。
这是我用于操作数按钮的功能:
def press(num):
global expression
expression = expression + str(num)
equation.set(expression)
这适用于所有简单的东西,如“+”:
plus = Button(gui, text=' + ', fg='orange', bg='white', command=lambda: press("+"), height=1, width=7)
但是现在我仍然需要通过从数学导入来添加 pow 和 sqrt 并将它们连接到按钮。我尝试使用相同的“按下”功能,但使用 sqrt 我得到一个 ValueError。
powx = Button(gui, text=' pow(x) ', fg='orange', bg='white', command=lambda: press("pow("), height=1, width=7)
powx.grid(row=4, column=4)
sqrt = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrt.grid(row=5, column=4)
sqrt 错误代码: TypeError:“按钮”对象不可调用
等于:
def equalpress():
try:
global expression
total = str(eval(expression))
equation.set(total)
expression = ""
except ZeroDivisionError:
equation.set(" Cant divide through Zero! ")
expression = ""
except SyntaxError:
equation.set(" SyntaxError! ")
expression = ""
我真的很感激一些建议。谢谢! 图形用户界面
解决方案
问题是您在执行以下操作时要替换内置sqrt()
函数:
sqrt = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrt.grid(row=5, column=4)
现在名称sqrt
指的是您的按钮,而不是功能。更改变量名称,就像您为pow
按钮所做的那样。
sqrtx = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrtx.grid(row=5, column=4)
推荐阅读
- knockout.js - 结帐页面上的淘汰赛 Js magento 2
- reactjs - 我正在尝试将照片上传到 Firebase
- python - 无法从 Python 中的字符串替换/删除 \xa0(从 Excel 解析)
- python - Dockerized django 应用程序不在浏览器中运行
- json - Apache HTTP 客户端中的请求 POST 失败
- python - 如何使用熊猫将字符串转换为时间戳
- mongodb - mongo $or/$and 带有两个用于地理查询的选择器
- prometheus - 如何按标签计算量规指标的百分比?
- robotframework - 如何在python中将SQL查询的结果存储为字符串
- blockchain - Truffle 开发错误“Greeter 的当前网络 ID 没有网络配置”