设置输出为2 ** 3 * 2 ** 4 = 2 ** 7而不是128

时间:2018-01-05 18:10:34

标签: python sympy

我想将表达式2**3 * 2**4 =的表达式设置为2**7而不是128。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:5)

这个'工作' ,你可能不是你真正想要的东西

>>> from sympy import *
>>> x = Symbol('2')

>>> x
2

>>> x**3 * x**7
2**10


>>> z = x**3 * x**7

>>> z
2**10

>>> str(z)
'2**10'
>>> eval(str(z))
1024

添加了注释(使用@if ....的建议)

>>> two = Symbol('2', positive=True, integer=True)
>>> z = two**3 * two**7
>>> z
2**10

# a little cleaner perhaps than eval(str(z))
# but requiring you to remember the name `two`
>>> z.subs(two, 2)
1024

另外'工作'

>>> two**3 + two**7
2**7 + 2**3

>>> ((two**3 + two**7)).subs(two,two)
2**7 + 2**3

>>> ((two**3 + two**7)).subs(two, 2)
136

答案 1 :(得分:1)

不是真的;您要求将整数的默认显示更改为标准选项集之外的内容。无论实现细节如何,这将归结为您编写一个接受整数的函数并生成您想要看到的指数形式,作为字符串。