20204311 《Python程序设计》 实验二计算器设计实验报告 您所在的位置:网站首页 用python做简易计算器 20204311 《Python程序设计》 实验二计算器设计实验报告

20204311 《Python程序设计》 实验二计算器设计实验报告

2023-06-28 08:03| 来源: 网络整理| 查看: 265

简介 实验名称:设计计算器 课程:《Python程序设计》 班级: 2043 姓名: 曲经民 学号:20204311 实验教师:王志强 实验日期:2021年4月 必修/选修: 选修课 实验内容 设计并完成一个完整的计算器应用程序,完成加减乘除模等运算,功能多多益善。 实验要求 1.使用Python语言实现具体的操作运算,并完成程序调试和运行 2.代码托管到码云 实验过程及结果 一. 实现应用的关键步骤设计 1.1图形化界面 Python GUI编程

Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

wxPython:wxPython :是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

......

经过对比,本次实现计算器GUI界面使用Tkinter更为简洁方便。

Tkinter编程 Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

注意:Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写。

创建一个GUI程序 1、导入 Tkinter 模块 2、创建控件 3、指定这个控件的 master, 即这个控件属于哪一个 4、告诉 GM(geometry manager) 有一个控件产生了。

实例(Python3.x):

import tkinter top = tkinter.Tk() # 进入消息循环 top.mainloop() 1.2 多种运算 Python math模块 1.Python math 模块提供了许多对浮点数的数学运算函数。 2.要使用 math 函数必须先导入,查看math包中的内容: >>> import math >>> dir(math) ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc'] >>> 各个函数解析:

二. 代码编写及调试运行 2.1代码 from tkinter import Tk from tkinter import StringVar, Entry, Button from math import pi, e, sin, cos, tan, log, log10, ceil, degrees, radians, exp, asin, acos, floor class calculator: def __init__(self): window = Tk() window.title('Scientific Calculator') 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 = ["7", "8", "9", "/", "%", "clear", "AC", "4", "5", "6", "*", "(", ")", "**", "1", "2", "3", "-", "=", ",", "0", ".", "min", "+", "sin", "asin", "cos", "acos", "tan()", "pow", "log10", "max", "abs", "floor", "pi", "e", "log", "ceil", "degrees", "radians"] text = 1 i = 0 row = 1 col = 0 for txt in values: padx = 10 pady = 10 if (i == 7): row = 2 col = 0 if (i == 14): row = 3 col = 0 if (i == 19): row = 4 col = 0 if (i == 26): row = 5 col = 0 if (i == 33): row = 6 col = 0 if (txt == '='): btn = Button(window, height=2, width=4, padx=70, 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 == 'clear'): 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 == 'AC'): 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) 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="cyan") 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) except: result = "INVALID INPUT" self.string.set(result) def addChar(self, char): self.string.set(self.string.get() + (str(char))) def delete(self): self.string.set(self.string.get()[0:-1]) calculator() 运行界面:

经过测试,计算器可以正确运行

三. 将代码上传码云 截图:

感悟思考 经历本次实验,我首先感受到的是要学会综合使用Python中的模块,这能使程序更简便、美观、高效。 其次是本次实验中我出现了很多粗心的错误,这要求我要更加细心,避免出现低级错误。 这次实验也让我认识到只有通过实践实验操作才能将理论知识更好地运用起来,在日后的Python程序设计的课程学习过程中,我要注意实际实验的重要性。 参考资料

菜鸟教程:https://www.runoob.com/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有