python实现简单的计算器 带界面

简介: python实现简单的计算器 带界面

6af794b9cd5549a6840df2c8042e8847.png

9b8e9ca890de4c74a88fbd2e49d29f55.png


c87f94013a714d0c8e9663c27ad2b0ce.png


全部代码:


import tkinter  # 导入tkinter模块
root = tkinter.Tk()
root.minsize(280, 500)
# 1.界面布局
# 显示面板
result = tkinter.StringVar()
result.set(0)  # 显示面板显示结果1,用于显示默认数字0
result2 = tkinter.StringVar()  # 显示面板显示结果2,用于显示计算过程
# 显示版
label = tkinter.Label(root, font=('微软雅黑', 20), bg='#EEE9E9', bd='9', fg='#828282', anchor='se', textvariable
=result2)
label.place(width=280, height=170)
label2 = tkinter.Label(root, font=('微软雅黑', 30), bg='#EEE9E9', bd='9', fg='black', anchor='se', textvariable
=result)
label2.place(y=170, width=280, height=60)
# 数字键按钮
btn7 = tkinter.Button(root, text='7', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('7'))
btn7.place(x=0, y=285, width=70, height=55)
btn8 = tkinter.Button(root, text='8', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('8'))
btn8.place(x=70, y=285, width=70, height=55)
btn9 = tkinter.Button(root, text='9', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('9'))
btn9.place(x=140, y=285, width=70, height=55)
btn4 = tkinter.Button(root, text='4', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('4'))
btn4.place(x=0, y=340, width=70, height=55)
btn5 = tkinter.Button(root, text='5', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('5'))
btn5.place(x=70, y=340, width=70, height=55)
btn6 = tkinter.Button(root, text='6', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('6'))
btn6.place(x=140, y=340, width=70, height=55)
btn1 = tkinter.Button(root, text='1', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('1'))
btn1.place(x=0, y=395, width=70, height=55)
btn2 = tkinter.Button(root, text='2', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('2'))
btn2.place(x=70, y=395, width=70, height=55)
btn3 = tkinter.Button(root, text='3', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('3'))
btn3.place(x=140, y=395, width=70, height=55)
btn0 = tkinter.Button(root, text='0', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressNum('0'))
btn0.place(x=70, y=450, width=70, height=55)
# 运算符号按钮
btnac = tkinter.Button(root, text='AC', bd=0.5, font=('黑体', 20), fg='orange', command=lambda: pressCompute('AC'))
btnac.place(x=0, y=230, width=70, height=55)
btnback = tkinter.Button(root, text='←', font=('微软雅黑', 20), fg='#4F4F4F', bd=0.5, command=lambda:
pressCompute('b'))
btnback.place(x=70, y=230, width=70, height=55)
btndivi = tkinter.Button(root, text='÷', font=('微软雅黑', 20), fg='#4F4F4F', bd=0.5, command=lambda:
pressCompute('/'))
btndivi.place(x=140, y=230, width=70, height=55)
btnmul = tkinter.Button(root, text='×', font=('微软雅黑', 20), fg="#4F4F4F", bd=0.5, command=lambda:
pressCompute('*'))
btnmul.place(x=210, y=230, width=70, height=55)
btnsub = tkinter.Button(root, text='-', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressCompute('-'))
btnsub.place(x=210, y=285, width=70, height=55)
btnadd = tkinter.Button(root, text='+', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressCompute('+'))
btnadd.place(x=210, y=340, width=70, height=55)
btnequ = tkinter.Button(root, text='=', bg='orange', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=
lambda: pressEqual())
btnequ.place(x=210, y=395, width=70, height=110)
btnper = tkinter.Button(root, text='%', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressCompute('%'))
btnper.place(x=0, y=450, width=70, height=55)
btnpoint = tkinter.Button(root, text='.', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5, command=lambda:
pressCompute('.'))
btnpoint.place(x=140, y=450, width=70, height=55)
# 操作函数
lists = []  # 设置一个变量 保存运算数字和符号的列表
isPressSign = False  # 添加一个判断是否按下运算符号的标志,假设默认没有按下按钮
isPressNum = False
# 数字函数
def pressNum(num):  # 设置一个数字函数 判断是否按下数字 并获取数字将数字写在显示版上
    global lists  # 全局化lists和按钮状态isPressSign
    global isPressSign
    if isPressSign == False:
        pass
    else:  # 重新将运算符号状态设置为否
        result.set(0)
        isPressSign = False
    # 判断界面的数字是否为0
    oldnum = result.get()  # 第一步
    if oldnum == '0':  # 如过界面上数字为0 则获取按下的数字
        result.set(num)
    else:  # 如果界面上的而数字不是0  则链接上新按下的数字
        newnum = oldnum + num
        result.set(newnum)  # 将按下的数字写到面板中
