Discussion: faire une boucle
Afficher un message
Vieux 09/08/2007, 14h05   #34
Pierre Maurette
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: faire une boucle

fred1599@gmail.com, le 08/08/2007 a écrit :

[...]

> Bon je te passe un code exemple que je me suis amusé a faire pour
> faire cette boucle
>
> # _*_ coding:Utf-8 _*_
>
> print 'voila un petit programme afin de calculer un pourcentage'
>
> # Les chiffres dont on a besoin
>
> a = float(raw_input('Donner la valeur de votre article :'))
> b = float(raw_input('Donner la valeur de votre pourcentage :'))
>
> if a > 0 and b > 0 :
> c=((a*b)/100)
> d= (a-c)
> print 'vous avez demandé sur votre article d\'une valeur de' , a ,
> 'euros, un pourcentage de' , b , '%, ce qui donne une valeur finale
> pour votre article de :' , d
> elif a < 0 and b > 0 :
> print 'vous ne pouvez pas avoir une valeur négative!!! Recommencez le
> programme'
> elif a > 0 and b < 0 :
> print 'votre pourcentage ne peut pas être négatif!!! Recommencez le
> programme'
> elif a < 0 and b < 0 :
> print 'soyons logique, recommencez le programme'


Vous pourriez vous contenter d'un seul if ... else et d'une liste de
trois chaînes. Notez que (a <= 0) + (2 * (b <= 0)) prend les valeurs 0,
1, 2 et 3. Généralisable à N conditions.
Si vous n'aimez pas les if, et sans goto:

def agir(valArticle, pourCent):
ristourne = (valArticle*pourCent) / 100
valeurFinale = (valArticle - ristourne)
print 'vous avez demandé sur votre article d\'une valeur de' ,
valArticle , 'euros, un pourcentage de' , pourCent , '%, ce qui donne
une valeur finale pour votre article de :' , valeurFinale

def afficher(valArticle, pourCent):
print [
'vous ne pouvez pas avoir une valeur négative!!!
Recommencez le programme'
, 'votre pourcentage ne peut pas être négatif!!! Recommencez
le programme'
, 'soyons logique, recommencez le programme'
][(valArticle <= 0) + (2 * (pourCent <= 0)) - 1]


print 'voila un petit programme afin de calculer un pourcentage'

valArticle = float(raw_input('Donner la valeur de votre article :'))
pourCent = float(raw_input('Donner la valeur de votre pourcentage
:'))

[afficher, agir][valArticle > 0 and pourCent > 0](valArticle, pourCent)


J'utilise plutôt des dictionnaires d'actions. Pour si peu de cas, c'est
sans intérêt, mais ça devient vite pratique, surtout si on utilise les
mêmes listes depuis la ligne de commande avec OptionParser jusqu'aux
menus TKInter générés automatiquement.

--
Pierre Maurette


  Réponse avec citation
 
Page generated in 0,05332 seconds with 9 queries