Python自制简易版计算器小程序

news2024/9/20 18:46:16

前言

今天来给你们分享一个自制的桌面小程序【简易版计算器】

文章内有效果展示,你们可以自行看看哦

不想看文章,想直接领取源码的话,可以直接点击文章末尾的名片哈

在这里插入图片描述

环境准备

Python 3.6
Pycharm

代码展示

界面设置

  • 导入模块

所有 源码 点击 此处 领取 即可

import tkinter as tk
  • 实例化一个窗体对象
root = tk.Tk()
  • 标题
root.title('学习交流群:309488165')
  • 大小以及出现的位置
root.geometry("295x280+150+150")
  • 透明度
root.attributes("-alpha", 0.9)
  • 背景
root["background"] = "#ffffff"
  • 标签
lable1 = tk.Label(root, textvariable=result_num, width=20, height=2, font=('宋体', 20), justify='left', background='#ffffff', anchor='se')
  • 布局
lable1.grid(padx=4, pady=4, row=0, column=0, columnspan=4)
  • 按钮
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:309488165
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
button_clear = tk.Button(root, text='C', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: clear())
button_back = tk.Button(root, text='←', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: back())
button_division = tk.Button(root, text='/', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('/'))
button_multiplication = tk.Button(root, text='x', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('*'))

button_clear            .grid(padx=4, row=1, column=0)
button_back             .grid(padx=4, row=1, column=1)
button_division         .grid(padx=4, row=1, column=2)
button_multiplication   .grid(padx=4, row=1, column=3)

button_seven = tk.Button(root, text='7', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('7'))
button_eight = tk.Button(root, text='8', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('8'))
button_nine = tk.Button(root, text='9', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('9'))
button_subtraction = tk.Button(root, text='—', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('-'))
button_seven        .grid(padx=4, row=2, column=0)
button_eight        .grid(padx=4, row=2, column=1)
button_nine         .grid(padx=4, row=2, column=2)
button_subtraction  .grid(padx=4, row=2, column=3)

效果展示

这里我就不展示,怎么用的啦,计算器大家还是自己会的吧哈哈哈

在这里插入图片描述

功能

添加数字

def append_num(i):
    lists.append(i)
    result_num.set(''.join(lists))

选择运算符号

def operator(i):
    if len(lists) > 0:
        if lists[-1] in ['+', '-', '*', '/']:
            lists[-1] = i
        else:
            lists.append(i)
        result_num.set(''.join(lists))

清零

def clear():
    lists.clear()
    result_num.set(0)

退格

def back():
    del lists[-1]
    result_num.set(lists)

等号

def equal():
    a = ''.join(lists)
    end_num = eval(a)
    result_num.set(end_num)
    lists.clear()
    lists.append(str(end_num))

定义一个列表收集输入的内容

lists = []
result_num = tk.StringVar()
result_num.set(0)

最后

朋友们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
那么对于这些朋友们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可哦!

今天的分享到这里就结束了

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/
请添加图片描述

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

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

相关文章

STM32读取SHT3x系列温湿度传感器,标准库和HAL库

