algo Python second degré

Retrouver tous les sujets résolus.
Répondre
Cédric

algo Python second degré

Message par Cédric » jeu. 3 nov. 2022 11:35

Bonjour,
voici un algorithme avec Python pour obtenir les coordonnées du sommet d'une parabole connaissant le polynôme de degré 2 associé et pour savoir aussi s'il a un maximum ou un minimum.

from lycee import *
def sommet(a,b,c) :
xs=-b/(2*a)
ys=a*(xs)**2+b*(xs)+c
if a<0:
ext=max
else :
ext=min
return(xs,ys,ext)

Quand je tape dans la console Python sommet(4,8,6) par exemple ça m'affiche :
*** Console de processus distant Réinitialisée ***
...module lycee actif....
>>> sommet(4,8,6)
(-1.0, 2.0, <built-in function min>)
Pourquoi, cela n'affiche-t-il pas (-1,2,min) ?
merci !
C.
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: algo Python second degré

Message par sos-math(21) » jeu. 3 nov. 2022 11:49

Bonjour,
dans ton programme de fonction, tu utilises les mots min et max comme des variables, et dans ce cas très particulier, comme Python possède déjà des commandes min et max dans ses mots-clés, il te renvoie ce qu'il comprend comme fonction min, c'est-à-dire sa fonction native (built-in).
Il faut donc que tu définisses correctement ta variable ext en affectant des chaines de caractère :

Code : Tout sélectionner

from lycee import *
def sommet(a,b,c) :
      xs = -b / (2*a)
      ys = a * (xs)**2 + b * (xs) + c
      if a < 0:
         ext = "max" # on affecte à la variable la chaine de caractère "max"
      else :
         ext = "min" # on affecte à la variable la chaine de caractère "min"
      return (xs,ys,ext)


Normalement, cela devrait marcher.
Tu peux aussi raffiner ton message avec une chaine formatée :

Code : Tout sélectionner

def sommet_bis(a,b,c) :
      xs = -b / (2*a)
      ys = a * (xs)**2 + b * (xs) + c
      if a < 0:
         ext = "maximum"
         # on affecte à la variable la chaine de caractère "max"
      else :
         ext = "minimum" # on affecte à la variable la chaine de caractère "min"
      message = f"Le sommet de la parabole a pour ordonnée {ys} et cela correspond au {ext}."
      return xs,ys,message
et l'appel sommet_bis(2,4,8) donne :

Code : Tout sélectionner

In [11]: sommet_bis(4,8,6)
Out[11]: 
(-1.0,
 2.0,
 'Le sommet de la parabole a pour ordonnée 2.0 et cela correspond au minimum.')
Bonne continuation
Cédric

Re: algo Python second degré

Message par Cédric » jeu. 3 nov. 2022 14:48

Merci beaucoup !
Tout est clair.
C.
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: algo Python second degré

Message par sos-math(21) » jeu. 3 nov. 2022 14:52

Bonjour,
très bien.
Bonne continuation et à bientôt sur sos-math
Cédric

Re: algo Python second degré

Message par Cédric » jeu. 3 nov. 2022 16:19

Re-bonjour,
excusez-moi de revenir vers vous car il y a quelque chose qui m'a échappé !
Dans votre script raffiné, je lis :
message = f"Le sommet de la parabole a pour ordonnée {ys} et cela correspond au {ext}."
Quel est le rôle de la lettre f mise avant le texte ?
Merci !
C.
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: algo Python second degré

Message par sos-math(21) » jeu. 3 nov. 2022 16:23

Bonjour,
c'est ce qu'on appelle une chaine formatée en Python.
Les chaînes formatées permettent d'inclure la valeur d'expressions Python dans des chaines de caractères en les préfixant avec f ou F et écrire des expressions comme {expression} .
Cela signifie que tu peux inclure des valeurs de variables dans ta chaine en mettant ton nom de variable entre accolades.
C'est ce qui est fait dans la variable message :

Code : Tout sélectionner

message = f"Le sommet de la parabole a pour ordonnée {ys} et cela correspond au {ext}."
La chaine de caractère affichera la valeur courante contenue dans ys et celle dans ext.
Est-ce plus clair ?
Cédric

Re: algo Python second degré

Message par Cédric » ven. 4 nov. 2022 08:36

Bonjour,
oui, merci beaucoup de m'avoir appris cette notion de chaînes formatées !
C.
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: algo Python second degré

Message par sos-math(21) » ven. 4 nov. 2022 09:20

Bonjour,
Pas de problème, les chaînes formatées facilitent la communication en rendant possible la production de messages « complexes ».
Bonne continuation et à bientôt sur sos math
Répondre