gpt4 book ai didi

python - 在没有任何内置 e​​val 函数或外部库的情况下在 python 中求解数学

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:31 25 4
gpt4 key购买 nike

我需要编写一个可以从中获取值的程序

最佳答案

非常有趣的问题。实际上,就您而言,这很简单。您可以使用 ast 模块解析整个源字符串,如下所示

import ast
import operator

functions = {
"add": operator.add,
"abs": operator.abs,
"multiply": operator.mul
}

def recursive_evaluation(current_element):
if isinstance(current_element, ast.Module):
return recursive_evaluation(current_element.body[0].value)
elif isinstance(current_element, ast.Call):
function = functions[current_element.func.id]
args = [recursive_evaluation(item) for item in current_element.args]
return function(*args)
elif isinstance(current_element, ast.Num):
return current_element.n
else:
raise ValueError("Unknown Element " + str(current_element))

source = "abs(add(add(9465,38),multiply(add(63303,146),46)))"
print recursive_evaluation(ast.parse(source))

source = "add(1, -2)"
print recursive_evaluation(ast.parse(source))

source = "abs(add(1, -2))"
print recursive_evaluation(ast.parse(source))

输出

2928157
-1
1

关于python - 在没有任何内置 e​​val 函数或外部库的情况下在 python 中求解数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21573436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com