question
question
Bonsoir
Pourquoi ce script
def pointsurdroite(x,y):
if 5*x-6*y+10=0:
print("lepointestsurladroite")
else :
print ("lepointn'estpassurladroite")
ne marche pas ?
Merci
Pourquoi ce script
def pointsurdroite(x,y):
if 5*x-6*y+10=0:
print("lepointestsurladroite")
else :
print ("lepointn'estpassurladroite")
ne marche pas ?
Merci
-
- Messages : 10282
- Enregistré le : lun. 30 août 2010 11:15
Re: question
Bonjour,
en Python, le symbole pour le test d'égalité est le double égal "==", le symbole "=" étant réservé pour l'affectation.
Donc tu devrais avoir :
Attention tout de même car tu utilises un test entre nombres flottants (les décimaux de Python), et il se peut que tu obtiennes des erreurs alors que tes points appartiennent bien à la droite.
Par exemple le point (-1,88;0,1) appartient bien à la droite car \(-1,88\times 5-6\times 0,1+10=-9,4-0,6+10=0\).
Mais en Python, l'appel renvoie une non-appartenance :
C'est lié au fait que les nombre décimaux sont représentés par des valeurs approchés en machine :
Tu pourras en parler avec ton professeur.
Bonne continuation
en Python, le symbole pour le test d'égalité est le double égal "==", le symbole "=" étant réservé pour l'affectation.
Donc tu devrais avoir :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Par exemple le point (-1,88;0,1) appartient bien à la droite car \(-1,88\times 5-6\times 0,1+10=-9,4-0,6+10=0\).
Mais en Python, l'appel renvoie une non-appartenance :
Code : Tout sélectionner
>>>pointsurdroite(-1.88,0.1)
le point n'est pas sur la droite
Code : Tout sélectionner
>>> 6*0.1
0.6000000000000001
Bonne continuation
Re: question
Merci beaucoup !
en premier je dois tester si le point de coordonnés (10,10) appartient à la droite mais ca ne marche pas quand je fais...
def pointsurdroite(10,10):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Pourquoi donc ?
Merci
en premier je dois tester si le point de coordonnés (10,10) appartient à la droite mais ca ne marche pas quand je fais...
def pointsurdroite(10,10):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Pourquoi donc ?
Merci
-
- Messages : 10282
- Enregistré le : lun. 30 août 2010 11:15
Re: question
Bonjour,
il faut que tu distingues les deux zones de ton environnement :
la zone de script ou tu écris la définition de ta fonction avec le mot clé def :
et la console où tu vas appeler ta fonction :
Il ne faut donc pas modifier la définition de ta fonction (on ne touche pas au script qui la définit), mais il faut l'appeler.
Bonne continuation
il faut que tu distingues les deux zones de ton environnement :
la zone de script ou tu écris la définition de ta fonction avec le mot clé def :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Code : Tout sélectionner
>>> pointsurdroite(10,0)
le point n'est pas sur la droite
Re: question
Merci, j'ai bien compris tout ca.
Mais du coup ou est ce que je rentre les coordonés ? là j'essaie sur trinket, et est ce que c'est pareil sur la calculette Numwork ?
Merci !!
Mais du coup ou est ce que je rentre les coordonés ? là j'essaie sur trinket, et est ce que c'est pareil sur la calculette Numwork ?
Merci !!
-
- Messages : 10282
- Enregistré le : lun. 30 août 2010 11:15
Re: question
Bonjour,
tu écris :
dans la zone à droite sur Trinket
Si cela n'est pas possible, tu demandes un affichage dans la zone de script :
tu écris :
Code : Tout sélectionner
pointsurladroite(10,0)
Si cela n'est pas possible, tu demandes un affichage dans la zone de script :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
print(pointsurdroite(10,0)) # affichage pour avoir le résultat de l'appel de la fonction
Re: question
merci j'ai réussi pour le 1er point dans la zone de script
par contre pour le deuxieme de coordonés (-53;-42.5)
ca ne marche pas... il faut faire une conversion ? Merci
par contre pour le deuxieme de coordonés (-53;-42.5)
ca ne marche pas... il faut faire une conversion ? Merci
-
- Messages : 10282
- Enregistré le : lun. 30 août 2010 11:15
Re: question
Bonjour,
non pas la peine de faire une conversion mais il faut mettre des points pour les séparateurs décimaux et une virgule pour séparer \(x\) et \(y\) :
Bon calcul
non pas la peine de faire une conversion mais il faut mettre des points pour les séparateurs décimaux et une virgule pour séparer \(x\) et \(y\) :
Code : Tout sélectionner
>>> pointsurdroite(-53,-42.5)
le point est sur la droite