python计算字符串数字的加减乘除法不适用eval函数
时间: 2023-08-01 10:11:52 浏览: 143
如果不想使用eval函数,可以通过自己编写代码来实现计算字符串数字的加减乘除法。以下是一个简单的例子:
```python
def calculate(expression):
nums = []
ops = []
i = 0
while i < len(expression):
if expression[i].isdigit():
j = i
while j < len(expression) and expression[j].isdigit():
j += 1
nums.append(int(expression[i:j]))
i = j
elif expression[i] in '+-*/':
ops.append(expression[i])
i += 1
else:
i += 1
# 计算乘除
i = 0
while i < len(ops):
if ops[i] == '*':
nums[i] *= nums[i+1]
del nums[i+1]
del ops[i]
elif ops[i] == '/':
nums[i] //= nums[i+1]
del nums[i+1]
del ops[i]
else:
i += 1
# 计算加减
res = nums[0]
for i in range(len(ops)):
if ops[i] == '+':
res += nums[i+1]
elif ops[i] == '-':
res -= nums[i+1]
return res
```
该函数接受一个字符串表达式,返回计算结果。它首先将字符串中的数字和运算符分别存储在两个列表中,然后依次计算乘除法,最后计算加减法得到结果。注意,在计算乘除法时需要注意整数除法。
阅读全文