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))
print('方程无解')
print('quadratic(a,b,c) =', quadratic(a, b, c))
if quadratic(a,b,c) != (-0.5, -1.0):
print('测试失败')
print('测试成功')
如果参数输入为str类型时,为啥会报错显示ValueError: invalid literal for int() with base 10: "'e'"
而不会显示TypeError('数据类型输错啦')里的这句话
Sign in to make a reply
不开心去喝水
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('数据类型输错啦')里的这句话