关于多项式的生成运算和class的使用

img

img


以上是第一个问题要求

img

以上是第二个问题要求

img

img

并且让在给定的命名class下编写

原始题目的链接地址或者文件可以发一下,有几个地方还是有点补全。有原始文件更好

这两个task主要考察python类以及内部方法的使用。
第一个任务:
1、init方法用于接收参数
2、__str__函数用于将类信息以字符串的方式输出。因为已经给出了多项式的展示格式,所以需要对__str__方法进行重写。

第二个任务:
1、多项式取负,可以对所有系数取一次负数, 也可以增加一个负数标志位,看个人写法。
2、多项式加、减法类似,都是对同级系数操作
3、多项式乘法,这个地方需要注意,低次相乘会变成高次。

因为只是一个练习,没有写成通用方法,多项式乘法部分有些啰说。
具体代码如下:

class Polynomial:
    # task 1
    def __init__(self, coefficients):
        self.neg_flag = False
        self.c0 = int(coefficients[0])
        self.c1 = int(coefficients[1])
        self.c2 = int(coefficients[2])
        self.c3 = None
        self.c4 = None

    def __str__(self):
        if self.neg_flag:
            c0_pos_val = -self.c0
            c1_pos_flag = "-" if -self.c1 < 0 else "+"
            c2_pos_flag = "-" if -self.c2 < 0 else "+"
        else:
            c0_pos_val = self.c0
            c1_pos_flag = "-" if self.c1 < 0 else "+"
            c2_pos_flag = "-" if self.c2 < 0 else "+"

        str = "{0} {1} {2}x {3} {4}x^2".format(
            c0_pos_val, c1_pos_flag, abs(self.c1), c2_pos_flag, abs(self.c2))
        if self.c3:
            c3_pos_flag = "-" if self.c3 < 0 else "+"
            str += " {0} {1}x^3".format(c3_pos_flag, self.c3)
        if self.c4:
            c4_pos_flag = "-" if self.c4 < 0 else "+"
            str += " {0} {1}x^4".format(c4_pos_flag, self.c4)

        return str

    def deg(self):
        pass

    def evaluate(self, x):
        pass


if __name__ == "__main__":
    print(eval(input()))

完整代码,请参见:https://www.miebug.net/ask/question/5.html