On Monday 09 April 2007 15:38, Heurtaux Vincent wrote:
> 1) Comment apprendre le python (livres préférés, sites) ?
Très bon, même si c'est pour apprendre à programmer (ça fait revoir tous
les concepts, en python, bien sûr) :
http://www.cifen.ulg.ac.be/inforef/swi/python.htm
Sinon, tu trouveras ton bonheur là :
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Python/BibPython
> 2) Quels éditeurs utiliser ( edit est pas mal, mais pas de débugger) ?
Un bon IDE libre : Eric.
> 3) Liste débutants en Python ?
mailto:sympa@aful.org?subject=subscribe%20python
> 4) Je souffre depuis plusieurs heures :
>
> un programme demande d'entrer un entier (pour faire une multiplication).
> Comment tester si la chaîne entrée est un entier, et boucler sur la
> demande de cet entier tant qu'elle n'est pas assouvie ?
>
> ------------Solution qui ne marche pas :--------
> #!/usr/bin/env python
> #coding=<utf8>
> # Demande un entier et vérifie la validité du type.
> # Envoie un message d'erreur tant que l'entrée n'est pas un entier.
> a=input( 'Entrez un nombre entier:' )
> while not isinstance(a,(int)):
> print 'condition while=', not isinstance(a,(int))
> print "Ceci n'est pas un nombre entier ! Recommencez :"
> a=raw_input( 'Entrez un nombre entier:' )
> else:
> a=int(a)
> print 'a=',a
> -------------------------------------------------------------
>
> Le problème vient de "input" à la place de raw_input, mais si :
> a=raw_input( 'Entrez un nombre entier:' ), a sera de type str même pour
> "5" ou "23"...
> Je ne trouve pas :-( Merci de m'éclairer de vos lumières :-))
Ben, il suffit de la convertir, ta chaîne ;o) Et puis, plutôt que de faire
des tests, tu tentes, et si ça merde, tu agis en conséquence (c'est la
philosophie python) :
while True:
rep = raw_input("Entrez un nombre entier : ")
try:
a = int(rep)
except ValueError:
print "'%s' n'est pas un entier" % rep
else:
break
print "a=%d" % a
Et soit le bienvenu dans le monde python (que du bonheur, tu verras ;o) ).
--
Frédéric
http://www.gbiloba.org