博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python制作输入式计算器
阅读量:610 次
发布时间:2019-03-13

本文共 2181 字,大约阅读时间需要 7 分钟。


首先给出完整代码:

from tkinter import *tk=Tk() #主窗口frame=Frame( tk ) #窗体·布局frame.pack() # 默认side=TOP 置于最上方#创建控件label=Label(frame)entry=Entry(frame)button=Button( frame, text="equals to", command=calc )#控件布局label.pack( side=LEFT ) # 置于左侧entry.pack() # 默认side=TOP 置于最上方button.pack( side=RIGHT ) # 置于右侧#公式·表达式def calc():    result=  "=" + str( eval( expression.get() ) )    label.config( text=result )#表达式expression= StringVar()entry[ "textvariable" ]= expression #表达式由entry输入entry.focus() #输入光标闪烁frame.mainloop() #运行

 一步步对代码进行思路分析和解释。写代码第一要紧是要知道目的是什么,是搭建一个计算器然后运行它;其次才是,如何实现输入、计算和输出。

利用tkinter库搭建窗口和窗体,利用Label标签、Entry文本框、Button按键,这三个控件,分别完成输出、输入和公式运行。

#屏显式计算器编写思路:#载入#主窗口#窗体·布局···#运行#将下面内容插入···中#控件·布局#公式·表达式#表达式
#根据上面的思路写出代码如下:from tkinter import * #载入tk=Tk() #主窗口frame=Frame( tk ) #窗体·布局frame.pack() # pack是对控件的布局 # 默认pack(side=TOP) 置于最上方···frame.mainloop() #运行#将下面插入···中#控件·布局label=Label(frame)entry=Entry(frame)button=Button(frame, text="equals to", command=calc) #calc是接下来要定义的公式label.pack( side=LEFT )entry.pack()button.pack( side=RIGHT )#公式·表达式def calc():    result=  "=" + str( eval( expression.get() ) )    label.config( text=result ) #结果显示在label上#表达式expression= StringVar()entry[ "textvariable" ]= expression #表达式由entry输入entry.focus() #输入光标闪烁
#公式解释def calc():    result=  "=" + str( eval( expression.get() ) )     # "=" + 获取get→表达式expression→计算eval→转为字符串str    label.config( text=result )     #结果显示在label上#公式结果展示在label上#公式输入显示在entry上(见下方表达式解释)#公式应用在button上#表达式解释expression= StringVar() #输入字符串entry[ "textvariable" ]= expression #转化为entry控件的文字变量entry.focus() #entry控件输入光标闪烁

#公式结果展示在label上

#公式输入显示在entry上
#公式应用在button上 

补充:

entry=Entry(frame)expression=StringVar()entry["textvariable"]=expression#textvariable是Entry控件的参数,表示文本框的值,是一个StringVar()对象,由此可改写为expression=StringVar()entry=Entry( frame, textvariable=expression )

参考文献:

常见错误:

不要把#放在右括号前面

def 公式顺序没关系,写在前后都可以;

def fun(): 冒号不能少

每段之间空格换行检查好

button=Button( frame, text="equals to", command=calc ) #command=函数名不加括号

进一步调试发现,如果使用lambda匿名函数

command=lambda:gongshi() 必须要有括号,否则表达式计算不会出结果;没有lambda则command=gongshi不能有括号

致谢:

感谢上帝的恩典 ,祂的应许是真实的,凡信靠祂的人,必在基督里得着一切幸福和盼望。我们所盼望的乃是祂的恩典,和祂的所有应许。感谢神,因祂有说不尽的恩赐。

如果有什么地方没检查出错误,请指正;

如果有可以优化的地方,欢迎多多指教。谢谢你们。

转载地址:http://tfjaz.baihongyu.com/

你可能感兴趣的文章