python输入一个四则运算表达式,python求表达式值例题

  python输入一个四则运算表达式,python求表达式值例题

  本文主要介绍python的四个运算表达式的求值实例的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010四则算术表达式求值思路讲解算法步骤代码

  

目录

  

四则运算表达式求值

  双栈用于实现存储数值的3354栈num和存储运算符的栈op。

  

思路说明

  预处理原来的表达式字符串exp,把它变成一个list explist,其中一个元素对应一个值或操作符。遍历explist,将每个元素依次推入对应的栈中。每次推送后,判断当前两个栈顶是否可以进行乘除运算。栈顶乘除的充要条件是ops栈顶是*、/中的一个,nums中只比ops中多一个元素。如果可以操作,操作并将结果按回nums。遍历完explist后,所有的乘除运算都已经执行完毕,ops中只剩下加法和减法。然后开始另一个循环,继续操作。最后,nums中唯一剩下的元素是表达式的值。

  

算法步骤

  定义操作(a,b,op: str):

  计算运算的结果。

  :参数a:阀门

  :参数b: val

  :param op:运算符

  :返回:值

  if op== :

  返回a b

  elif op==-:

  返回a-b

  elif op==*:

  返回a*b

  elif op==/:

  返回a/b

  else:

  引发异常(“不正确的运算符”)

  def exp _ str 2 list(exp : str):

  表达式exp:str被转换成一个列表,每个元素对应一个数字num或运算符op .

  Exp是由四个算术表达式组成的标准字符串。

  :param exp: str,表达式

  :返回:列表

  Opset={ ,-, * ,/} #运算符集

  标志=-1

  explist=list()

  对于,char in enumerate (exp) : #表示表达式字符串中的每个字符

  If char in opset: # If char是一个运算符

  Explist。APPEND (EXP [flag13360i]) #从前一个运算符到当前运算符的编号保存到EXPLIST。

  Flag=i #将标志更新到当前op位置

  Explist.append(char) #当前op也加入Explist。

  explist.append(exp[flag 1:])

  返回explist

  def calculate _ expression(exp : str):

  评估表达式。计算由字符串exp表示的表达式的值,并返回一个数值。

  Exp是一个标准的四表达式字符串,它不包含括号。

  :param exp: str,表达式

  :返回:值

  opset={ ,-, * ,/}

  Nums=list() #数字堆栈

  Ops=list() #运算符堆栈

  explist=exp_str2list(exp)

  打印(爆炸列表)

  对于explist:中的e

  # e进入堆栈

  E if in opset3360 #如果e是一个运算符

  操作附加(e)

  else:

  nums.append(eval(e))

  #如果E是具有高优先级的乘法和除法方法,并且

  # nums精确匹配ops,栈顶可以计算一次,运算结果压回nums。

  if ops和ops[-1] in {* ,/ } and len(nums)==len(ops)1:

  op=ops.pop()

  y=nums.pop()

  x=nums.pop()

  nums.append(operation(x,y,op))

  #此时,explist中的所有元素都已经被遍历,乘除法也已经被操作。双栈上只剩下加法和减法可操作。众所周知,加减法服从结合律,所以我们可以一直计算到最后。

  而ops:

  op=ops.pop()

  y=nums.pop()

  x=nums.pop()

  x_op_y=运算(x,y,op)

  nums.append(x_op_y)

  返回num[0]

  if __name__==__main__:

  exp=1*43 542 532*432

  print(calculate_expression(exp))

  打印(eval(exp))

  参考python开发全功能的任意表达式求值示例

  以上是python四个算术表达式求值例子的详细内容。更多关于python四则算术表达式求值的信息,请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python怎么输入根号,Python输入根号
  • python怎么输入根号,Python输入根号,python如何输入根号
  • Python输入一个元组,python如何定义元组
  • python输入两点坐标,计算并输出两点间的距离,python计算区间百分位
  • pythonfor循环输出不换行,Python输入不换行
  • 判断输入的数是否为素数Python,用python输入一个数,判断这个数是否素数
  • python输入重定向,linux输出重定向到文件
  • 身份证号python,用python输入身份证号码判断性别的代码
  • python输入矩形的长和宽,输出矩形的面积,用python画椭圆形代码
  • python 时分秒,python输入秒数,将它按小时,分钟,秒的形式来输出
  • python输入一个自然数输出各位数字之和,输入数字输出对应的中文数字Python
  • Python输入数据生成折线图,python画折线图显示点值
  • python输入多个数字成为列表,python输入一组数到列表
  • python输入回车,python实现按回车键继续程序
  • python中二进制 八进制 十六进制,python输入一个十进制数,输出其对应的八进制数据
  • 留言与评论(共有 条评论)
       
    验证码: