Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Programmation
- » Programme python x²=r
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- Butanium
- 09-04-2021 12:56:12
C'est une synthaxe abrégée pour
print("x = {} ou x = {}".format(x, -x))
Je te laisse consulter la doc pour format pour plus d'informations : https://docs.python.org/fr/3/tutorial/inputoutput.html
- LEG
- 07-04-2021 10:11:59
Bonjour
ben : il me semble que la fonction des accolades {x} et {-x} sert à imprimer la valeur des tes x sinon cela n'imprime rien le f" prend en compte l'instruction de ta ligne.
pourquoi tu n'essayes pas de remplacer tes accolade par (x) et (-x) tu vas vite comprendre...et si tu enlèves ton f" tu auras surement un message d'erreur de python
- yoshi
- 07-04-2021 10:08:21
Bonjour,
1. On a utilisé une fonction et pourtant il n'y a pas de return à la fin.
Parce que ce n'est pas une fonction mais une procédure...
C'est une distinction subtile.
Pour transformer cette procédure en fonction au sens strict du terme, tu peux rajouter un return à la fin sans rien derrière.
Mais alors, ça retourne quoi si on ne lui donne rien à retourner ?
Bin... rien !
Regarde
def carre(x):
x=x^2
return
print(carre(3))
None
Et "None", c'est bien rien ! Alors pourquoi utiliser une fonction si c'est pour ne rien retourner ?
On utilise une procédure quand ce sous-programme n'a pas besoin de retourner quoi que ce soit, qu'il se suffit par lui-même.
2. Une chaîne de caractères formatée, ou chaîne f, est une chaîne de caractères qui est préfixé par "f" ou "F".
Ces chaînes peuvent contenir des champs de remplacement, qui sont des expressions délimitées par des accolades {}.
Alors que les autres chaînes de caractères ont toujours une valeur constante, les chaînes de caractères formatées
sont en fait des expressions évaluées au moment de l'exécution.
Disponible à partir de Python 3.6 : avec mon Python 3.5, ça ne fonctionne pas chez moi...
Ici, la chaîne de caractères en question est "x={x} ou x={-x}".
En Python 3.x (avec x<6) pour obtenir le même résultat je suis obligé de doubler les chaînes :
print ("x=",x,"ou x=",-x)
3. Pourtant ce script (j'ai récrit la fin pour Python <3.6) :
from math import sqrt
def fonction(r):
x=sqrt(r) # Là, est le souci
if r==0:
print("x=0")
elif r>0:
print("x=",x,"ou x=",-x)
else:
print("Il n'y a pas de solution.")
va planter dès le départ là où je l'ai signalé en commentaire...
Parce que dans ce script rien ne m'interdit d'appeler fonction(-4) :.
Pourtant le cas est prévu dans après le else: ?
Certes, mais il aura commencé par calculer x=sqrt(r) avec r=-4 et Python ne va pas aimer et il te le fait savoir :
>>> fonction(-4)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
fonction(-4)
File "<pyshell#3>", line 2, in fonction
x=sqrt(r)
ValueError: math domain error
Procédure corrigée :
from math import sqrt
def fonction(r):
if r==0:
print("x=0")
elif r>0:
x=sqrt(r)
print("x=",x,"ou x=",-x)
else:
print("Il n'y a pas de solution.")
@freddy
Je suis très très heureux de te revoir...
@+
- Mouss
- 07-04-2021 09:05:06
Merci pour votre reponse.
Cest ce qui me pose probleme, moi jaurai ecrit :
return (sqrt(r), - sqrt(r)) cest pour cela que je ne comprends linstruction f"x={x} ou x={-x}", que signifie le f et quelle est la fonction des accolades ?
Merci !
- freddy
- 07-04-2021 08:57:29
Salut,
l'instruction que tu ne comprends pas est simple : le carré d'un nombre négatif est positif, donc la racine carrée d'un nombre positif est soit positive, soit négative.
Exemple 4 qui est le carré de 2 ou de -2 . Vois tu mieux ?
Pour la seconde question, yoshi te dira s'il passe par là !
- Mouss
- 07-04-2021 07:01:22
Bonjour,
J'ai besoin de votre aide, dans ce programme :
from math import sqrt
def fonction(r):
x=sqrt(r)
if r==0:
print("x=0")
elif r>0:
print(f"x={x} ou x={-x}")
else:
print("Il n'y a pas se solution.")
je ne comprends pas cette instruction : f"x={x} ou x={-x}"
Autre question, on a utilisé une fonction et pourtant il n'y a pas de return à la fin.
Merci davance,