创建一个多项式类,当调用该类时,它以文本形式返回多项式方程

2024-09-27 09:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,加项法,在多项式上加一项。该方法需要两个输入-第一个是系数值,第二个是指数值。方法应返回一个表示多项式的字符串,此方法返回的字符串应使用“^”字符表示求幂。下例显示了一个同时具有负指数和正指数的多项式:

多项式的基本规则也应适用,例如: -如果指数为0,则不打印“x”(即2而不是2x^0) -如果指数为1,则不打印指数(即2x而不是2x^1) -只显示非零系数的项 等等

我真的不太明白这个问题,真的需要一个开始的地方。谢谢你

p1 = Polynomial()
p1.add_term(123, 987654321)
p1.add_term(-9, -987654321)
print('p1 =', p1)
#Output is Below
123x^987654321 - 9x^-987654321
#Another Example can be seen below

p1 = Polynomial()
p1.add_term(1, 3)
p1.add_term(-4, 2)
p1.add_term(-100, 25)
p1.add_term(-66, 0) 
print('p1 =', p1)
#Output is below
p1 = -100x^25 + x^3 - 4x^2 - 66 + 6x^-7

在代码中可以看到预期的结果


Tags: 方法字符串addoutputis指数字符below
1条回答
网友
1楼 · 发布于 2024-09-27 09:29:16
class Polynomial:
def __init__(self):
    self.terms = []

def add_term(self,coef,expo):
    if coef == 0:
        return
    self.terms.append((expo,coef))
    self.terms.sort(reverse = True)
def __str__(self):
    if self.terms == []:
        return str(0)
    out = ''
    pos= 0
    for i in range(len(self.terms)):
        x = self.terms[i]
        if i == 0 and x[1] < 0:
            out += '-'
        if x[0] == 0:
            out += str(abs(x[1]))
        #elif x[1] == -1:
        #out += '-x^' + str(x[1])
        elif abs(x[1]) == 1:
            out += 'x^' + str(x[0])
        elif x[0] == 1:
            out += str(abs(x[1]))+'x'
        else:
            out += str(abs(x[1])) + 'x^' + str(x[0])
        if(pos != len(self.terms)-1):
            if self.terms[i+1][1] > 0:
                out += ' + '
            else:
                out += ' - ' 
        pos+=1
    return out

孩子们,这就是答案!!在

相关问题 更多 >

    热门问题