Re: [HS] Python

Pàgina inicial

Reply to this message
Autor: Frédéric
Data:  
A: ML Guilde
Assumpte: Re: [HS] Python
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