Python 代数表达式的格式

Python 代数表达式的格式,python,expression,indentation,algebra,Python,Expression,Indentation,Algebra,以下是我手动求解此方程的代码: b=2 c=3 sum= [[1, 4 + c, 0], [6, 2 + b + c, b]] [[1, 7, 0], [6, 7, 2]] 这是我得到的输出,它工作正常,类型: 如何获得相同的输出,但作为字符串?我不想将上面的列表类型更改为字符串 b=2 c=3 sum= "[[1, 4 + c, 0], [6, 2 + b + c, b]]" '[[1, 4 + c, 0], [6, 2 + b + c, b]]' 为什么这不起作用,这

以下是我手动求解此方程的代码:

b=2
c=3
sum= [[1, 4 + c, 0], [6, 2 + b + c, b]]
[[1, 7, 0], [6, 7, 2]]
这是我得到的输出,它工作正常,类型:

如何获得相同的输出,但作为字符串?我不想将上面的列表类型更改为字符串

b=2
c=3
sum= "[[1, 4 + c, 0], [6, 2 + b + c, b]]"
'[[1, 4 + c, 0], [6, 2 + b + c, b]]'
为什么这不起作用,这是正确的输出“类型”,但b和c的值不起作用


谢谢您的帮助。

您可以使用
lambda
或者换句话说,使用function
def
注意:不要使用
sum
作为变量名,因为它是python中的内置函数

b=2
c=3
总和=λb,c:[1,4+c,0],[6,2+b+c,b]]
总和(b,c)

这很容易做到。您可以使用
eval()
计算python表达式。从文档中可以看出,对于
eval
源代码可能是一个字符串,表示由compile()返回的Python表达式或代码对象。如果我理解正确,您需要使用字符串

比如说,

>>> b=2
>>> c=3
>>> sum= "[[1, 4 + c, 0], [6, 2 + b + c, b]]"
>>> result=eval(sum)
>>> result
[[1, 7, 0], [6, 7, 2]]
如果要将其转换为字符串,只需执行以下操作:

sum = f"[[1, {4 + c}, 0], [6, {2 + b + c}, b]]"
或者这个:

sum = str([[1, 4 + c, 0], [6, 2 + b + c, b]])
甚至这个():


谢谢,这很好地解决了我的问题。好的,我会更明智地选择变量名。
sum = str([[1, 4 + c, 0], [6, 2 + b + c, b]])
sum = eval("[[1, 4 + c, 0], [6, 2 + b + c, b]]")