python编写计算器,供大家参考,具体内容如下
(1)计算器界面如下:
(2)基本满足了计算器的所有需求,使用时不可键盘输入,只能鼠标点击左键才可执行。初始时显示0.0,每次输入的内容存于D:\num.txt(启动程序时自动创建)
(3)" AC " 记录清零返回初始 0.0;" delete " 删除上一个输入内容;" +/- " 将正数为负数,负数为正数
(4)对于不同的进制数值系统,小数的精准值不同。
因此计算机会出现 0.1+0.2=0.3000000000004 的现象
能对数据进行截断处理,可以解决问题,但精度丧失。
(此计算机没有进行截断处理)
import tkinter,os
from tkinter import *
def temp(string):#空白间隔
temp=tkinter.Frame(string,width=20,height=50)
temp.pack()
flag=0
node=0
def num_work(): #更新显示框Lable
global flag
global node
with open("D:\\num.txt") as f:
for length in f:
string=length
top_work.configure(text=string.strip('\n')) # 重新设置标签文本
root.after(500,num_work) # 每隔0.5s调用函数num_work自身获取结果
def num_math_int(num1,num2):#整数运算
try:
if num2[0]=='+':
string=int(num1)+int(num2[1:])
elif num2[0]=='-':
string=int(num1)-int(num2[1:])
elif num2[0]=='x':
string=int(num1)*int(num2[1:])
elif num2[0]=='/':
string=int(num1)/int(num2[1:])
with open("D:\\num.txt",'a') as f:
f.write('\n'+str(string)+'\n')
except:
with open("D:\\num.txt",'a') as f:
f.write('\n错误')
def num_math_float(num1,num2):#小数运算
try:
if num2[0]=='+':</