Echanges autour d'EduPython.
Vous n'êtes pas identifié(e).
Bonjour,
Quand j'écris:
print("f(x)=",a,"x²",b,"x",c)
il n'y a aucun problème si b et c sont négatifs.
Mais s'ils sont positifs, il y a problème car le signe + n'apparait pas.
Comment faire pour que le + apparaisse devant un nombre positif?
Je vous remercie par avance pour votre aide,
Didier
Hors ligne
Bonjour,
Je pense qu'un if fera l'affaire, ça peut être l'occasion de travailler cela avec les élèves. On peut aussi utiliser la fonction affichepoly (voir p54 de la documentation), mais il faut utiliser le module lycee dans ce cas.
Vincent M
Hors ligne
Je ne savais pas que l'on pouvait mettre un if à l'intérieur d'un print.
Je vais essayer de voir cela.
Merci pour votre réponse.
Didier
Hors ligne
Non, sur plusieurs lignes :
print("f(x)=",a,"x²",end="") # Pour ne pas aller à la ligne if b>0 : print("+",end="") print(b,'x',end="") if c>0 : print("+",end="") print(c)
Hors ligne
Cela est très instructif.
Encore merci!
Didier
Hors ligne
En fait, on peut faire cela en une ligne avec la méthode format, mais je ne pense pas que cela soit très pertinent si c'est pour faire devant des élèves :
print("{}x²{:+}x{:+}".format(1,-2,3))
VM
Hors ligne
Bonjour,
Oui, en effet, c'est un peu compliqué et moins formateur.
Ce forum est vraiment très bien.
J'essaie toujours de trouver la solution avant sur Internet mais parfois, c'est difficile.
Merci.
Didier
Hors ligne
salut,
avec
print("f(x)=",a,"x²",b,"x",c)
tu risques d'avoir un souci de formatage si a est integer et non une string
il aurait fallut
print("f(x)=" + str(a) +"x²" + str(b) +"x" + str(c))
il ne convertie pas à priori (mais pas besoin de les déclarer!)
sinon il doit y avoir une solution avec le formatage d'un nombre format():
x = 1234.56789
format(x, '0.2f')
>>> '1234.57'
à creuser pour le plaisir ;-)
Hors ligne