返回顶部
首页 > 资讯 > 后端开发 > Python >python制作简单计算器功能
  • 467
分享到

python制作简单计算器功能

2024-04-02 19:04:59 467人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了python实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果如图: 主要思路: 用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算

本文实例为大家分享了python实现简单计算器功能的具体代码,供大家参考,具体内容如下

效果如图:

主要思路:

用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算字符串的值。

代码:

from tkinter import *
 
W = 280 #窗口宽度
H = 460 #窗口高度
process_H = 110 #显示运算过程的标签高度
result_H = 50   #显示运算结果的标签高度
msFont = '微软雅黑' #字体
fontSize = 20 #字体大小
 
btnBoderWidth = 0.5 #边框宽度
btnColor = '#4F4F4F' #按钮颜色
btnWidth = 70 #按钮宽度
btnHeight = 60 #按钮高度
 
mainwindows = Tk()
mainWindows.title('计算器')
mainWindows.minsize(W,H)
 
str_process = StringVar()
str_process.set("")
str_result = StringVar()
str_result.set("0")
 
process = Label(mainWindows,font=(msFont,fontSize),bg='orange',anchor='se',wraplength='280',textvariable=str_process)
process.place(width=W,height=process_H) #显示运算过程的标签
result = Label(mainWindows,font=(msFont,fontSize+10),bg='orange',anchor='se',textvariable=str_result)
result.place(y=process_H,width=W,height=result_H) #显示运算结果的标签
 
button_AC = Button(mainWindows,font=(msFont,fontSize),text='AC',fg='orange',bd=btnBoderWidth,command=lambda :clickAC())
button_AC.place(x=0,y=process_H+result_H,width=btnWidth,height=btnHeight)
button_back = Button(mainWindows,font=(msFont,fontSize),text='←',fg=btnColor,bd=btnBoderWidth,command=lambda :clickBack())
button_back.place(x=btnWidth,y=process_H+result_H,width=btnWidth,height=btnHeight)
button_div = Button(mainWindows,font=(msFont,fontSize),text='÷',fg=btnColor,bd=btnBoderWidth,command=lambda :clickOper('/'))
button_div.place(x=btnWidth*2,y=process_H+result_H,width=btnWidth,height=btnHeight)
button_mul = Button(mainWindows,font=(msFont,fontSize),text='×',fg=btnColor,bd=btnBoderWidth,command=lambda :clickOper('*'))
button_mul.place(x=btnWidth*3,y=process_H+result_H,width=btnWidth,height=btnHeight)
 
button_7 = Button(mainWindows,font=(msFont,fontSize),text='7',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('7'))
button_7.place(x=0,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)
button_8 = Button(mainWindows,font=(msFont,fontSize),text='8',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('8'))
button_8.place(x=btnWidth,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)
button_9 = Button(mainWindows,font=(msFont,fontSize),text='9',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('9'))
button_9.place(x=btnWidth*2,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)
button_minus = Button(mainWindows,font=(msFont,fontSize),text='-',fg=btnColor,bd=btnBoderWidth,command=lambda :clickOper('-'))
button_minus.place(x=btnWidth*3,y=process_H+result_H+btnHeight,width=btnWidth,height=btnHeight)
 
button_4 = Button(mainWindows,font=(msFont,fontSize),text='4',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('4'))
button_4.place(x=0,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)
button_5 = Button(mainWindows,font=(msFont,fontSize),text='5',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('5'))
button_5.place(x=btnWidth,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)
button_6 = Button(mainWindows,font=(msFont,fontSize),text='6',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('6'))
button_6.place(x=btnWidth*2,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)
button_add = Button(mainWindows,font=(msFont,fontSize),text='+',fg=btnColor,bd=btnBoderWidth,command=lambda :clickOper('+'))
button_add.place(x=btnWidth*3,y=process_H+result_H+btnHeight*2,width=btnWidth,height=btnHeight)
 
