Programmation python - Python - Programmation
Marsh Posté le 13-10-2009 à 10:45:43
Bonjour, quelques remarques sur ton programme :
(0) il fonctionne bien mais...
(1) sur Hardware.fr utilise les balises de code comme je le fais un peu plus loin dans ce message.
(2) ajoute la ligne
Code :
|
au tout début de ton code, sinon tu auras un problème avec les accents de ton texte
(3) n'utilise pas
Code :
|
ça paraît plus simple mais en réalité c'est source d'erreurs, pour plus tard, quand ton code aura grossi.
(4) à la place de :
Code :
|
tu peux aussi écrire :
Code :
|
Bonne journée.
Marsh Posté le 13-10-2009 à 10:45:59
(erreur de ma part)
Marsh Posté le 13-10-2009 à 12:08:33
suizokukan a écrit : Bonjour, quelques remarques sur ton programme : |
Pas nécessairement, et ça dépend potentiellement de la plateforme: il fait des égalités strictes sur des flottants
Marsh Posté le 13-10-2009 à 15:51:38
Diable, Masklinn, je ne pensais pas que la comparaison directe de deux types float posait problème. Mais alors que faire ? passer par une bibliothèque plus spécialisée ?
Marsh Posté le 13-10-2009 à 16:07:18
suizokukan a écrit : Diable, Masklinn, je ne pensais pas que la comparaison directe de deux types float posait problème. |
Code :
|
Vas lire le goldberg immédiatement, chenapan
suizokukan a écrit : Mais alors que faire ? passer par une bibliothèque plus spécialisée ? |
Il faut utiliser un epsilon (en gros tu détermines une marge d'erreur, tu soustraits les deux nombres à comparer et si le résultat est inférieur à ta marge d'erreur tu considères qu'ils sont égaux).
Il y a d'autres stratégies, mais elles imposent des limitations (et potentiellement un impact au niveau des perfs) et ne sont pas nécessairement utilisables selon les cas: faire ses calculs avec des entiers (en ajoutant des puissances de 10 aux valeurs initiales, c'est comme ça que sont faits les calculs monétaires) ou en faisant du fixed-point arithmetics ou du decimal. En python, c'est le rôle du module decimal justement.
Marsh Posté le 12-10-2009 à 20:19:26
Bonjour,
j'aurais besoin d'aide pour une programmation en python, je viens de commencer donc je rame un peu
Voici l'énoncé :
a,b,c trois longueurs à saisir. Determinez si elle permettent de construire un triangle. Si oui, precisez le type de triangle.
Voilà ce que j'ai fait, ça me paraît un peu compliqué et en plus ça ne marche pas, j'ai beau chercher le problème je ne le trouve pas!
from math import *
a=raw_input(" dimension du côté BC: " )
b=raw_input(" dimension du côté AC: " )
c=raw_input(" dimension du côté AB: " )
a=float(a)
b=float(b)
c=float(c)
x1=asin(a/c)
x2=asin(b/c)
x3=atan(c/b)
x=x1+x2+x3
if x==pi:
if x1==(pi/2) or x2==(pi/2) or x3==(pi/2):
print " ABC est un triangle rectangle"
elif x1==x2 or x2==x3 or x1==x3:
print "ABC est un triangle isocèle"
elif x1==x2 and x2==x3 and x3==(pi/3):
print "ABC est un triangle équilatéral"
else:
print "ABC est un triangle quelconque"
else:
print "ABC n'est pas un triangle"