Discuss / 编程 / python问题求助

python问题求助

import mathdef quadratic(a,b,c):    global m,n    if (b**2-4*a*c)>0:        m=(-b+math.sqrt(b**2-4*a*c))/(2*a)        n=(-b-math.sqrt(b**2-4*a*c))/(2*a)    elif (b**2-4*a*c)==0:        m=-b/(2*a)        n=-b/(2*a)    else:        pass    return m,nprint(quadratic(10,21,14)

为什么我这个代码总是提示我 name 'm' is not defined,呜呜呜 哪位大神帮帮我!!!

@

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

问题出在 global m, n,因为段代码意味着在函数体外声明了 m, n 的变量,而你又没有声明,编译器自然是找不到的。 

解决方法把这句去掉,并处理 else 子句中情况。

import math
def quadratic(a,b,c): 
    if (b**2-4*a*c)>0:        
        m=(-b+math.sqrt(b**2-4*a*c))/(2*a)        
        n=(-b-math.sqrt(b**2-4*a*c))/(2*a)    
    elif (b**2-4*a*c)==0:        
        m=-b/(2*a)        
        n=-b/(2*a)    
    else:    
        return None
    return m,n
print(quadratic(10,21,14))

  • 1

Reply