Python使用graphics库开发计算器

代码:

# 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:#按键类
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值