用python写一个解一元二次方程的类

第一步 明确需要的变量

要解一元二次方程,肯定先把它化成一般式:ax^2+bx+c=0,我们需要用到的参数是a,b,c还有一个判别式”▲“ ,可以随意给个名字,我这里给的g。

第二步 创建一个类

类的名字一般首字母大写,然后以冒号结尾,代码如下:

class Equation:
    a = int(input('输入a值:'))
    b = int(input('输入b值:'))
    c = int(input('输入c值:'))
    g = 0

这里的a,b,c,g就是创建的类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

第三步 创建类的方法

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self(可以用其他的)。

第一个方法 计算出判别式的值

在方法里引用变量要用self.+变量名,然后根据python的语法打出计算公式,注意缩进,如下:

    def getDiscriminant(self):
        print('判别式等于')
        print(self.b * self.b - 4 * self.a * self.c)
        self.g = self.b * self.b - 4 * self.a * self.c

第二个方法 计算根的值

公式法直接写出来,注意缩进,:

    def getRoot1(self):
        if self.b * self.b - 4 * self.a * self.c >= 0:
            print('第一个实根为:')
            print((-self.b + self.g ** 0.5) / (2 * self.a))
        else:
            print("此方程无实根。")

如果没有实根就直接打印无根就行了。
第二个根也是一样的:

    def getRoot2(self):
        if self.b * self.b - 4 * self.a * self.c >= 0:
            print('第二个实根为:')
            print((-self.b - self.g ** 0.5) / (2 * self.a))
        else:
            return 0

如果无实根,第一个已经打印了,所以我们这里返回0。

最后一步 我们调用这个类

先实例化这个类,再依次访问类的方法,如下:

zxc = Equation()
zxc.getDiscriminant()
zxc.getRoot1()
zxc.getRoot2()

运行结果

用python写一个解一元二次方程的类_第1张图片

总结

创建类,在写出你在整个类要调用的类变量,创建类方法,方法里可创建只在本方法使用的变量,此外注意缩进。最后实例化,访问类属性。
ps:新手学python,第一次写博客,没有排版,没有什么技术含量,纯粹分享学习,希望大佬们指出我的不足之处。

你可能感兴趣的:(python,类)