利用tkinter制作简易计算器,页面美观,计算保留4位小数

news2024/9/24 11:28:25

import tkinter as tk
import time
window = tk.Tk()
window.title("简易计算器")
window.geometry('300x400')
content = ''
def btn_onclick(data):
    global content
    if data=="AC" or data =="MC":
        expression.set('')
        result.set('')
        content =''
    elif data == '=':
        result.set(f'{round(eval(content),5)}')
    else:
        content+=data
        expression.set(content)


#___________________________________________
lable_time_text = tk.Label(window,text="您好,北京时间:",font=("楷体",15))
lable_time_text.place(x=0,y=100,width=180,height=30)
gettime = tk.StringVar(value=(time.strftime("%H:%M:%S",time.localtime(time.time()))))

lable_time = tk.Label(window,textvariable=gettime,font=("楷体",15))
lable_time.place(x=180,y=100,width=100,height=30)
#_____________________________________________

btn_datas =[
    ["AC"," ","/","%"],
    ["7","8","9","*"],
    ["4","5","6","-"],
    ["1","2","3","+"],
    ["MC","0",".","="]
]

# command=lambda x=btn_datas[r][c]:btn_onclick(x)
for r in range(5):
    for c in range(4):
        btn_submit=tk.Button(window,text=btn_datas[r][c],font=("楷体",15),command=lambda x=btn_datas[r][c]:btn_onclick(x))
        btn_submit.place(x=c*72+6,y=r*50+140,width=70,height=50)
#------------------------------------------------
frame = tk.Frame(window,bd=2,relief="sunken")
frame.place(x=10,y=10,width=270,height=30)
expression = tk.StringVar( )
lable_express_text = tk.Label(frame,textvariable=expression,font=("楷体",15))
lable_express_text.place(x=0,y=0,width=270,height=30)

lable_result_text = tk.Label(window,text="计算结果:",font=("楷体",15))
lable_result_text.place(x=0,y=50,width=150,height=30)
result = tk.StringVar(value='0')
lable_result_content = tk.Label(window,textvariable=result,font=("楷体",15))
lable_result_content.place(x=150,y=50,width=100,height=30)



#______________________________________________________
window.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机长生不老秘籍

机身保养 外观检查 1.检查机器表面整洁无划痕无针孔凹陷擦伤、畸变等损坏情况 2.晃动机身,仔细听机身内部有无松动零件或者螺丝在机身内部 桨叶检查 1.有无裂痕、磨损、变形等缺陷,如有明显缺陷建议更换 2.卡扣、紧固件有无松脱或失效,…

嵌入式学习之路 14(C语言基础学习——指针操作一维整型数组)

一、指针基础 指针的概念 地址表示内存单元的编号,也被称为指针。指针既是地址,也是一种专门用于处理地址数据的数据类型。 例如,变量a的地址或者十六进制表示的0x1000都可以视作指针。 指针变量的定义 语法:基类型 * 指针变…

探索灵办AI:智能办公的好帮手

引言 随着AI工具的增多,选择合适的AI助手变得尤为重要。ChatGPT的订阅费用高且功能单一,很多小伙伴开始寻找更具性价比和多功能的替代品。灵办AI以其便捷、高效、多功能的特点,成为许多朋友的新宠。 灵办AI助手是一款多功能的全能AI助手&am…

智能名片信息交流系统应用场景解决方案

智能名片作为传统名片在数字化时代的进化产物,集成了移动互联网、大数据和人工智能等先进技术,为商务交流和客户关系管理带来了全新的体验。 系统主要功能 01内容聚合与展示 企业信息展示:智能名片不仅包含个人基本信息,还能展示…

MDIO C22协议访问MMD寄存器

以太网PHY芯片中SMI(Serial Management Interface)串行管理接口,也称MDIO(Management Data Input/Output),通常作为MII管理接口(MII Management Interface)。有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层(PHY)的管理。 MDIO接口有两种协议…

LVX+keepalived群集

Keepalived 双 机 热 备 基 础 知 识 Keepalived 起初是专门针对LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查(Health Checking) 功能——判断 LVS负载调度器、节点服务器的可用性,当master 主机出现故障及时切换到b…

MacOS Anaconda 安装教程及虚拟环境创建

