Discuss / Python / 为什么在IDLE里可以正常运行,在这里运行就报错呢

为什么在IDLE里可以正常运行,在这里运行就报错呢

Topic source

import math

def quadratic (a,b,c):

    if (b**2-4*a*c) < 0:

        print('无解')

    else:

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

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

        return x1,x2

print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))

print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))

算了,交作业,也不知道答案对不对

import math

def quadratic (a,b,c):

    if (b**2-4*a*c) < 0:

        print('无解')

    else:

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

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

        return x1,x2

print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))

print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))

if quadratic(2, 3, 1) != (-0.5, -1.0):

    print('测试失败')

elif quadratic(1, 3, -4) != (1.0, -4.0):

    print('测试失败')

else:

    print('测试成功')

# 补上输出结果

quadratic(2, 3, 1) = (-2.0, -4.0)

quadratic(1, 3, -4) = (1.0, -4.0)

测试失败

我想问下,quadratic(2,3,1)和quadratic(1,3,-4)这几个数字,是怎么来的,这里没看明白,其余的都看明白了,求解,谢谢大神!

是老师的测试问题,复制过来的

想问下 if quadratic(2, 3, 1) != (-0.5, -1.0): 这里的叹号 **!**是什么作用呢?

哦哦哦我懂了!

2*a加括号。。


  • 1

Reply