【问题标题】:Formatting for algebraic expressions代数表达式的格式
【发布时间】:2021-02-11 04:35:19
【问题描述】:

这是我手动求解这个方程的代码:

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 的值不起作用。

感谢您的帮助。

【问题讨论】:

    标签: python expression indentation algebra


    【解决方案1】:

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

    b=2
    c=3
    sum_ = lambda b,c: [[1, 4 + c, 0], [6, 2 + b + c, b]]
    sum_(b,c)
    
    [[1, 7, 0], [6, 7, 2]]
    
    

    【讨论】:

    • 好点,我会更明智地选择我的变量名。
    【解决方案2】:

    这很容易做到。您可以使用eval() 来评估python 表达式。从文档中,对于evalthe source may be a string representing a Python expression or a code object as returned by compile()。如果我理解正确,您需要使用字符串。

    例如,

    >>> b=2
    >>> c=3
    >>> sum= "[[1, 4 + c, 0], [6, 2 + b + c, b]]"
    >>> result=eval(sum)
    >>> result
    [[1, 7, 0], [6, 7, 2]]
    

    如果您想将其转换为字符串,只需执行result=str(eval(sum))

    【讨论】:

    • 谢谢,这很好用,解决了我的问题
    【解决方案3】:

    怎么样:

    sum = f"[[1, {4 + c}, 0], [6, {2 + b + c}, b]]"
    

    或者这个:

    sum = str([[1, 4 + c, 0], [6, 2 + b + c, b]])
    

    甚至这个(not very recommended):

    sum = eval("[[1, 4 + c, 0], [6, 2 + b + c, b]]")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多