2016-04-24 11 views
0
def quadratic_roots(a,b,c): 
     if not (type(a)==int or type(a)==float) and (type(b)==int or type(b)==float)\ 
    and (type(c)==int or type(c)==float): 
    print("Error. Must be numbers.") 
    return None 
equation=(b**2)-(4*a*c) 
realRoots=[] 
if equation<0: 
    return realRoots 
elif equation==0: 
    x1=-b/(2*a) 
    #realRoots.append(x) 
    return [x1] 
else: 
    x1=(-b+((equation)^(1/2))/(2*a) 
    x2=(-b-((equation)^(1/2))/(2*a) 
    return realRoots.append(x1,x2) 

Ich muss meine quadratischen Wurzeln in eine Liste setzen, aber ich bekomme immer Syntaxfehler. Wie kann ich meinen Code so bearbeiten, dass er ordnungsgemäß funktioniert?Platzieren Sie quadratische Wurzeln in die Liste

Antwort

1

append nimmt nur ein Argument aus und gibt None (documentation):

return realRoots.append(x1,x2) # cannot work 

# Instead, either `append` one by one: 
realRoots.append(x1) 
realRoots.append(x2) 
return realRoots 

# or use 'extend': 
realRoots.extend([x1, x2]) 
return realRoots 

# or the simplest 
return [x1, x2] 

BTW, die ‚power'-Operator in Python **, nicht ^:

> 2**3 
8 

> 2^3 
1 
0

Wie gesagt @schwobaseggl , müssen Sie den Power-Operator und die Append-Syntax ändern. auch feststellen, dass die Methode append keinen Wert zurückgibt (keine Standardeinstellung) so return realRoots.append(x1) fügt x1-realRoots aber kehrt None