ZKX's LAB

python编程解方程第二弹:10行代码解二次方程(纯字符)

2020-11-26新闻3

用纯字符串格式来记录二次方程:

'3x^2-10x-8=0'

'x^2-2x+1=0'

'3x^2+14x+8=0'

'x^2=9'

二次方怎么表示呢?比如上面的^表示法,或者是python风格的**表示法,甚至是更简单的直接用x2表示x的二次方,都是可以的。对于我们求解来说,无论用哪种方法都没问题,在代码只需非常小的改动(后面将指出)。

所谓编程,就用抽象的方法来解决问题:上面这些二次方程,我们抽象为这样的格式:

ax^2+bx+c=d

注意,我们无须限定等号右边为0

如果你看了前面的《用python编程7行代码解数学方程(ax+b=c的形式)》就知道我们思路仍然是先取参数,然后用数学的方法来求解。

这里,我们会看到利用python函数返回多值的贴心功能来直接返回二次方程的两个解。

这就是完整的解方程代码:

如果你不是x^2来表示x的二次方,只需在第三行对应位置修改即可。

在代码的4,5,6,7行,都用了Python的三目表达式功能让代码更加简短清晰。特别注意第4行的三目表达式怎样同时给两个参数赋值。

下面来看测试代码:

在上篇文章的中代码,我们对于参数缺项没有充分考虑,在本篇的取参数的代码中,做了更多的判断,所以能够支持更多的特殊情况。但仍然存在一个没有考虑到的地方,你能指出来么?

#技术编程

随机阅读

qrcode
访问手机版