该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

# !/usr/bin/python

# -*- coding: UTF-8 -*-

# -*- decoding: UTF-8 -*-

from Tkinter import *

import Tkinter as tk

import string

#import Tkinter # 导入kintert模块

root = tk.Tk()

#root = Tkinter.Tk()

#root = tkinter.Tk()

root.minsize(280, 500)

root.title('数字计算器')

# 1.界面布局

# 显示面板

result = tk.StringVar()

result.set(0) # 显示面板显示结果1,用于显示默认数字0

result2 = tk.StringVar() # 显示面板显示结果2,用于显示计算过程

result2.set('')

# 显示版

label = tk.Label(root, font=('微软雅黑', 20), bg='#EEE9E9', bd='9', fg='#828282', anchor='se',textvariable=result2) # 设置运算结果的显示界面的长,宽距离

label.place(width=280, height=170)

label2 = tk.Label(root, font=('微软雅黑', 30), bg='#EEE9E9', bd='9', fg='black', anchor='se',textvariable=result) # 设置输入界面的长,宽距离

label2.place(y=170, width=280, height=60)

# 数字键按钮

btn7 = tk.Button(root, text='7', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('7')) # 对于键位7的位置,宽,高的距离设置

btn7.place(x=0, y=285, width=70, height=55)

btn8 = tk.Button(root, text='8', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('8')) # 对于键位8的位置,宽,高的距离设置

btn8.place(x=70, y=285, width=70, height=55)

btn9 = tk.Button(root, text='9', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('9')) # 对于键位9的位置,宽,高的距离设置

btn9.place(x=140, y=285, width=70, height=55)

