用python求一元二次方程的解

廖雪峰老师网站上的练习题

题目:定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:
ax2 + bx + c = 0 的两个解。

import math
def quadratic(a,b,c):
    if not (isinstance(a,(int,float)) and isinstance(b,(int,float)) and isinstance(c,(int,float))):
        raise TypeError('a,b,c只能为数字')
    if a==0:
        return '请输入不等于0的a值'
    else:
        d=b*b-4*a*c
        if d<0:
            return '无实根'
        elif d==0:
            x=-b/(2*a)
            return x
        else:
            x1=(-b+math.sqrt(d))/(2*a)
            x2=(-b-math.sqrt(d))/(2*a)
            return x1,x2
#测试
print(quadratic(1,2,1))
print(quadratic(1,1,1))
print(quadratic(1,3,1))

总结

1、最开始写的时候把返回值用的是print()函数,比如print(x),然后非常郁闷地发现虽然可以计算出正确值,但是每个值最后都会带个’none’,暂时没想通,希望好心人告知,谢谢!
2、看别人写的计算方法神奇地发现只有一个根时的另一种解法(将a用bc代替),虽然只是普通的代数运算,但我刚刚才发现,明明从初中就开始学习一元二次方程了。。。
3、这个人的写得更详细,点赞
https://blog.csdn.net/zmy_3/article/details/51164347

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页