algo Python second degré
algo Python second degré
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.
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.
-
- Messages : 10388
- Enregistré le : lun. 30 août 2010 11:15
Re: algo Python second degré
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 :
Normalement, cela devrait marcher.
Tu peux aussi raffiner ton message avec une chaine formatée :
et l'appel sommet_bis(2,4,8) donne :
Bonne continuation
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)
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
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.')
Re: algo Python second degré
Merci beaucoup !
Tout est clair.
C.
Tout est clair.
C.
-
- Messages : 10388
- Enregistré le : lun. 30 août 2010 11:15
Re: algo Python second degré
Bonjour,
très bien.
Bonne continuation et à bientôt sur sos-math
très bien.
Bonne continuation et à bientôt sur sos-math
Re: algo Python second degré
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.
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.
-
- Messages : 10388
- Enregistré le : lun. 30 août 2010 11:15
Re: algo Python second degré
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 :
La chaine de caractère affichera la valeur courante contenue dans ys et celle dans ext.
Est-ce plus clair ?
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}."
Est-ce plus clair ?
Re: algo Python second degré
Bonjour,
oui, merci beaucoup de m'avoir appris cette notion de chaînes formatées !
C.
oui, merci beaucoup de m'avoir appris cette notion de chaînes formatées !
C.
-
- Messages : 10388
- Enregistré le : lun. 30 août 2010 11:15
Re: algo Python second degré
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
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