python 实现一个简单的计算器
python 实现一个简单的计算器
本文主要整合下tkinter ,实现下简单的计算器.
代码如下:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/12/2 下午13:01 .
@Email:
@Describe:
"""
import tkinter as tk
# 创建计算器窗口
root = tk.Tk()
root.title("计算器")
# root.geometry("800x800+100+100")
input = tk.Entry(root, width=50, borderwidth=4)
input.grid(row=0, column=0, columnspan=3, padx=20, pady=20)
def btnClick(number):
current = input.get()
input.delete(0, tk.END)
input.insert(0, str(current) + str(number))
def clear():
input.delete(0, tk.END)
def add():
current = input.get()
global first_num
global math
math = "add"
first_num = float(current)
clear()
def subtract():
current = input.get()
global first_num
global math
math = "subtract"
first_num = float(current)
clear()
def multiply():
current = input.get()
global first_num
global math
math = "multiply"
first_num = float(current)
clear()
def divide():
current = input.get()
global first_num
global math
math = "divide"
first_num = float(current)
clear()
def equals():
second_number = input.get()
clear()
if math == "add":
input.insert(0, first_num + float(second_number))
elif math == "subtract":
input.insert(0, first_num - float(second_number))
elif math == "multiply":
input.insert(0, first_num * float(second_number))
elif math == "divide":
input.insert(0, first_num / float(second_number))
btn1 = tk.Button(root, padx=40, pady=20, text="1", command=lambda: btnClick(1))
btn2 = tk.Button(root, padx=40, pady=20, text="2", command=lambda: btnClick(2))
btn3 = tk.Button(root, padx=40, pady=20, text="3", command=lambda: btnClick(3))
btn4 = tk.Button(root, padx=40, pady=20, text="4", command=lambda: btnClick(4))
btn5 = tk.Button(root, padx=40, pady=20, text="5", command=lambda: btnClick(5))
btn6 = tk.Button(root, padx=40, pady=20, text="6", command=lambda: btnClick(6))
btn7 = tk.Button(root, padx=40, pady=20, text="7", command=lambda: btnClick(7))
btn8 = tk.Button(root, padx=40, pady=20, text="8", command=lambda: btnClick(8))
btn9 = tk.Button(root, padx=40, pady=20, text="9", command=lambda: btnClick(9))
btn0 = tk.Button(root, padx=40, pady=20, text="0", command=lambda: btnClick(0))
btnAdd = tk.Button(root, padx=40, pady=20, text="+", command=lambda: add())
btnSubtract = tk.Button(root, padx=42, pady=20, text="-", command=lambda: subtract())
btnMultiply = tk.Button(root, padx=40, pady=20, text="x", command=lambda: multiply())
btnDivide = tk.Button(root, padx=40, pady=20, text="", command=lambda: divide())
btnEquals = tk.Button(root, padx=40, pady=20, text="=", command=lambda: equals())
btnClear = tk.Button(root, padx=120, pady=20, text="clear", command=lambda: clear())
# 布局
btn1.grid(row=1, column=0)
btn2.grid(row=1, column=1)
btn3.grid(row=1, column=2)
btn4.grid(row=2, column=0)
btn5.grid(row=2, column=1)
btn6.grid(row=2, column=2)
btn7.grid(row=3, column=0)
btn8.grid(row=3, column=1)
btn9.grid(row=3, column=2)
btn0.grid(row=4, column=0)
btnAdd.grid(row=4, column=1)
btnSubtract.grid(row=4, column=2)
btnMultiply.grid(row=5, column=0)
btnDivide.grid(row=5, column=1)
btnEquals.grid(row=5, column=2)
btnClear.grid(row=6, column=0, columnspan=3)
root.mainloop()
python 实现一个简单的计算器的更多相关文章
- Python 设计一个简单的计算器
设计目标 实现加减乘除及拓号优先级解析 用户输入'1 - 2 * ( (6-3 +(-5/5)*(9-2*3/3 + 7/3*7/4*12 +10 * 5/5 )) - (-4*3)/ (12-3*2 ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- JS实现一个简单的计算器
使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择 ...
- Android下实现一个简单的计算器源码
下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...
- 用Python编写一个简单的Http Server
用Python编写一个简单的Http Server Python内置了支持HTTP协议的模块,我们可以用来开发单机版功能较少的Web服务器.Python支持该功能的实现模块是BaseFTTPServe ...
- python中一个简单的webserver
python中一个简单的webserver 2013-02-24 15:37:49 分类: Python/Ruby 支持多线程的webserver 1 2 3 4 5 6 7 8 9 10 11 ...
- JS事件 编程练习-自制计算器 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。
编程练习 使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElement ...
- Python实现一个简单三层神经网络的搭建并测试
python实现一个简单三层神经网络的搭建(有代码) 废话不多说了,直接步入正题,一个完整的神经网络一般由三层构成:输入层,隐藏层(可以有多层)和输出层.本文所构建的神经网络隐藏层只有一层.一个神经网 ...
- 使用qt制作一个简单的计算器
前言:今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下. 这里先跟大家说说使用到的函数: 一.槽连接函数 connect(信号发送者,发送的信号,信号接收者,信号接收者的 ...
- 用python实现一个简单的词云
对于在windows(Pycharm工具)里实现一个简单的词云还是经过了几步小挫折,跟大家分享下,如果遇到类似问题可以参考: 1. 导入wordcloud包时候报错,当然很明显没有安装此包. 2. 安 ...
随机推荐
- 搭建eureka服务注册中心,单机版
单独搭建的 搭建springboot项目 (1)pom文件 <?xml version="1.0" encoding="UTF-8"?> <p ...
- 【解惑】孜孜不倦,用足球赛程详解c#中的yield return用法
在一个知名企业赞助的足球联赛中,有256支球队参赛.为了确保比赛的顺利进行,企业指派了小悦负责熬夜加班制定每一个球队的赛程.尽管她对足球的了解并不多,但是她对待工作的认真态度却让人钦佩. 在小悦的努力 ...
- 【matplotlib基础】--动画
matplotlib的动画一直是一个强大但使用频率不高的功能,究其原因,一方面展示动画需要一定的媒介,没有图形和文字展示方便:二来大家更关心的是分析结果的最终图表,图表的动态展示则没有那么重要. 不过 ...
- Python中的可迭代对象和迭代器
1.可迭代对象 1.1.可迭代对象概念 可迭代对象,最直观的感觉就是可以使用for来循环迭代每一个元素.例如Python内置的类型:str.list.tuple.dict等类型的对象,都是可迭代对象. ...
- jmeter的全局变量(将登陆token设置全局)
1.首先调用登陆接口,用json提取器,取出响应内的token值 2.在beanshell取样器中设置全局变量 //设置全局变量方法一:用函数__setProperty设置${__setProper ...
- ubuntu 20.1 (linux) 下软件安装教程(基本上都是使用命令行安装)
一.node 1. 安装教程 # 第二步,添加源后安装 需要什么版本直接替换后面的数字即可,如果需要21,直接将20替换为21就可以了 curl -sL https://deb.nodesource. ...
- umich cv-5-2 神经网络训练2
这节课中介绍了训练神经网络的第二部分,包括学习率曲线,超参数优化,模型集成,迁移学习 训练神经网络2 学习率曲线 超参数优化 模型集成 迁移学习 学习率曲线 在训练神经网络时,一个常见的思路就是刚开始 ...
- 一个类似于Gridster的栅格布局系统Vue组件
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者.实践者.分享者! Vue Grid Layout是一个类似于Gridster的栅格布局系统, 适用于Vue.js,灵感来源于React Grid L ...
- Rasa NLU中的组件
Rasa NLU部分主要是解决NER(序列建模)和意图识别(分类建模)这2个任务.Rasa NLP是一个基于DAG的通用框架,图中的顶点即组件.组件特征包括有顺序关系.可相互替换.可互斥和可同时使 ...
- 开发现代化的.NetCore控制台程序:(2)创建一个C#项目模板
前言 上一篇文章(开发一个现代化的.NetCore控制台程序,包含依赖注入/配置/日志等要素)介绍了开发现代化的.NetCore控制台程序的细节,但这还不够,我又创建了一个脚手架模板,并命名为 Flu ...