1、我们先要了解一元二次方差的求法,然后逐步编写程序。方程为:ax^2+bx+c=0。我们先编写一个最简单的版本,我们成功的计算除了数值。
2、如果我们把方程的系数进行变化,假设a=1,b=3,c=5。就会发现程序报错了,这就牵扯到了math包的局限性,如果是math包,则不能处理复述,本题的方程求解出的是复数,所以需要用到cmath。
3、我们同样输入a=1,b=3,c=5。这时候我们就没有报错得出了,我们想要的结果。但如果我们使用cmath时,输入一个有实数解的方程后,我们就会得到带有j的答案。
4、如果答案是实数的话,我们得到的是一个带有j的答案,我们想要没有j的答案就需要写一个循环,对是否有实数解做一个简单的判断。函数逻辑还是很清楚的,判断方程如果小于0,我们就使用cmath函数,其他时候使用math函数。
5、在写这个函数时,我们遇到一个问题,那就是如果我们再输入参数时,输入错误了,没有输入数字,我们的程序就会报错,如果我们想让程序继续运行,我们需要写一个判断函数,如果输入的不是数字,就需要继续输入。
6、最后一步,我们只需要把上述语句整合到一起,然后使用while语句就可以得到根据我们的需要不停地进行运算。