python简易计算器(加减乘除)练习

该博客介绍了如何使用Python设计一个简易计算器,涉及对输入公式进行格式化和非法输入检测,以及利用正则表达式处理括号、负数和小数的加减乘除运算。
摘要由CSDN通过智能技术生成

设计思路:首先对输入的计算公式做格式化处理和非法输入检测(这里主要检测是否有小写字母),然后对有括号和无括号两种情况,通过re.search()方法匹配处理(特别注意匹配负数和小数的情况以及[\*]是不需要去特殊化处理的),当做乘除法计算时用re.split()方法取到数值,做加减法时则用re.findall()方法取到数值,最后用str.replace()方法逐步更新字符串中的运算式

#!/usr/bin/env Python
# coding=utf-8
import re
def check(s):
    flag=True
    if re.search('[a-z]',s):
        print('invalid input')
        flag=False
    return flag
def format(s):
    s = s.replace(' ', '')#替换所有空格为空
    s = s.replace('--','+')
    s = s.replace('+-','-')
    return s
def count_chengchu(s):#45*25
    x,y=re.split('[*/]',s)#将值赋给x和y
    if re.search('\*',s):
        s=float(x)*float(y)
    else:
        s=float(x)/float(y)
    return s
def count_jiajian(s):#45+25=70
    [x,y] = re.findall('-?\d+\.?\d*', s) # 将值赋给x和y
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值