# 运算函数
def pressCompute(sign):
    global lists
    global isPressSign
    num = result.get()  # 获取界面数字
    lists.append(num)  # 保存界面获取的数字到列表中
    lists.append(sign)  # 讲按下的运算符号保存到列表中
    isPressSign = True
    if sign == 'AC':  # 如果按下的是'AC'按键,则清空列表内容,讲屏幕上的数字键设置为默认数字0
        lists.clear()
        result.set(0)
    if sign == 'b':  # 如果按下的是退格'',则选取当前数字第一位到倒数第二位
        a = num[0:-1]
        lists.clear()
        result.set(a)
# 获取运算结果函数
def pressEqual():
    global lists
    global isPressSign
    curnum = result.get()  # 设置当前数字变量,并获取添加到列表
    lists.append(curnum)
    computrStr = ''.join(lists)  # 讲列表内容用join命令将字符串链接起来
    endNum = eval(computrStr)  # 用eval命令运算字符串中的内容
    result.set(endNum)  # 讲运算结果显示到屏幕1
    result2.set(computrStr)  # 将运算过程显示到屏幕2
    lists.clear()  # 清空列表内容
root.mainloop()


相关文章
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
511 7
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
454 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
云计算 Python
用python给你写个简单的计算器功能网页啊
这张图片展示了阿里巴巴集团的组织架构图,涵盖了核心电商、云计算、数字媒体与娱乐、创新业务等主要板块,以及各板块下的具体业务单元和部门。
|
数据可视化 测试技术 Linux
基于Python后端构建多种不同的系统终端界面研究
【10月更文挑战第10天】本研究探讨了利用 Python 后端技术构建多样化系统终端界面的方法,涵盖命令行界面(CLI)、图形用户界面(GUI)及 Web 界面。通过分析各种界面的特点、适用场景及关键技术,展示了如何使用 Python 标准库和第三方库(如 `argparse`、`click`、`Tkinter` 和 `PyQt`)实现高效、灵活的界面设计。旨在提升用户体验并满足不同应用场景的需求。
212 1
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
545 3
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
|
开发者 Python
Python 编程入门:从零到一实现简单计算器
【8月更文挑战第31天】在这个数字技术日益发展的时代,编程已成为一项基础技能。本文通过构建一个简单的Python计算器项目,引导初学者步入编程世界的大门。我们将一起学习如何定义函数、处理用户输入以及执行基本算术操作,最终实现一个能够进行加减乘除运算的小工具。无论你是编程新手还是想复习基础知识的开发者,这篇文章都将为你提供一次愉快的编程体验。
|
存储 IDE 数据处理
使用Python构建一个高级计算器
本文介绍如何使用Python和`tkinter`库构建一个高级计算器。该计算器支持基本运算(加、减、乘、除、求整、求余)、科学运算(平方根、幂等)以及简单的图形用户界面(GUI)。通过该项目,您将学习到如何处理用户输入、执行计算并显示结果。适合初学者提升编程技能。
863 0
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现
176 1
|
机器学习/深度学习 数据采集 自然语言处理
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
本文介绍了一个基于Python Tkinter库开发的GUI股票评论数据及投资者情绪分析系统,该系统提供股票数据展示、情绪与股价分析、模型指标分析、评论数据展示、词云分析和情感分析结果展示等功能,帮助投资者通过情感分析了解市场舆论对股票价格的影响,以辅助投资决策。
529 0
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
|
Python
【Leetcode刷题Python】224. 基本计算器
LeetCode上题目“224. 基本计算器”的Python解决方案,通过使用栈来解析和计算包含加减运算及括号的算术表达式。
121 1