Python——计算器
Python——计算器
目标
- 了解图形界面开发的基本要素
- 了解图形界面工作的基本原理
- 掌握 Tkinter 库的特点
- 理解 Tkinter 库的工作方式和原理
- 掌握Tkinter 界面开发的基本要素
- 掌握完整 Tkinter 界面程序的开发能力
要求
本实验以 Python 基本的 GUI 库 Tkinter 为基础,实现一个简易计数器程序,效果图如下。要求能够实现基本的四则运算,具备除 0 错误提示,实现归零操作
代码
#树莓派实验——基于Tkinter的图形化编程实验
import time
from tkinter import *
import tkinter as tk
import tkinter.font as tkFont
from functools import partial
#偏函数(Partial function)是通过将一个函数的部分参数预先绑定为某些值,从而得到一个新的具有较少可变参数的函数。
import math
'''
* 函数名称:button_input(entry,argu):
* 功能:向文本框组件中插入数据
* 参数含义:entry: 文本框组件argu: 文本数据
'''
def button_input(entry, argu):entry.insert(END, argu) # 向文本框的尾部插入文本数据
'''
* 函数名称:Backspace(entry):
* 功能:删除操作
* 参数含义:entry: 文本框组件
'''
def Backspace(entry):input_len = len(entry.get()) # 获取文本框中内容的长度entry.delete(input_len-1) # 删除文本框内容中的最后一项
'''
* 函数名称:clear(entry):
* 功能:清空操作
* 参数含义:entry: 文本框组件
'''
def clear(entry):entry.delete(0, END) # 清空文本框中的内容
'''
* 函数名称:get_result(entry):
* 功能:计算表达式
* 参数含义:entry: 文本框组件
'''
def get_result(entry):input = entry.get()try:out = eval(input.strip()) # 调用eval函数,返回字符串表达式的计算结果except: # 如果异常,即无法计算output = str('ERROR') # 则输出“ERROR”else:output = str(out) # 将计算结果以字符串形式存储clear(entry) # 清空文本框entry.insert(END, output) # 向文本框尾部插入计算结果
'''
* 函数名称:主函数
* 功能:绘制计算器界面,添加监听响应函数
* 参数含义:
'''
if __name__ == '__main__':window = tk.Tk() # 创建tk窗口window.title('简易计算器')window.resizable(1, 1) # 设置自适应自配尺寸entry_font = tkFont.Font(size=12) # 设置文本框字体大小entry = Entry(window, justify='right', font=entry_font) # 创建文本框组件entry.grid(row=0, column=0, columnspan=5,sticky=W+E+N+S, padx=5, pady=5) # 放入相应位置#更改按钮的默认设置button_font = tkFont.Font(size=10, weight=tkFont.BOLD) # 设置按钮组件的文本字体和大小button_bg = 'white' # 设置按钮的背景色button_active_bg = 'blue' # 设置按钮被按下时的背景色myButton = partial(Button, window, bg=button_bg, padx=10,pady=3, activebackground=button_active_bg)#用partial函数,将创建Button时的一些参数固定,变成新的Button组件构造函数myButton# 创建button0,对应“0”按钮button0 = myButton(text='0 ', command=lambda: button_input(entry, '0')) button0.grid(row=4, column=0, pady=5, padx=5)# 创建button00,对应“00”按钮button00 = myButton(text='00', command=lambda: button_input(entry, '00')) button00.grid(row=4, column=1, pady=5, padx=5)# 创建button1,对应“1”按钮button1 = myButton(text='1 ', command=lambda: button_input(entry, '1')) button1.grid(row=3, column=0, pady=5, padx=5)# 创建button2,对应“2”按钮button2 = myButton(text='2 ', command=lambda: button_input(entry, '2')) button2.grid(row=3, column=1, pady=5, padx=5)# 创建button3,对应“3”按钮button3 = myButton(text='3 ', command=lambda: button_input(entry, '3')) button3.grid(row=3, column=2, pady=5, padx=5)# 创建button4,对应“4”按钮button4 = myButton(text='4 ', command=lambda: button_input(entry, '4')) button4.grid(row=2, column=0, pady=5, padx=5)# 创建button5,对应“5”按钮button5 = myButton(text='5 ', command=lambda: button_input(entry, '5')) button5.grid(row=2, column=1, pady=5, padx=5)# 创建button6,对应“6”按钮button6 = myButton(text='6 ', command=lambda: button_input(entry, '6')) button6.grid(row=2, column=2, pady=5, padx=5)# 创建button7,对应“7”按钮button7 = myButton(text='7 ', command=lambda: button_input(entry, '7')) button7.grid(row=1, column=0, pady=5, padx=5)# 创建button8,对应“8”按钮button8 = myButton(text='8 ', command=lambda: button_input(entry, '8')) button8.grid(row=1, column=1, pady=5, padx=5)# 创建button9,对应“9”按钮button9 = myButton(text='9 ', command=lambda: button_input(entry, '9')) button9.grid(row=1, column=2, pady=5, padx=5)# 创建button10,对应“+”按钮button10 = myButton(text='+ ', command=lambda: button_input(entry, '+'))button10.grid(row=1, column=3, pady=5, padx=5)# 创建button11,对应“-”按钮button11 = myButton(text='- ', command=lambda: button_input(entry, '-'))button11.grid(row=2, column=3, pady=5, padx=5)# 创建button12,对应“*”按钮button12 = myButton(text='* ', command=lambda: button_input(entry, '*'))button12.grid(row=3, column=3, pady=5, padx=5)# 创建button13,对应“/”按钮button13 = myButton(text='/ ', command=lambda: button_input(entry, '/'))button13.grid(row=4, column=3, pady=5, padx=5)# 创建button14,对应“.”按钮button14 = myButton(text='. ', command=lambda: button_input(entry, '.')) button14.grid(row=4, column=2, pady=5, padx=5)# 创建button15,对应“删除”按钮button15 = myButton(text='删除 ', command=lambda: Backspace(entry))button15.grid(row=1, column=4, pady=5, padx=5)# 创建button16,对应“清零”按钮button16 = myButton(text='清零', command=lambda: clear(entry))button16.grid(row=2, column=4, pady=5, padx=5)# 创建button17,对应“等于”按钮button17 = myButton(text='= ', command=lambda: get_result(entry))button17.grid(row=3, column=4, pady=5, padx=5)# 创建button18,对应“清除”按钮button18 = myButton(text='清除', command=lambda: clear(entry))button18.grid(row=4, column=4, pady=5, padx=5)window.mainloop()
Python——计算器相关推荐
- 初学__Python——Python中文支持、Python计算器
目录 一.Python对中文的支持 二.简单实用的Python计算器 一.Python对中文的支持 在Python中,可以在各种编码间相互转换. 如果在交互式命令中使用中文,即便不做处理,一般也不会出 ...
- 作业1开发一个简单的python计算器
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- python计算器小程序源码_python代码编写计算器小程序
本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class ...
- python计算器小程序源码_python编写计算器程序-python代码编写计算器小程序
本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import math class ...
- python计算器总结_Python 计算器的简单示例
这篇文章主要为大家详细介绍了Python 计算器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 简介 在这篇 ...
- Python计算器简单程序
Python计算器 (Python Calculator) In this quick post, we will see how we can create a very simple python ...
- Python计算器程序(两位数的加减乘除操作)
Python计算器程序(两位数的加减乘除操作) input("第一个数") input("操作符.运算符号") input("第二个数") ...
- python计算器gui设计_python GUI模拟实现计算器
python编写计算器,供大家参考,具体内容如下 (1)计算器界面如下: (2)基本满足了计算器的所有需求,使用时不可键盘输入,只能鼠标点击左键才可执行.初始时显示0.0,每次输入的内容存于D:\nu ...
- python计算器基础知识_Python基础(一):将Python当做计算器、编程的第一步
我们来尝试一些简单的 Python 命令.启动解释器然后等待主提示符 >>> 出现(不需要很久).1.1. 数字 解释器表现得就像一个简单的计算器:可以向其录入一些表达式,它会给出返 ...
最新文章
- 2021年大数据Spark(三十一):Spark On Hive
- [JAVA EE]Spring Boot 控制层:参数传递方法
- android intent email,Android Email Intent
- 968. Binary Tree Cameras 监控二叉树
- dealloc 的水,很深?
- matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)
- makefile常用语法讲解(1)
- python comprehension_python list comprehension在一次迭代中产生两个值
- ajax提交时“加载中”提示的处理方法
- Codeforces Beta Round #22 (Div. 2 Only) E. Scheme(DFS+强连通)
- Android 十大调试方法
- WebService的应用之winform身份验证
- VBOX下安装RHEL5.4增强工具失败的解决办法
- 所用计算机网卡品牌得的型号,惠普无线网卡驱动,详细教您如何
- android 3d翻转动画 viewpage,利用ViewPager实现3D画廊效果及其图片加载优化
- 机器学习需要的数据量需要怎么算
- Python数据分析-二手车数据用于机器学习二手车价格预测
- html邮件 自定义变量,CSS3中的自定义变量样式用法
- 7的倍数(shell脚本 day01)
- 程序员延寿指南 | A programmer's guide to live longer
热门文章
- 帆软报表入门操作(一)
- cs231n课程资料Python Numpy Tutorial的Python3版本
- 有趣的Python Challenge编程解谜游戏攻略二(5-9关)
- 小秘谈币:什么是实在的佛系炒币?
- 输入验证码,一直报错验证码错误(内网多服务器)
- Ubuntu下flash运行方法(2020.12后可用)
- android 位移传感器 坐标,位移传感器
- 前端面试知识点大全——浏览器篇
- 印象笔记使用(一)——微信篇
- 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_Windows 7 怎么修复 Windows 中的 Wi-Fi 连接问题,我教你(六)...