相关疑难解决方法(0)

315
推荐指数
11
解决办法
30万
查看次数

来自字符串的数学运算

假设我有一个标准的Python字符串(例如从中获取的字符串raw_input()),可能"2 + 2"是为了简单起见.

我想将这个字符串转换为Python中的标准数学运算,这样"2 + 2"就会返回4.

有没有一种简单的方法可以做到这一点,或者我是否必须拆分空格并手动解析每个数字/符号,然后根据我发现的数据进行数学运算?

我想要正则表达式吗?

python string math

32
推荐指数
5
解决办法
9万
查看次数

为什么ast.literal_eval('5*7')会失败?

为什么文字评估5 * 7失败,而5 + 7不是?

import ast

print(ast.literal_eval('5 + 7'))
# -> 12

print(ast.literal_eval('5 * 7'))
# -> 
Traceback (most recent call last):
  ...
ValueError: malformed node or string: <_ast.BinOp object at ...>
Run Code Online (Sandbox Code Playgroud)

文件没有解释这一点.

在SO上回答这个问题之后我发现了这个问题:得到一个字符串的结果.

python eval abstract-syntax-tree

8
推荐指数
2
解决办法
760
查看次数

标签 统计

python ×3

string ×2

abstract-syntax-tree ×1

eval ×1

exec ×1

math ×1