Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2020-01-14 14:47:40

Didier588
Membre
Inscription : 2019-11-17
Messages : 7

Comment afficher un nombre avec son signe devant?

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

#2 2020-01-14 15:50:01

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 317

Re : Comment afficher un nombre avec son signe devant?

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

#3 2020-01-14 16:18:51

Didier588
Membre
Inscription : 2019-11-17
Messages : 7

Re : Comment afficher un nombre avec son signe devant?

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

#4 2020-01-14 16:22:04

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 317

Re : Comment afficher un nombre avec son signe devant?

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

#5 2020-01-14 16:28:59

Didier588
Membre
Inscription : 2019-11-17
Messages : 7

Re : Comment afficher un nombre avec son signe devant?

Cela est très instructif.
Encore merci!

Didier

Hors ligne

#6 2020-01-14 17:03:29

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 317

Re : Comment afficher un nombre avec son signe devant?

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

#7 2020-01-15 11:49:09

Didier588
Membre
Inscription : 2019-11-17
Messages : 7

Re : Comment afficher un nombre avec son signe devant?

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

#8 2020-01-31 12:55:59

nico
Membre
Inscription : 2020-01-09
Messages : 22

Re : Comment afficher un nombre avec son signe devant?

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

Pied de page des forums