python输入的数字为什么不能计算_计算器为什么只能进行个位数的计算,每次只能输入一个数字,求...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
# !/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 2 3 5 8 13 21 34等等组成,其中每一个数字(从第三个起) 都是由前两个数字的和。
/*斐波那契数列由数字1 1 2 3 5 8 13 21 34等等组成,其中每一个数字(从第三个起)都是由前两个数字的和.创建一个方法,接受一个整数参数,并显示从第一个元素开始由该参数指定的个数所构成 ...
- lisp 河道水面线计算_美国工程兵团河道水面线计算CAD(HEC-RAS)
ChemEng.Software产品(化学数据库程序,包含超过700种化学药品的综合信息): ChemEng.Software.ChemMaths.v8.0.WinALL ChemEng.Softwa ...
- java 个税计算_【JAVA300例】10、计算个人所得税
逻辑是这样的.每个等级计算的系数都不一样.分别有多个档位.要判断处于什么档位然后用特殊的公式去计算. 原版是从小到大判断,每次写条件很烦.这里换成从大到小.节省敲代码时间. import java.u ...
- js滤镜灰度计算_案例分享爱奇艺边缘计算探索与实践
摘要: 随着云原生技术的发展和 5G 商用的到来,边缘计算随"风"而起.本文将从提升视频播放体验和降低带宽成本的两个目标,介绍爱奇艺在边缘计算服务平台和边缘缓存应用场景两方面的实践 ...
- 桩筏有限元中的弹性板计算_建研院关于桩筏计算几个问题的解答
说明:本贴是转自其它结构论坛.本着有利于大家设计水平提高的原则特转贴至此.如有不妥之处,请原论坛及贴子的原创作者[lkyjxm]给予谅解.(本人将表示深深的歉意!)谢谢!最后,再一次对于贴子的原创作者 ...
- c语言如何持续输入字符直到指定字符结束_《小白学C》第三章 常用输入输出函数...
第三章 常用输入/输出函数 与其他高级语言一样, C语言的语句是用来向计算机系统发出操作指令的. 当我们提到输入时,这意味着要向程序填充一些数据.输入可以是以文件的形式或从命令行中进行.C 语言提供了 ...
- 液晶弹性自由能计算_自由能方法应用(一)开放计算平台BRIDGE的介绍及使用案例...
简介 BRIDGE(Biomolecular Reaction and Interaction Dynamics Global Environment)是一个开源的网络平台,旨在为设计可靠的方法提供一 ...
- 平流式初沉池贮砂斗计算_城市污水处理厂产泥量的计算
污泥是污水处理过程的副产物,包括筛余物.沉泥.浮渣和剩余污泥等.污泥体积约占处理水量的0.3%~0.5%左右,如水进行深度处理,污泥量还可能增加0.5~1倍. 一.污水处理污泥分类及特性 1.按成分不 ...
- c++ 圆上任意点坐标计算_圆曲线上任意一点坐标计算
偏距 (m) 偏角 (° ) N(X) E(Y) DK07+590.000 3378604.933 453651.957 98°56′56.31″ 5 90 3378609.872 453652.73 ...
最新文章
- Mask R-CNN用于目标检测和分割代码实现
- Swift 开源带来的思考
- Atitit..css的体系结构
- 图灵奖得主LeCun亲授,深度学习课程在线发布|资源
- python文件的编译
- linux ps mysql_linux系统中ps指令使用详解
- jquery地图插件jvectorMap
- python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
- python培训内幕_刚刚,Python 内幕被爆出!老码农:没控制住,心态已崩!
- 如何用编程方式实现创建一个页面并替换掉站点首页
- 在学校外边找了份工作
- 机器学习标准教科书PRML的Python实现:最佳读书伴侣
- DICM和BMP图像的显示及转换
- [电路笔记]三相电路
- Ionic 创建打包项目
- 虎牙Java后台实现三次面经
- Java身份证处理工具
- 12个球使用天枰3次称出最轻的那个
- 【驱动模块】 -- linux的背光(backlight)子系统【转】
- 新版PMBOK中项目管理十二原则,你知道了吗?