2024-04-20 14:26:17 发布
网友
我有一个字符串,类似于(4*1+3)/2,想用eval来计算答案。我怎么知道我是否会在某个中间步骤中得到余数?在这个例子中,我在最后一步得到一个余数,在这里我将计算7/2。你知道吗
(4*1+3)/2
eval
假设所有参数都是整数,只允许操作数为+、-、*、/、(、)。你知道吗
如果你这样做了
from __future__ import division
您将获得新的Python 3样式分区:
>>> eval("(4*1+3)/2") 3.5
您将知道您在某处得到了一个余数,因为输出是float类型的。你知道吗
float
尝试使用^{}函数:
>>> import ast >>> x = ast.parse('(4*1+3)/2', mode='eval') >>> x.body.left <_ast.BinOp object at 0x100613210> >>> x.body.right <_ast.Num object at 0x100613590> >>> x.body.op <_ast.Div object at 0x10060d2d0>
如果什么都不适合您,您可以尝试一些自定义代码来计算中缀表达式。有关使用堆栈计算中缀表达式的信息,请参见example。或者看看这个blog上的一些代码。你知道吗
似乎没有库、模块或组件可以帮助您完成您想做的事情。你可能得自己写。你知道吗
如果你这样做了
您将获得新的Python 3样式分区:
您将知道您在某处得到了一个余数,因为输出是
float
类型的。你知道吗尝试使用^{} 函数:
如果什么都不适合您,您可以尝试一些自定义代码来计算中缀表达式。有关使用堆栈计算中缀表达式的信息,请参见example。或者看看这个blog上的一些代码。你知道吗
似乎没有库、模块或组件可以帮助您完成您想做的事情。你可能得自己写。你知道吗
相关问题 更多 >
编程相关推荐