Python四则运算

Python四则运算
思路:输入一串表达式,比如20✳35=,然后运算出结果20✳35= 700。
将整个表达式看成一个字符串,首先判断含有哪种运算符号,然后调用相应的方法。
通过遍历得到运算符号前边的数字的个数,方便后续的数据类型转换。
然后同样方法转换符号后边的数字。
最后执行加法或者减法。
在这里插入图片描述
缺点:只能进行一次运算,如果输入连加连乘,就报错。后续使用正则表达式进行过滤,应该可以实现。

#-*- coding: utf-8 -*-
def add(choice,count):
    for i in choice:
        if i == "+":
            choice = choice.replace("+","")
            break
        count = count + 1 # 得到+符号前的数字个数
    num1 = choice[0]
    for j in range(1,count):
        num1 = num1+choice[j] # 将+号前的数字拼接好
    num1 = int(num1) # 将字符串强制类型转换为int型

    num2 = choice[count]
    for k in range(count+1,length-1):
        num2 = num2+choice[k] # 将+号前的数字拼接好
    num2 = int(num2) # 将字符串强制类型转换为int型
    print("%d+%d=%d" %(num1,num2,num1+num2))

def subtract(choice,count):
    for i in choice:
        if i == "-":
            choice = choice.replace("-","")
            break
        count = count + 1 # 得到+符号前的数字个数
    num1 = choice[0]
    for j in range(1,count):
        num1 = num1+choice[j] # 将+号前的数字拼接好
    num1 = int(num1) # 将字符串强制类型转换为int型

    num2 = choice[count]
    for k in range(count+1,length-1):
        num2 = num2+choice[k] # 将+号前的数字拼接好
    num2 = int(num2) # 将字符串强制类型转换为int型
    print("%d-%d=%d" %(num1,num2,num1-num2))

def multiply(choice,count):
    for i in choice:
        if i == "*":
            choice = choice.replace("*","")
            break
        count = count + 1 # 得到+符号前的数字个数
    num1 = choice[0]
    for j in range(1,count):
        num1 = num1+choice[j] # 将+号前的数字拼接好
    num1 = int(num1) # 将字符串强制类型转换为int型

    num2 = choice[count]
    for k in range(count+1,length-1):
        num2 = num2+choice[k] # 将+号前的数字拼接好
    num2 = int(num2) # 将字符串强制类型转换为int型
    print("%d*%d=%d" %(num1,num2,num1*num2))

def divide(choice,count):
    for i in choice:
        if i == "/":
            choice = choice.replace("/","")
            break
        count = count + 1 # 得到+符号前的数字个数
    num1 = choice[0]
    for j in range(1,count):
        num1 = num1+choice[j] # 将+号前的数字拼接好
    num1 = int(num1) # 将字符串强制类型转换为int型

    num2 = choice[count]
    for k in range(count+1,length-1):
        num2 = num2+choice[k] # 将+号前的数字拼接好
    num2 = int(num2) # 将字符串强制类型转换为int型
    print("%d/%d=%d" %(num1,num2,num1/num2))

count = 0
choice = input("请输入运算式:")
length = len(choice)
if( "+" in choice):
    add(choice,count)
if( "-" in choice):
    subtract(choice,count)
if( "*" in choice):
    multiply(choice,count)
if( "/" in choice):
    divide(choice,count)




  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值