button_1 = Button(mainWindows,font=(msFont,fontSize),text='1',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('1'))
button_1.place(x=0,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)
button_2 = Button(mainWindows,font=(msFont,fontSize),text='2',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('2'))
button_2.place(x=btnWidth,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)
button_3 = Button(mainWindows,font=(msFont,fontSize),text='3',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('3'))
button_3.place(x=btnWidth*2,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight)
button_equal = Button(mainWindows,font=(msFont,fontSize),text='=',bg='orange',fg=btnColor,bd=btnBoderWidth,command=lambda :clickEqual())
button_equal.place(x=btnWidth*3,y=process_H+result_H+btnHeight*3,width=btnWidth,height=btnHeight*2)
 
button_percent = Button(mainWindows,font=(msFont,fontSize),text='%',fg=btnColor,bd=btnBoderWidth,command=lambda :clickOper("%"))
button_percent.place(x=0,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)
button_0 = Button(mainWindows,font=(msFont,fontSize),text='0',fg=btnColor,bd=btnBoderWidth,command=lambda :clickNum('0'))
button_0.place(x=btnWidth,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)
button_point = Button(mainWindows,font=(msFont,fontSize),text='.',fg=btnColor,bd=btnBoderWidth,command=lambda :clickPoint())
button_point.place(x=btnWidth*2,y=process_H+result_H+btnHeight*4,width=btnWidth,height=btnHeight)
 
process_list = []
s_result = ""
isNum = [False] #上一位按下的是否是数字
point = [True] #小数点使用情况
def clickNum(num):  #按下数字
    isNum.append(True)
    point.append(point[-1]) #按下数字,小数点的标志不变
    process_list.append(num)
    s_process = "".join(process_list)
    str_process.set(s_process)
 
def clickOper(sign):#按下运算符
    global isNum,point
    if isNum[-1]:
        process_list.append(sign)
        isNum.append(False)
        point.append(True) #按下运算符,小数点标志为可以按下小数点
    else:
        process_list.pop()
        process_list.append(sign)
    s_process = "".join(process_list)
    str_process.set(s_process)
 
def clickEqual():#按下等于
    global s_result
    s_process = "".join(process_list)
    s_result = eval(s_process)
    s_result = str(s_result)[0:11] #结果只显示11位
    str_process.set(s_process)
    str_result.set(s_result)
 
def clickAC():#按下清除
    global s_result,isNum,point
    s_result = "0"
    isNum = [False]  #状态回到初始时候
    point = [True]
    process_list.clear()
    str_result.set(s_result)
    str_process.set("")
def clickBack(): #按下退格键
    global point, isNum
    if len(process_list) > 0:
        isNum.pop(-1) #删除最后一位的状态
        point.pop(-1)
        process_list.pop()
        s_process = "".join(process_list)
        str_process.set(s_process)
 
def clickPoint():#按下小数点
    global point,isNum
    if isNum[-1] and point[-1]:
        process_list.append(".")
        s_process = "".join(process_list)
        str_process.set(s_process)
        isNum.append(False)
        point.append(False)
 
mainWindows.mainloop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: python制作简单计算器功能

