Python制作输入式计算器
Posted 基督徒Isaac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python制作输入式计算器相关的知识,希望对你有一定的参考价值。
首先给出完整代码:
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 )
参考文献:
Tkinter Entry控件_微学苑
http://www.weixueyuan.net/a/594.html
常见错误:
不要把#放在右括号前面
def 公式顺序没关系,写在前后都可以;
def fun(): 冒号不能少
每段之间空格换行检查好
button=Button( frame, text="equals to", command=calc ) #command=函数名不加括号
进一步调试发现,如果使用lambda匿名函数
command=lambda:gongshi() 必须要有括号,否则表达式计算不会出结果;没有lambda则command=gongshi不能有括号
致谢:
感谢上帝的恩典 ,祂的应许是真实的,凡信靠祂的人,必在基督里得着一切幸福和盼望。我们所盼望的乃是祂的恩典,和祂的所有应许。感谢神,因祂有说不尽的恩赐。
如果有什么地方没检查出错误,请指正;
如果有可以优化的地方,欢迎多多指教。谢谢你们。
以上是关于Python制作输入式计算器的主要内容,如果未能解决你的问题,请参考以下文章
python 用于在终端中运行的sublime text 3的简单代码片段制作工具