基于Python中tkinter做的可视化简易计算器(代码有注释,利于理解)

本文主要是介绍基于Python中tkinter做的可视化简易计算器(代码有注释,利于理解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python可视化简易计算器

基于GUI库:tkinter做的一个简单计算器
在这里插入图片描述

开发软件

Pycharm2019.3
在这里插入图片描述

代码如下:(有对代码的简单分析,易于理解)

import re
import tkinter
import tkinter.messagebox#创建Tk的实例,也就是要显示的窗口
root = tkinter.Tk()#可以获取屏幕宽度与高
# ws = root.winfo_screenwidth()
# wh = root.winfo_screenheight()
# print("宽:{}高:{}" .format(ws,wh))
# print("宽:%d高:%d" % (ws,wh))#设置窗口的大小和位置,在左上角(400,100)的位置;宽*高+x+y
root.geometry("300x270+400+100")
#(width = False, height = False)不改变窗口的大小
root.resizable(False,False)
#设置窗口的标题
root.title("简易计算器")#放置用来显示信息的文本框,并设置为只读
#输入框与一个变量绑定
#entry,输入控件;用于显示简单的文本内容;
#textvariable文本框的值,是一个StringVar()对象
contentVar = tkinter.StringVar(root,'')
contentEntry = tkinter.Entry(root,textvariable = contentVar)
contentEntry['state'] = 'readonly'
contentEntry.place(x=10,y=10,width=280,height=20)#按钮通用代码,参数btn表示按的是哪个按钮
def buttonClick(btn):content = contentVar.get()#如果已有内容是以小数点开头的,前面加0#startswith()方法用于检查字符串是否是以指定子字符串开头#根据不同按钮做出相应的处理if content.startswith('.'):content = '0' + contentif btn in "0123456789":content += btnelif btn == '.':#如果最后一个运算数中已经有小数点,就提示错误lastPart = re.split(r'\+|-|\*|/',content)[-1]if '.' in lastPart:tkinter.messagebox.showerror('错误','小数点多了')returnelse:content += btnelif btn == 'C':#清除整个表达式content = ''elif btn == '=':try:#对输入表达式求值content = str(eval(content))except:tkinter.messagebox.showerror('错误','表达式错误')returnelif btn in operators:if content.endswith(operators):tkinter.messagebox.showerror('错误','不允许存在连续运算符')returncontent += btnelif btn =='Sqrt':n = content.split('.')#map() 会根据提供的函数对指定序列做映射。#all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为TRUEif all(map(lambda x: x.isdigit(),n)):content = eval(content) ** 0.5else:tkinter.messagebox.showerror('错误', '表达式错误')returncontentVar.set(content)# 放置清除按钮和等号按钮
btnClear = tkinter.Button(root,text='Clear',command=lambda: buttonClick('C'))
btnClear.place(x=40, y=40, width=80, height=20)
btnCompute = tkinter.Button(root,text='=',command=lambda: buttonClick('='))
btnCompute.place(x=170, y=40, width=80, height=20)# 放置10个数字、小数点和计算平方根的按钮
digits = list('0123456789.') + ['Sqrt']
index = 0
for row in range(4):for col in range(3):d = digits[index]index += 1btnDigit = tkinter.Button(root,text=d,command=lambda x=d: buttonClick(x))btnDigit.place(x=20 + col * 70,y=80 + row * 50,width=50,height=20)# 放置运算符按钮
operators = ('+', '-', '*', '/', '**', '//')
for index, operator in enumerate(operators):btnOperator = tkinter.Button(root,text=operator,command=lambda x=operator: buttonClick(x))btnOperator.place(x=230, y=80 + index * 30, width=50, height=20)root.mainloop()

简单总结

我python学了两遍,以为自己基础掌握的很好,可当真正做这个可视化计算器时又像重新开始学一样,只是理解更深了一点。所以,我得出了一个深刻结论,学完什么最好马上做个比较综合的项目,很利于对以前知识点的回顾。
因为本身就比较弱,比较菜,想建一个共同学习的群,互帮互助,共同进步。里面可以分享自己的资料啥的,加群申请发送:你最可爱;大家都不用害羞啥的,提升自己才是最主要的。(计算机,电气专业的小伙伴最适合)
在这里插入图片描述

这篇关于基于Python中tkinter做的可视化简易计算器(代码有注释,利于理解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/586293

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该