本文链接: https://lsjlt.com/news/138209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python制作简单计算器功能
    本文实例为大家分享了python实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果如图: 主要思路: 用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算...
    99+
    2024-04-02
  • JavaScript制作简单计算器功能
    本文实例为大家分享了JavaScript制作简单计算器的具体代码,供大家参考,具体内容如下 1. 任务要求 1)掌握数据的类型转换 2)学会获取文本框控件的数据以及给相应控件赋值 3...
    99+
    2024-04-02
  • 怎么用python制作简单计算器功能
    今天小编给大家分享一下怎么用python制作简单计算器功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果如图:主要思路:...
    99+
    2023-06-29
  • C++制作简单的计算器功能
    计算器这个基本都很熟悉,一个简单的计算器有加法,减法,乘法,除法这四种功能。 如下图 此处我此处逻辑如下,先判断输入的运算符符号,然后在判断输入的数字来进行一个计算。 #inclu...
    99+
    2024-04-02
  • Python制作简易计算器功能
    本文实例为大家分享了Python制作简易计算器的具体代码,供大家参考,具体内容如下 简易计算器 简易计算器功能: 实现输入,计算,输出功能;可以计算基本的加减乘除功能;处理除法中除数...
    99+
    2024-04-02
  • Androidstudio制作简易计算器功能
    本文实例为大家分享了Android studio制作简易计算器的具体代码,供大家参考,具体内容如下 布局如下: 布局文件代码: <xml version="1.0" enco...
    99+
    2024-04-02
  • python实现简单的计算器功能
    本文实例为大家分享了python实现简单计算器的具体代码,供大家参考,具体内容如下 今天学习到python中界面设计部分,常用的几种图形化界面库有:Jython、wxPython和t...
    99+
    2024-04-02
  • Android studio怎么制作简易计算器功能
    这篇文章主要介绍“Android studio怎么制作简易计算器功能”,在日常操作中,相信很多人在Android studio怎么制作简易计算器功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-30
  • 用Java制作简单的计算器
    本篇文章主要是提供思路,当然文章末尾也又提供了源代码。 代码也是写了几天,重要的理解,不是直接复制粘贴就交作业了。 转载请注明出处,尊重作者劳动成果。 目录 界面的设计: 事件的响应: 计算: 详细代码如下:  总结: 要制作一个简...
    99+
    2023-10-09
    java spring jvm
  • JavaScript制作简单网页计算器
    本文实例为大家分享了JavaScript制作简单网页计算器的具体代码,供大家参考,具体内容如下 一、题目 利用JavaScript中的函数,完成数字加、减、乘、除的运算,实现一个简单...
    99+
    2022-11-13
    js 计算器
  • 简单实现Android计算器功能
    自己写的安卓的计算器: 注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下cl...
    99+
    2022-06-06
    Android
  • pythontkinter实现简单计算器功能
    本文实例为大家分享了python tkinter实现简单计算器的具体代码,供大家参考,具体内容如下 效果图 直接上代码 import tkinter as tk input_nu...
    99+
    2024-04-02
  • QT实现简单计算器功能
    本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果图: 新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数、槽 m...
    99+
    2024-04-02
  • jQuery实现简单计算器功能
    本文实例为大家分享了jQuery实现简单计算器的具体代码,供大家参考,具体内容如下 要求: 代码: <html> <head>     <meta c...
    99+
    2024-04-02
  • iOS实现简单计算器功能
    本文实例为大家分享了iOS实现简单计算器功能的具体代码,供大家参考,具体内容如下 //  ZYAppDelegate.m //  Calculator // //  Created ...
    99+
    2024-04-02
  • 怎么用python tkinter实现简单计算器功能
    这篇文章主要讲解了“怎么用python tkinter实现简单计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python tkinter实现简单计算器功能...
    99+
    2023-06-29
  • Qt实现制作简单的计算器
    目录前言完整代码效果图前言 今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下。 这里先跟大家说说使用到的函数: 1、槽连接函数 connect(信号发送...
    99+
    2022-12-19
    Qt实现计算器 Qt计算器
  • Android Studio实现简单计算器功能
    本文实例为大家分享了Android Studio实现简单计算器功能的具体代码,供大家参考,具体内容如下 程序步骤: (1)在布局文件定义一些计算器界面的文本框,按钮等组件。 (...
    99+
    2022-06-06
    Android Studio studio Android
  • JavaScript实现简单的计算器功能
    本文实例为大家分享了JavaScript实现简单计算器功能的具体代码,供大家参考,具体内容如下 具体要求如下: 实现代码: <html> <head>...
    99+
    2024-04-02
  • 用Java实现简单计算器功能
    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制。 实训要求: (1...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作