STM32读取SHT3x系列(SHT30、SHT31、SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上。 我下面提供两份代码,一份是标准库使用硬件I2C的,另一份是HAL库使用软件模拟IIC的。 我用的单片机是STM32F103C8T6,温湿度传感器是SHT30。 STM32软件I…

Spring Cloud与Nacos部署Spring Boot项目

本文记录一个用于Spring Cloud 和nacos的一个项目配置方案 本文主要通过nacos实现了两点功能: 1、服务的注册与发现 2、nacos的动态配置 项目中主要包括了nacos-consumer和nacos-provider,一个消费者,一个生产者的角色,消费者负责…

旋转目标检测复现-yolov5-obb

复现源码: https://github.com/hukaixuan19970627/yolov5_obb 亲测可行 安装流程: 按照https://github.com/hukaixuan19970627/yolov5_obb/blob/master/docs/install.md 确保安装过程不报错,否则影响后续训练 安装成功即可准备数据集 hf_t…

MySQL复制技术方案——组复制

1.原理 增强半同步复制虽然解决了HA切换之后的幻读问题,也从一定程度上使得主从实例 之间的数据一致性保障得到增强,但是仍然还有很多问题需要解决。 例如: HA切换程度需要依赖于MySQL服务器之外的第三方程序实现,维…

2022年12月安全事件盘点

2022年12月安全事件盘点 一、基本信息 2022年12月安全事件共造成约8327万美元损失,金额数量较上月有所下降。本月RugPull数量基本与上月持平。但临近年底,熊市社媒诈骗等较上个月有所增加,Discord攻击诈骗成为重灾区。另外本月依然有钱包&…

产线工控设备安全现状分析

工控设备安全现状 工业控制系统是支撑国民经济的重要设施,是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域,支撑起国计民生的关键基础设施。 随着传统的工业转型,数字化、网络化和智能化的工…

IB课程为什么深受国际学生的喜爱?

凯恩斯是一个被大自然包围的城市。由于得天独厚的地理位置,在凯恩斯随时都可以让你感受到与自然融为一体的亲近与惬意。此外,安全性高也是一大优势,昆士兰当地人对国际学生非常热情友好,在你需要帮助的时候,从来不会感…

C++跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架源码

C跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架源码 完整代码下载地址:跨平台的网络通信库及服务器编程框架源码 一、描述 1.1、库组成1.2、功能模块组成 1.2.1…

linux配置xrdp

源码 https://github.com/neutrinolabs/xrdp.git xrdp需要安装openssl-devel, pam-devel, libX11-devel, libXfixes-devel, libXrandr-devel ./bootstrap //git submodule下载,需要安装nasm,autoconf生成configure ./configure && make -j4 &a…

区块链与智慧城市

智慧城市的概念涵盖了城市领域的硬件、软件、管理、计算、数据分析等服务的集成。概括地说,就是利用信息通信技术(ICT)对城市运行各个环节的关键信息进行感知、整合、存储、处理、分析、预测和响应,从而提供智能响应和辅助决策。满…

工业建筑的应急照明系统的设计原则及常见电气设计问题与解决方案

【摘要】:文章根据《消防应急照明和疏散指示系统技术标准》(GB513O9-2018),介绍了工业建筑的应急照明系统的设计原则及常见电气设计问题与解决方案。 【关键词】:工业建筑;消防;应急照明;疏散标志;系统设计;安科瑞 李…

p2机器学习基本概念简介

2. 第 1 讲:机器学习基本概念简介上_哔哩哔哩_bilibili 机器学习找一个合适的函数: 随着找的函数不同,机器学习就有了不同的类别,下面了解一些专有名词: Regression:假设找的函数输出是一个数值&#xff…

学习笔记4:数据的存储

目录 一. 整形家族数据在内存中的存储 1.整形数据的原码,反码和补码 2.数据的大小端存储 3.相关练习 1.编写一个函数用于判断当前机器是大端存储类型还是小端存储类型 2.阅读代码判断程序输出内容 3.阅读代码判断程序输出内容 4.阅读代码判断程序输出内容 5.附头文…

5G NR标准 第13章 重传协议

第13章 重传协议 通过无线信道的传输容易出错,例如,由于接收信号质量的变化。 在某种程度上,这种变化可以通过第 14 章中讨论的链路适配来抵消。但是,接收机噪声和不可预测的干扰变化无法抵消。 因此,几乎所有无线通…

数字化时代,聊一聊企业的信息化整合

现如今,企业搭建的OA、ERP、CRM、HR、BI 以及财务软件等软件系统,其数据格式、数据库类别、操作系统、应用系统等不尽相同,位置分散相互独立,甚至有的企业在同一个系统下的财务、办公、销售、生产等系统也各自独立,相互…

蓝牙资讯|消息称苹果正开发 AirPods Lite 耳机

据 9to5Mac 报道,苹果目前正销售四种不同型号的 AirPods,包括第二代 AirPods 到定位更高端的 AirPods Max。虽然 AirPods 已成为非常受欢迎的耳机,但其并不便宜。 据海通国际分析师 Jeff Pu 爆料,苹果目前正在研发新的“AirPods…

SAP入门技术分享二:数据类型

数据类型1.概要2.数据类型的种类(1)ABAP基本数据类型(2)局部数据类型(3)全局数据类型3.DATA语句(1)TYPE type(2)LIKE num(3)VALUE int…

智能车|ROS主控与STM32建立通信软硬件全方位讲解

智能车|ROS主控与STM32建立通信软硬件全方位讲解前言智能车控制器功能通信内容硬件连接软件设置更新电平转换芯片的serial创建设备别名使用设备别名ROS与STM32串口通信代码ROS主控读取stm32发送的数据ROS主控向stm32发送数据前言 通常复杂的机器人会存在多个控制器,…

吴恩达《机器学习》——神经网络与反向传播

神经网络与反向传播1. 神经网络1.1 神经网络的前馈传播1.2 利用反向传播求梯度1.2.1 正则化梯度2. 目标函数(损失函数)2.1 PyTorch官方文档版本2.2 吴恩达讲解版本2.3 两种版本的区别在哪?2.4 正则化目标函数3. Python实现3.1 梯度校验3.2 封…

hcie-路由引入与控制

关于本实验:本实验主要介绍了路由选择工具ACL和IP-Prefix的配置,路由引入的配置以及路由策略的配置方法及注意事项。 实验目的:掌握路由选择工具的配置方法,路由策略与策略路由的配置与注意事项。 实验组网介绍: 实验…