python编写计算器功能


Posted in Python onOctober 25, 2019

本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些启发

实验前提

  • 因为是带图形界面的,所以用的版本是在windows10上安装的Python 3.7.4
  • 程序里调用了tkinter模块包,有些环境需要手动安装这个包,安装步骤自行百度
  • 我这个是在直接windows应用商店装的,已经自动导入tkinter包,建议使用此方法、

程序代码

# coding: utf-8
# 将tkinter改为Tkinter兼容Python 2.x
from tkinter import *
class App:
 def __init__(self, master):
  self.master = master
  self.initWidgets()
  self.hi = None
 def initWidgets(self):
  # 创建一个输入组件
  self.show = Label(relief=SUNKEN, font=('Courier New', 24),\
   width=23, bg='white', anchor=W)
  # 对该输入组件使用Pack布局,放在容器顶部
  self.show.pack(side=TOP, pady=10)
  p = Frame(self.master)
  p.pack(side=TOP)
  # 定义字符串的元组
  names = ("+", "1" , "2" , "3" , "↺" 
   ,"-", "4" , "5" , "6" , "**" , "*", "7" , "8"
   , "9", "//", "/" , "." , "0" , "%", "=")
  # 遍历字符串元组
  for i in range(len(names)):
   # 创建Button,将Button放入p组件中
   b = Button(p, text=names[i], font=('Verdana', 20), width=5)
   b.grid(row=i // 5, column=i % 5)
   # 为鼠标左键的单击事件绑定事件处理方法
   b.bind('<Button-1>', self.click)
   # 为鼠标左键的双击事件绑定事件处理方法
   if b['text'] == '↺': b.bind('<Button-1>', self.clean)
  # 定义一个记录输入数字次数的变量
  self.i = 0
 def click(self, event):
  # 如果用户单击的是数字键或点号
  if(event.widget['text'] in ('0', '1', '2', '3',\
   '4', '5', '6', '7', '8', '9', '.')):
   # 判断self.i是否为0,0的话清空show['text']的值
   if self.i == 0 :
    self.show['text'] = ''
   self.show['text'] = self.show['text'] + event.widget['text']
   self.i = self.i + 1
   print(self.i)
  # 如果用户单击了运算符
  elif(event.widget['text'] in ('+', '-', '*', '/', '%', '**', '//')):
   # 把输入的数字与输入的字符相结合,组成一个数学运算式
   self.show['text'] = self.show['text'] + event.widget['text']
  elif(event.widget['text'] == '=' and self.show['text'] is not None):
   # 赋值给self.hi
   self.hi = self.show['text']
   # 其实这一步可以不要,主要作用是在调试时可以在后台看输入的数据
   print(self.hi)
   # 使用eval函数计算表达式的值
   self.show['text'] = str(eval(self.hi))
   self.hi = None
   self.i = 0
 # 点击↺(恢复)按钮时,程序清空计算结果、将表达式设为None
 def clean(self, event):
  self.hi = None
  self.show['text'] = ''
root = Tk()
root.title("简单科学计算器")
App(root)
root.mainloop()

小知识:

python编写计算器功能

效果如图

python编写计算器功能

结语:

如果有不理解的地方欢迎留言

本文参考疯狂python讲义

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从Python程序中访问Java类的简单示例
Apr 20 Python
浅谈Python中数据解析
May 05 Python
在Python中操作字典之clear()方法的使用
May 21 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
更新修改后的Python模块方法
Mar 03 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
PyTorch中的Variable变量详解
Jan 07 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python深度学习之Pytorch初步使用
May 20 Python
Python实现快速排序的方法详解
Oct 25 #Python
python实现超市商品销售管理系统
Oct 25 #Python
Python列表元素常见操作简单示例
Oct 25 #Python
python实现超市管理系统(后台管理)
Oct 25 #Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 #Python
python+mysql实现个人论文管理系统
Oct 25 #Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 #Python
You might like
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
php自定义时间转换函数示例
2016/12/07 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
jQuery随机切换图片的小例子
2013/04/18 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
JS实现滑动插件
2020/01/15 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
Python多线程的退出控制实现
2020/08/10 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
矿泉水广告词
2014/03/20 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python