代码:
# coding=utf-8
import math
import graphics
import time
jzh=10#进制数
o=1#记录表达式的第一个数
def shuzi(s):#转换整数
global o
if o==1:#第一个数转换为十进制
o+=1
if jzh==10:
return float(s)
return int(s.split('.')[0],jzh)#去掉小数部分
else:
return float(s)
def pf(s):#平反
s = s.split("G")
t = shuzi(s[0])
for i in range(1, len(s)):
t **= shuzi(s[i])
return t
def chen(s):#乘法
s = s.split("F")
t = pf(s[0])
for i in range(1, len(s)):
t *= pf(s[i])
return t
def chu(s):#除法
s = s.split("E")
t = chen(s[0])
for i in range(1, len(s)):
t /= chen(s[i])
return t
def zhch(s):#整除
s = s.split("D")
t = chu(s[0])
for i in range(1, len(s)):
t =t//chu(s[i])
return t
def yu(s):#取余
s = s.split("C")
t = zhch(s[0])
for i in range(1, len(s)):
t %= zhch(s[i])
return t
def jian(s):#减法
s = s.split("B")
t=yu(s[0])
for i in range(1,len(s)):
t-=yu(s[i])
return t
def jia(s):#加法
s=s.split("A")
t=0
for i in s:
t+=jian(i)
return t
def jsuan(s):#处理数据的计算
t=jia(s)
if t%1==0:
t=int(t)
return t
def jzhi_zhh(s,zh=1):#进制转换
if zh==10:
return jsuan(s)
elif zh==2:
return bin(int(jsuan(s)))
elif zh==8:
return oct(int(jsuan(s)))
elif zh==16:
return hex(int(jsuan(s)))
else:#开方
sq=math.sqrt(jsuan(s))
if sq%1==0:
return int(sq)
return sq
class Button:#按键类