在Python课程设计中,设计一个简易计算器,根据课本内容所写

import tkinter
import tkinter.messagebox
import reroot = tkinter.Tk()
root.geometry('300x270+400+100') # 设置窗口大小和位置
root.resizable(False,False)  # 不允许改变窗口大小
root.title('计算器')# 放置用来显示信息的文本框,并设置为只读
contentVar = tkinter.StringVar(root,'')
contentEntry = tkinter.Entry(root, textvariable=contentVar, state='readonly')
contentEntry.place(x=10, y=10, width=280, height=20)# 按钮通用代码
def buttonClick(btn):content = contentVar.get()# 如果已有内容是以小数点开头的,前面加0if content.startswith('.'):content = '0' + content# 根据不同按钮做出相应的处理if btn in '0123456789':content += btnelif btn == '.':lastPast = re.split(r'\+|-|\*|/]',content)[-1]if '.' in lastPast:tkinter.messagebox.showerror('错误','小数点太多了')returnelse:content += btnelif btn == 'C':content = ''elif btn == '=':try:# 对输入的表达式求值content = str(eval(content))except:tkinter.messagebox.showerror('错误','表达式错误')returnelif btn in operators:if content.endswith(operators):tkinter.messagebox.showerror('错误','不允许存在连续的运算符')returncontent += btnelif btn =='Sqrt':n = content.split('.')if all(map(lambda x:x.isdigit(),n)):content = eval(content) ** 0.5else:tkinter.messagebox.showerror('错误','表达式错误')returncontentVar.set(content)
# 放置clear按钮和”=“按钮
btnClear = tkinter.Button(root, text='C', command=lambda:buttonClick('C'))
btnClear.place(x=40, y=40, width=80, height=20)
btnCompute = tkinter.Button(root, text='=', command=lambda:buttonClick('='))
btnCompute.place(x=170, y=40, width=80, height=20)# 放置10个数字,小数点,和计算平方根的按钮
digits = list('0123456789.') + ['Sqrt']
index = 0
for row in range(4):for col in range(3):d = digits[index]index += 1btnDigit = tkinter.Button(root, text=d, command=lambda x=d: buttonClick(x))btnDigit.place(x=20 + col * 70, y=80 + row * 50, width=50, height=20)# 放置运算符按钮
operators = ('+', '-', '*', '/', '**', '//')
for index, operator in enumerate(operators):btnOperator = tkinter.Button(root, text=operator, command=lambda x=operator: buttonClick(x))btnOperator.place(x=230, y=80 + index * 50, width=50, height=20)root.mainloop()

Python课程设计,设计一个简易计算器相关推荐

  1. C语言简单计算器考虑优先级,利用你现有的c语言知识 设计开发一个简易计算器,可进行加、减、乘、除、求余运算。...

    满意答案 nxy_159 推荐于 2017.11.21 采纳率:52%    等级:9 已帮助:3561人 #include float numA = 0; float numB = 0; float ...

  2. c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

    C语言课程设计--一个简易计算器的设计与实现 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法--- ...

  3. python中用于释放类占用的资源的方法是()_编写一个简易计算器,要求根据输入的数字和四则运算符号,计算运算结果并输出。_学小易找答案...

    [简答题]20191220 课前作业 新工作页4.1的3-5-3页的填空题,参考教材P135-P144 [简答题]AutoCAD改编视图,尽量不用虚线 1. 主视图采用局部剖,表达右上角小圆筒(及孔) ...

  4. python的Tkinter库简单应用——开发一个简易计算器

    利用python的Tkinter库开发一个简易计算器 文章目录 利用python的Tkinter库开发一个简易计算器 前言 一.实验准备 二.开发步骤步骤 1.引入库 2.界面设计 3.关键--实现T ...

  5. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  6. linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  7. 如何使用 Java AWT 创建一个简易计算器

    本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工具包)是一个有助于构建 GUI 的 API (图形用户界面)基 ...

  8. 前端 JavaScript 实现一个简易计算器

    前端使用 JavaScript 实现一个简易计算器,没有难度,但是里面有些小知识还是需要注意的,算是一次基础知识回顾吧. 题目 实现一个简易版的计算器,需求如下: 1.除法操作时,如果被除数为0,则结 ...

  9. JSP 和 JavaBean 来实现一个简易计算器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.代码 1.calculater.jsp 2.Calculater.java 总结 前言 使用 JSP 和 Java ...

最新文章

  1. Apache构建web主机、日志分割及AWStats分析系统
  2. 飞信即将归来:移动企业IM面临的三大难题
  3. LeetCode 第 186 场周赛(1060/3107,前34.1%)
  4. 华为云技术开放日(第三季)话题介绍和直播群入口
  5. 【100题】第十一题(二叉树中节点的最大距离)
  6. 「leetcode」501. 二叉搜索树中的众数【暴力统计】【中序遍历】详解
  7. 中国最顶级的一批程序员,从首富到首负!
  8. Java 正则表达式 匹配英文字母
  9. 在SQL Sever中使用form membership认证
  10. 创建图层-只是保存lyr,此路不通
  11. 使用springboot往数据库中插入汉字报错
  12. 36个数据分析方法与模型
  13. jquery系列之-ajaxSubmit()提交表单示例
  14. 了解如何定义定义变量和调用函数
  15. Web应用防火墙 (WAF) 挡不住的攻击类型
  16. 接收字符大写转化为对应的小写
  17. ROS群机器人自动驾驶TensorFlow和人脸检测跟踪OpenCV
  18. 据挖掘中所需的概率论与数理统计知识
  19. 物联网专科专业必修课程_高职物联网专业课程体系建设
  20. 为什么程序员下班后只关显示器从不关电脑?

热门文章

  1. JSX element implicitly has type ‘any‘ because
  2. 饶毅正式发文举报裴钢论文后,多位学者质疑饶毅指控有误!饶毅对此再次回复!...
  3. mysql数据类型转换
  4. vue+three.js展示nrrd+vtk3D模型-vue框架集成(下)
  5. event.cancelBubble与event.stopPropagation()
  6. MFC界面编程基础(14):滚动条
  7. 应用性能管理(APM)综述
  8. HTML实现炫酷的流星雨
  9. 【数据挖掘】二手汽车交易预测
  10. 用R语言进行基本统计分析