Discuss / Python / 交作业

交作业

Topic source

老帕小帕

#1 Created at ... [Delete] [Delete and Lock User]

有问题哈

    d = b*b - 4*a*c
    if not isinstance(a, (int, float)):
        raise TypeError('Bad Operand Type')
    elif not isinstance(b, (int, float)):
        raise TypeError('Bad Operand Type')
    elif not isinstance(c, (int, float)):
        raise TypeError('Bad Operand Type')
    elif a == 0:
        print('Not a Quadratic Equation')
    elif d < 0:
        print('Delta Smaller than 0, No Solution')
    else:
        x1 = (-b + math.sqrt(d))/(2*a)
        x2 = (-b - math.sqrt(d))/(2*a)
        return (x1,x2)

那些TypeError永远都起不了作用。

比如,

>>> quadratic(a,b,c)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

测试

>>> quadratic(2,3,1)
(-0.5, -1.0)
>>> quadratic(a,b,c)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> print(quadratic(2, 3, 1))
(-0.5, -1.0)
>>> print(quadratic(1,3,-4))
(1.0, -4.0)
>>> print(quadratic(0,2,1))
Not a Quadratic Equation
None
>>> print(quadratic(2,4,2))
(-1.0, -1.0)
>>> print(quadratic(2,4,1))
(-0.2928932188134524, -1.7071067811865475)
>>> print(quadratic(2,3,2))
Delta Smaller than 0, No Solution
None
>>> quadratic(2,3,2)
Delta Smaller than 0, No Solution

  • 1

Reply