def roots4(a,b,c,d):
d = b * b - 4 * a * c
if a != 0 and d == 0:
roots4(a,b,c,d)
x = -b/ (2*a)
if a != 0 and d > 0:
roots4(a,b,c,d)
x1 = (-b + math.sqrt(d))/2.0/a
x2 = (-b - math.sqrt(d))/2.0/a
if a != 0 and d < 0:
roots4(a,b,c,d)
xre = (-b)/(2*a)
xim = (math.sqrt(d))/ (2*a)
print x1 = xre + ixim
strx1 = "x2 = %6.2f + i %6.2f" %(xre, xim)
print strx1
Cela fait partie de mon code pour un projet. Ce que j'essaie de faire est de définir roots4(a,b,c,d)
. Par exemple, dans le cas où a != 0 and d == 0
puis roots4(a,b,c,d)
doit alors aller à trouver x
en résolvant l'équation x = -b/ (2*a)
. Et ainsi de suite ... Je ne sais pas ce que je fais mal. Des conseils?Définition d'une fonction à l'aide de l'instruction if
Pourquoi les appels récursifs? Quel est l'effet désiré, imprimer les solutions ou les retourner? – LutzL
Vous ne devriez pas avoir à passer d comme paramètre – zezollo
Que faites-vous si 'a == 0'? Que voulez-vous dire en résolvant l'équation "x = -b/(2 * a)" (y a-t-il encore vraiment une équation à résoudre?) – zezollo