Python 解一元二次方程

来源:互联网 发布:淘宝卖家可以买东西券 编辑:程序博客网 时间:2024/04/29 05:57

练习

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

提示:计算平方根可以调用math.sqrt()函数。


# -*- coding: utf-8 -*-

# 可将quadratic(a,b,c)单独写为b.py,之后在a.py中通过from b import quadratic调用这个函数

import math


def quadratic(a,b,c):
    if not isinstance(a,(int)):
        raise TypeError('a is not a num')
    if not isinstance(b,(int)):
        raise TypeError('b is not a num')
    if not isinstance(c,(int)):
        raise TypeError('c is not a num')
    z=b*b-4*a*c
    if a==0:
        if b==0:
            if c==0:
                return '方程有全体实数解'
            else:
                return '方程无解'
        else:
            x1=-c/b
            x2=x1
            return x1,x2
    else:
        if z<0:
            return '方程无解'
        else:
            x1 = (-b + math.sqrt(z))/(2*a)
            x2 = (-b - math.sqrt(z))/(2*a)
            return x1,x2
a,b,c = (int(n) for n in input('输入3个数据(以空格分隔):').split())
print(quadratic(a,b,c))

原创粉丝点击