Discuss / Python / 大佬们帮我看看

大佬们帮我看看

Topic source

import math

print('请输入a:')

a=int(input())

print('请输入b:')

b=int(input())

print('请输入c:')

c=int(input())

t=b**2-4*a*c

def quadratic(a,b,c):

    if not isinstance(a,(int,float))&isinstance(b,(int,float))&isinstance(c,(int,float)):

        raise TypeError('数据类型输错啦')

    if t<0:

        return

    else:

        x1=(-b+math.sqrt(t))/(2*a)

        x2=(-b-math.sqrt(t))/(2*a)

        return x1,x2

panduan=int(bool(quadratic(a,b,c)))

if panduan==1:

   print('方程的两个解为:',quadratic(a,b,c))

else:

    print('方程无解')

print('quadratic(a,b,c) =', quadratic(a, b, c))

if quadratic(a,b,c) != (-0.5, -1.0):

    print('测试失败')

else:

    print('测试成功')

如果参数输入为str类型时,为啥会报错显示ValueError: invalid literal for int() with base 10: "'e'"

而不会显示TypeError('数据类型输错啦')里的这句话


  • 1

Reply