一、下载 Anaconda 1、Anaconda 官网 2、清华大学开源软件镜像站 点 Date 按时间排序,根据自己 Mac 芯片类型下载对应最新版本的。 Intel 芯片的下载 x86_64 版本的Apple m1 芯片的下载 arm64 版本的 二、安装 Anaconda 将安装包下载到本地后,双击安…

人工智能|人工智能教育的发展现状及趋势

智能的热潮正席卷全球。国家在人工智能领域展开战略布局,人工智能人才成为国家急需的高层次技术人才。据领英发布的《全球 Al 领域人才报告》显示,国内人工智能人才缺口达到 500 多万。 毫无疑问,人工智能将不可阻挡地影响所有产业。给自己一…

随手记1.0

easyexcel多级表头导出各级设置样式(继承HorizontalCellStyleStrategy实现) package com.example.wxmessage.entity;import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;…

探索 Amazon Q Developer 那些有趣的功能

我在 McKinsey 2024 年 5 月 30 日提供的一项名为“The state of AI in early 2024-Gen AI adoption spikes and starts to generate value”的调研中读到这么一句话:人工智能在组织中最常见的两个使用职能是:“市场营销和销售”以及“产品和服务开发”&…

vue3-ts:husky + prettier / 代码格式化工具

一、Prettier简介 Prettier是一个流行的代码格式化工具,它的主要作用是帮助开发者自动规范化代码的格式,提高代码的可读性和一致性。Prettier通过解析代码并使用自己的规则重新打印它,以确保代码风格的一致性和符合预设的格式化标准。 二、…

计网学习(四)——网络层

一、网际协议IP 互联网采用的设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务”,即IP数据报在网络中传输时是不可靠的服务,可能会出现数据丢失等情况TCP/IP体系中网络层常常被称为网际层或IP层与IP协议一起使用…

35分钟教你从0到1,水出SCI(精品),学术裁缝必修课_来自B站水论文的程序猿

系列文章目录 文章目录 系列文章目录一、抽象理解二、具体做法1、什么是Baseline(基础实验)2、怎么和导师说3、怎么做压低baseline 4、怎么写 一、抽象理解 一篇论文A:西红柿炒鸡蛋 一篇论文B:芹菜炒肉 你就可以:西红柿炒肉 二、具体做法 1、什么是Baseline(基础…

视频压缩文件太大了怎么缩小?6个视频压缩技巧,速度收藏起来!

高清视频文件,尤其是那些以 1080p 和 720p 清晰度为特征的视频,通常都拥有相当大的体积,会占据大量计算机存储空间。因此,为了更好地将它们进行分享和存储,您可能需要对它们进行压缩,以减小它们的尺寸。然而…

【秋招笔试】2024-08-07-YT游戏(研发岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的题目比较典,…

资料分析6-其他类

一、拉动增长、增量贡献率和容斥问题 1. 拉动增长 拉动增长部分增量/整体前期,即x/A 例题1(2018 年陕西):2017 年,我国电信业务收入12620 亿元,比上年增长6.4%,增速同比提高1 个百分点。……2…

递归:计算思维的核心

引言 人类对这个世界的认识是从特例到普遍,从具体到抽象,从简单到复杂的,是一个递推(Iterative)的过程。这种人类固有的认知与思维方式令我们可以轻易的理解具体的事物,但同时却限制了我们的抽象能力和大局…

【电控笔记z6】无感文献综述

高频注入 afabeta注入 lq/ld越大统好 凸极性大反电动势ZVCD pwm电压向量为主 增加动态特性 设计隆博戈估测器 高频注入: lq/ld比较大 运用在低转速 到高速的时候 , 切换到model_base的方法进行反电动势侦测 smo :速度无法很低 有个极限 受杂讯影响大 高速时候用 总结 用spm …

ArrayList集合源码解读(一)

ArrayList集合源码解读(一) 前言 笔者在阅读网上众多的ArrayList源码解读时发现他们都是以1.8版本的来进行讲解,并且很多都是囫囵吞枣,看的人一脸懵逼。 其实现在的很多公司都换成了17版本的jdk。笔者决定自己写一个ArrayList集…

网工内推 | 国企运维工程师,华为认证优先,最高年薪20w

01 上海陆家嘴物业管理有限公司 🔷招聘岗位:IT运维工程师 🔷岗位职责: 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…