美文网首页
python练习4:isinstance

python练习4:isinstance

作者: 梁老施 | 来源:发表于2018-04-09 17:29 被阅读0次

    定义一个函数num(a,b,c),接受3个参数,并返回
    一元二次方程: ax2 + bx + c = 0
    的所有解

    (一):首先,一元二次方程的公式为: A=bb-4ac,
    方程的解为 x1=((-b)+math.sqrt(A))/(2
    a)
    x2=((-b)-math.sqrt(A))/(2*a)
    ::计算平方根可以调用math.sqrt()函数
    (二):因为 Isinstance的用法是用来判断一个量是否是相应的类型,接受的参数一个是对象加一种类型。所以要判断 num(a,b,c)的类型

    def num(a,b,c):
        if not isinstance(a,(int,float)):
            return TypeError('参数a必须为实数')
        if not isinstance(b,(int,float)):
            return TypeError('参数b必须为实数')
        if not isinstance(c,(int,float)):
            return TypeError('参数c必须为实数')
    

    (三):
    当A>=0的情况下,方程有解:
    并返回 x1 ,x2
    当A<0的情况下,方程无解

        A = b * b - 4*a*c
        x1=((-b)+math.sqrt(A)/(2*a))
        x2=((-b)-math.sqrt(A)/(2*a))
        if A==0:
            return x1
        elif A>0:
            return x1,x2
        else:
            return ("该方程无解")
    

    (四)结合起来

    import math
    def num(a,b,c):
        if not isinstance(a,(int,float)):
            return TypeError('参数a必须为实数')
        if not isinstance(b,(int,float)):
            return TypeError('参数b必须为实数')
        if not isinstance(c,(int,float)):
            return TypeError('参数c必须为实数')
        A = b * b - 4*a*c
        x1=((-b)+math.sqrt(A)/(2*a))
        x2=((-b)-math.sqrt(A)/(2*a))
        if A==0:
            return x1
        elif A>0:
            return x1,x2
        else:
            return ("该方程无解")
    

    相关文章

      网友评论

          本文标题:python练习4:isinstance

          本文链接:https://www.haomeiwen.com/subject/vmubhftx.html