SymPy может распечатать базу экспонент и экспоненту? - PullRequest
0 голосов
/ 22 ноября 2018

Заранее спасибо и извините за плохой английский!

Хочу

1.x: как определить экспонента, возможно определение?

2.print: base = b, экспонента = n

WrongScript.py

from sympy import *
var('x y z a b n')
x=b**n
y=3**n
z=a
# output 1.---------------------------------
print("x=",x) # x= b**n,**
print("y=",y) # y= 3**n,**
print("z=",z) # z= a,   not **
# output 2.---------------------------------
print(MyBaseOut(x),MyExponentOut(x))  # b,n
print(MyBaseOut(y),MyExponentOut(y))  # 3,n

def MyBaseOut(p):
    #   ans=?
    return ans
def MyExponentOut(q):
    #   ans=?
    return ans

2018-11-26 ------------------------------

FullScript.py

from sympy import *
var('b n')
def MyBaseOut(p):
    return p.as_base_exp()[0]
def MyExponentOut(q):
    return q.as_base_exp()[1]
x=b**n
y=3**n
print(MyBaseOut(x),MyExponentOut(x))
print(MyBaseOut(y),MyExponentOut(y))
# b n
# 3 n

1 Ответ

0 голосов
/ 22 ноября 2018

Атрибут is_Pow скажет вам, имеет ли он показатель степени, отличный от 1, а метод as_base_exp() скажет вам, что такое основание и показатель степени - выберите элемент 0 для основания и элемент 1 для показателя степени:

>>> [(i.is_Pow, i.as_base_exp()) for i in (y,1/y,y**2,y**z)]
[(False, (y, 1)), (True, (y, -1)), (True, (y, 2)), (True, (y, z))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...