数据结构表达式求值代码
```python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 通用表达式求值算法,只支持加减乘除和小数,不支持复杂运算(如平方根、三角函数等)
def evaluate(expression): # expression是字符串格式的表达式
expression_list = expression.split(' ') # 将字符串表达式以空格分割成列表形式
# 先将乘除运算完成(避免出现1+2*3的情况)
i = 0 # 用于循环遍历expression_list中的元素
while i < len(expression_list): # 遍历expression_list中的元素
if expression_list[i] == '*': # 如果当前元素为'*'号时,则将前后两个数相乘并替代当前位上的'*'号
result = float(expression_list[i - 1]) * float(expression_list[i + 1]) # 计算前后两数相乘的值
del expression_list[i - 1: i + 2] # 移除原有位上的三个元素
expression_list.insert(i - 1, str(result)) # 把新计算出来的值重新加回列表中
elif expression_list[i] == '/': # 如果当前元素是'/'号时,则将前一数除以后一数并替代当前位上'/'号
result = float(expression_list[i - 1]) / float(expression_list[i + 1]) # 计算除法运行的值
del expression_list[i - 1: i + 2] # 移除原有位上的三个元
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!