btn4 = tk.Button(root, text='4', font=('微软红色', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('4')) # 对于键位4的位置,宽,高的距离设置

btn4.place(x=0, y=340, width=70, height=55)

btn5 = tk.Button(root, text='5', font=('微软黄色', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('5')) # 对于键位5的位置,宽,高的距离设置

btn5.place(x=70, y=340, width=70, height=55)

btn6 = tk.Button(root, text='6', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('6')) # 对于键位6的位置,宽,高的距离设置

btn6.place(x=140, y=340, width=70, height=55)

btn1 = tk.Button(root, text='1', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('1')) # 对于键位1的位置,宽,高的距离设置

btn1.place(x=0, y=395, width=70, height=55)

btn2 = tk.Button(root, text='2', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('2')) # 对于键位2的位置,宽,高的距离设置

btn2.place(x=70, y=395, width=70, height=55)

btn3 = tk.Button(root, text='3', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('3')) # 对于键位3的位置,宽,高的距离设置

btn3.place(x=140, y=395, width=70, height=55)

btn0 = tk.Button(root, text='0', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressNum('0')) # 对于键位0的位置,宽,高的距离设置

btn0.place(x=70, y=450, width=70, height=55)

# 运算符号按钮

btnac = tk.Button(root, text='AC', bd=0.5, font=('黑体', 20), fg='orange',command=lambda: pressCompute('AC')) # 设置运算符清除键位AC

btnac.place(x=0, y=230, width=70, height=55)

btnback = tk.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 = tk.Button(root, text='÷', font=('微软雅黑', 20), fg='#4F4F4F', bd=0.5,command=lambda: pressCompute('/')) # 设置运算符键位除号

btndivi.place(x=140, y=230, width=70, height=55)

btnmul = tk.Button(root, text='×', font=('微软雅黑', 20), fg="#4F4F4F", bd=0.5,command=lambda: pressCompute('*')) # 设置运算符键位乘号

btnmul.place(x=210, y=230, width=70, height=55)

btnsub = tk.Button(root, text='-', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('-')) # 设置运算符键位减号

btnsub.place(x=210, y=285, width=70, height=55)

btnadd = tk.Button(root, text='+ ', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('+')) # 设置运算符键位加号

btnadd.place(x=210, y=340, width=70, height=55)

btnequ = tk.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 = tk.Button(root, text='%', font=('微软雅黑', 20), fg=('#4F4F4F'), bd=0.5,command=lambda: pressCompute('%')) # 设置运算符键位百分号

btnper.place(x=0, y=450, width=70, height=55)

btnpoint = tk.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

del lists[:]

#lists.clear()

result.set(0)

if sign == 'b': # 如果按下的是退格‘’,则选取当前数字第一位到倒数第二位

a = num[0:-1]

del lists[:]

#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命令运算字符串中的内容

# a = str(endNum)

# b = '=' a #给运算结果前添加一个 ‘=’ 显示 不过这样写会有BUG 不能连续运算,这里注释,不要 =

# c = b[0:10] #所有的运算结果取9位数

result.set(endNum) # 讲运算结果显示到屏幕1

result2.set(computrStr) # 将运算过程显示到屏幕2

del lists[:]

# lists.clear() # 清空列表内容

#lists.clear()

root.mainloop()

python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...相关推荐

  1. 斐波那契数列由数字1 1 2 3 5 8 13 21 34等等组成,其中每一个数字(从第三个起) 都是由前两个数字的和。

    /*斐波那契数列由数字1 1 2 3 5 8 13 21 34等等组成,其中每一个数字(从第三个起)都是由前两个数字的和.创建一个方法,接受一个整数参数,并显示从第一个元素开始由该参数指定的个数所构成 ...

  2. lisp 河道水面线计算_美国工程兵团河道水面线计算CAD(HEC-RAS)

    ChemEng.Software产品(化学数据库程序,包含超过700种化学药品的综合信息): ChemEng.Software.ChemMaths.v8.0.WinALL ChemEng.Softwa ...

  3. java 个税计算_【JAVA300例】10、计算个人所得税

    逻辑是这样的.每个等级计算的系数都不一样.分别有多个档位.要判断处于什么档位然后用特殊的公式去计算. 原版是从小到大判断,每次写条件很烦.这里换成从大到小.节省敲代码时间. import java.u ...

  4. js滤镜灰度计算_案例分享爱奇艺边缘计算探索与实践

    摘要: 随着云原生技术的发展和 5G 商用的到来,边缘计算随"风"而起.本文将从提升视频播放体验和降低带宽成本的两个目标,介绍爱奇艺在边缘计算服务平台和边缘缓存应用场景两方面的实践 ...

  5. 桩筏有限元中的弹性板计算_建研院关于桩筏计算几个问题的解答

    说明:本贴是转自其它结构论坛.本着有利于大家设计水平提高的原则特转贴至此.如有不妥之处,请原论坛及贴子的原创作者[lkyjxm]给予谅解.(本人将表示深深的歉意!)谢谢!最后,再一次对于贴子的原创作者 ...

  6. c语言如何持续输入字符直到指定字符结束_《小白学C》第三章 常用输入输出函数...

    第三章 常用输入/输出函数 与其他高级语言一样, C语言的语句是用来向计算机系统发出操作指令的. 当我们提到输入时,这意味着要向程序填充一些数据.输入可以是以文件的形式或从命令行中进行.C 语言提供了 ...

  7. 液晶弹性自由能计算_自由能方法应用(一)开放计算平台BRIDGE的介绍及使用案例...

    简介 BRIDGE(Biomolecular Reaction and Interaction Dynamics Global Environment)是一个开源的网络平台,旨在为设计可靠的方法提供一 ...

  8. 平流式初沉池贮砂斗计算_城市污水处理厂产泥量的计算

    污泥是污水处理过程的副产物,包括筛余物.沉泥.浮渣和剩余污泥等.污泥体积约占处理水量的0.3%~0.5%左右,如水进行深度处理,污泥量还可能增加0.5~1倍. 一.污水处理污泥分类及特性 1.按成分不 ...

  9. c++ 圆上任意点坐标计算_圆曲线上任意一点坐标计算

    偏距 (m) 偏角 (° ) N(X) E(Y) DK07+590.000 3378604.933 453651.957 98°56′56.31″ 5 90 3378609.872 453652.73 ...

最新文章

  1. Mask R-CNN用于目标检测和分割代码实现
  2. Swift 开源带来的思考
  3. Atitit..css的体系结构
  4. 图灵奖得主LeCun亲授,深度学习课程在线发布|资源
  5. python文件的编译
  6. linux ps mysql_linux系统中ps指令使用详解
  7. jquery地图插件jvectorMap
  8. python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
  9. python培训内幕_刚刚,Python 内幕被爆出!老码农:没控制住,心态已崩!
  10. 如何用编程方式实现创建一个页面并替换掉站点首页
  11. 在学校外边找了份工作
  12. 机器学习标准教科书PRML的Python实现:最佳读书伴侣
  13. DICM和BMP图像的显示及转换
  14. [电路笔记]三相电路
  15. Ionic 创建打包项目
  16. 虎牙Java后台实现三次面经
  17. Java身份证处理工具
  18. 12个球使用天枰3次称出最轻的那个
  19. 【驱动模块】 -- linux的背光(backlight)子系统【转】
  20. 新版PMBOK中项目管理十二原则,你知道了吗?

热门文章

  1. 2013年,6月20日,今天非常无聊啊。
  2. 虽然有失落的即时通讯
  3. 时光老人的飞鸽传书下载
  4. 2005免费书记下载-[NEW]
  5. 开发和编程是一样的吗?区别有哪些?
  6. VS Code:高效前端程序员的秘密武器
  7. transition属性详细讲解
  8. 好玩的java代码 安卓_各种版本的 玩Android 来啦!
  9. c++ qt获取电脑的内存_Qt官方示例信号量
  10. 大规模研究表明,睡眠不足、压力给大脑带来的伤害,犹如脑震荡