当前位置: 主页 > Python语言

python 科学计算-python 数据科学

发布时间:2023-02-08 11:15   浏览次数:次   作者:佚名

工作,工作,做一个科学计算器。

大家好,这里是喜剧研究所。 提到python GUI,很多人都会想到第三方库tkinter。 其实我们之前学过tk的基础,做了一个只有加减乘除功能的计算器。 本期,我们将带来它的增强版,科学计算器。

说到科学计算,大家是不是第一时间想到python的数学库? 是的,它也是我们代码的主角之一。 eval() 和 lambda() 这两个方法也是我们代码的灵魂。 让我们来看看如何使用它们。

eval()用于执行一个字符串表达式,并返回表达式的值。我们和print区别开来

s='8*8'
eval(s)
>>> 64
#大家通过例子区分一下这两个的区别
s='8*8'
print(s)
>>> 8*8

lambda() 允许我们在任何地方创建一个没有名字的单行函数。


(lambda x:x+1)(1) 
>>> 2
#两种定义方法
g = lambda x:x+1
g(1)
>>> 2

python 科学计算_python 科学计数法_python 数据科学

源代码:

from tkinter import Tk
from tkinter import StringVar,Entry,Button
import math
class calculator:
    def __init__(self):
        window=Tk()
        window.title('基于TK的科学计算器')
        window.configure(background="white")
        self.string=StringVar()
        entry=Entry(window,textvariable=self.string,)
        entry.grid(row=0,column=0,columnspan=6)
        entry.configure(background="white")
        entry.focus()
    
        values=["C","DEL","(",")","%","gcd",
                "sin","sqrt","e","pow","/","radians",
                "cos","7","8","9","*","degrees",

python 科学计数法_python 数据科学_python 科学计算

"tan","4","5","6","-","ceil", "pi","1","2","3","+","hypot", "log",",","0",".","="] text=1 i=0 row=1 col=0 for txt in values: padx=10 pady=10 if(i==6): row=2 col=0 if(i==12): row=3 col=0 if(i==18): row=4

python 科学计算_python 科学计数法_python 数据科学

col=0 if(i==24): row=5 col=0 if(i==30): row=6 col=0 if(txt=='='): btn=Button(window,height=2,width=4,padx=50,pady=pady,text=txt,command=lambda txt=txt:self.equals()) btn.grid(row=row,column=col,columnspan=3,padx=2,pady=2) btn.configure(background="yellow") elif(txt=='DEL'): btn=Button(window,height=2,width=4,padx=padx,pady=pady, text=txt ,command=lambda txt=txt:self.delete()) btn.grid(row=row,column=col,padx=1,pady=1) btn.configure(background="grey") elif(txt=='C'): btn=Button(window,height=2,width=4,padx=padx,pady=pady,text=txt,command=lambda txt=txt:self.clearall()) btn.grid(row=row,column=col,padx=1,pady=1)

python 科学计数法_python 科学计算_python 数据科学

btn.configure(background="red") else: btn=Button(window,height=2,width=4,padx=padx,pady=pady,text=txt ,command=lambda txt=txt:self.addChar(txt)) btn.grid(row=row,column=col,padx=1,pady=1) btn.configure(background="white") col=col+1 i=i+1 window.mainloop() def clearall(self): self.string.set("") def equals(self): result="" try: result=eval(self.string.get()) self.string.set(result)

python 科学计数法_python 科学计算_python 数据科学

except: result="无效输入" self.string.set(result) def addChar(self,char): i = ['log','sqrt','pi','sin','cos','tan','e',"gcd","radians","degrees","ceil","hypot"] if char in i: self.string.set(self.string.get()+'math.'+(str(char))) else: self.string.set(self.string.get()+(str(char))) def delete(self): self.string.set(self.string.get()[0:-1]) calculator()

我们不需要制定计算规则python 科学计算,我们将输入的表达式转换成python可以理解的意思(通过eval()函数),它就会帮助我们完成计算。 我们需要做的就是添加功能并告诉 python 如何执行此功能。 遇到非内置函数,也就是pytohn本身不会。 我们需要导入math包python 科学计算,然后告诉python如何调用它。

经测试,所有计算功能均正常,运行完美。 为了让它直接在电脑上运行,我们把它打包成一个exe,这样我们的科学计算器即使在没有python环境的电脑上也可以直接运行。

有不懂的可以私信我,欢迎来‘骚扰’。 只需获取您需要的代码并使用它。

效果图:

在这里插入图片描述

所见即所得,功能一应俱全。