Python – 评估字符串中给出的表达式
有时,在使用Python字符串时,我们可以以字符串格式进行某些计算,我们需要制定其结果。这可能发生在与数学和数据相关的领域。让我们讨论一下我们可以执行此任务的某些方法。
方法 #1:使用正则表达式 + map() + sum()
上述功能的组合可以用来解决这个问题。在此,我们使用 sum() 执行计算任务,并使用 map() 执行运算符和操作的映射。如果字符串只有 + 或 -,则可以使用此方法。方法#2 也可用于其他操作。
Python3
# Python3 code to demonstrate working of
# Expression evaluation in String
# Using regex + map() + sum()
import re
# initializing string
test_str = "45 + 98-10"
# printing original string
print("The original string is : " + test_str)
# Expression evaluation in String
# Using regex + map() + sum()
res = sum(map(int, re.findall(r'[+-]?\d+', test_str)))
# printing result
print("The evaluated result is : " + str(res))
Python3
# Python3 code to demonstrate working of
# Expression evaluation in String
# Using eval()
# initializing string
test_str = "45 + 98-10"
# printing original string
print("The original string is : " + test_str)
# Expression evaluation in String
# Using eval()
res = eval(test_str)
# printing result
print("The evaluated result is : " + str(res))
输出 :
The original string is : 45+98-10
The evaluated result is : 133
方法 #2:使用 eval()
这是可以执行此任务的方式之一。在此,我们使用 eval() 在内部执行计算。
Python3
# Python3 code to demonstrate working of
# Expression evaluation in String
# Using eval()
# initializing string
test_str = "45 + 98-10"
# printing original string
print("The original string is : " + test_str)
# Expression evaluation in String
# Using eval()
res = eval(test_str)
# printing result
print("The evaluated result is : " + str(res))
输出 :
The original string is : 45+98-10
The evaluated result is : 133