IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Importation de modules


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut Importation de modules
    Salut
    Je n'arrive pas importer un module comme le montre un tutoriel sur ce site. Voici une copie de mes fichiers. Le premier, test.py, celui qui importe, et l'autre, hanoi.py, celui qui est importé, ainsi que le message d'erreur.
    test.py:

    Salut
    J'essaie de programmer en python à l'aide d'un tutoriel fournit sur ce site.
    Il y a une partie où il faut importer un module mais je n'y arrive pas.
    Voici une copie de mes fichiers:
    test.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # -*- coding: iso8859-1 -*-
    class c1Tour :
        def __init__ (self, hauteur)  :
            self.hauteur_max = hauteur
            self.disques =[]
        def remplir(self)  :
            self.disques = range(1, self.hauteur_max+1)
            self.disques.reverse()
        def sommet(self) :
            if ( len(self.disques) > 0 ) :
                return self.disques[-1]
            else :
                return 0
        def disque(self, etage) :
            if ( etage <= len(self.disques) ) :
                return self.disques[etage-1]
            else :
                return 0
        def nbDisques(self) :
            return len(self.disques)
        def transferer(self, vers_tour) :
          if (len(self.disques) > 0 ) :
            if ( (self.sommet() < vers_tour.sommet()) or \
                 (vers_tour.nbDisques() == 0) ) :
                vers_tour.disques.append(self.sommet())
                del self.disques[-1]
            else :
                print "Impossible d'empiler un disque sur un plus petit."
          else :
              print "Tour vide, rien à transférer."
    import hanoi
     
    hanoi.py:
     
    t1 = hanoi.c1Tour(5)
    t1.remplir()
    print "t1 =", t1.disques
    t2 = hanoi.c1Tour(5)
    print "t2 =", t2.disques
    t2.transferer(t1)
    t1.transferer(t2)
    print "t1 +", t1.disques, "t2 =", t2.disques
    message d'erreur:

    Traceback (most recent call last):
    File "/Users/frank/Desktop/Les tours de Hanoï/test.py", line 31, in <module>
    import hanoi
    File "/Users/frank/Desktop/Les tours de Hanoï/hanoi.py", line 1, in <module>
    t1 = hanoi.c1Tour(5)
    NameError: name 'hanoi' is not defined

    Et lorsque j'exécute le programme, un mystérieux fichier apparaît dans le dossier où est contenu les fichiers de mon programme. Le fichier se nomme hanoi.pyc

    Je vous remercie d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Le fichier .pyc est simplement du bytecode généré par python pour accélérer la prochaine exécution (réécrit si la source est modifiée)

    Ton code n'est pas très clair, déjà il serait mieux de mettre les balises [code], et relis-le, les noms de fichiers me paraissent incohérents, tout comme l'import à la fin du fichier

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Pourquoi fait tu un "import hanoi" ?

    j'ai essayer ton programme et il fonctionne sans message d'erreur de la maniere suivante :

    Classe c1Tour (Tu devrais commencer le nom de tes classes par des majuscules. c'est un conseil) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    class c1Tour :
    	def __init__ (self, hauteur)  :
    		self.hauteur_max = hauteur
    		self.disques =[]
     
    	def remplir(self)  :
    		self.disques = range(1, self.hauteur_max+1)
    		self.disques.reverse()
     
    	def sommet(self) :
    		if ( len(self.disques) > 0 ) :
    			return self.disques[-1]
    		else :
    			return 0
     
    	def disque(self, etage) :
    		if ( etage <= len(self.disques) ) :
    			return self.disques[etage-1]
    		else :
    			return 0
     
    	def nbDisques(self) :
    		return len(self.disques)
     
    	def transferer(self, vers_tour) :
    		if (len(self.disques) > 0 ) :
    			if ( (self.sommet() < vers_tour.sommet())|(vers_tour.nbDisques() == 0) ) :
                			vers_tour.disques.append(self.sommet())
                			del self.disques[-1]
    			else :
    				print "Impossible d empiler un disque sur un plus petit."
    		else :
    			print "Tour vide rien a transferer."
    execution dans un terminal :

    >>>from c1Tour import *
    >>>t1 = c1Tour(5)
    >>>t1.remplir()
    >>> print "t1 =", t1.disques
    t1 = [5, 4, 3, 2, 1]
    >>>t2 = c1Tour(5)
    >>>print "t2 =", t2.disques
    t2 = []
    >>> t2.transferer(t1)
    Tour vide, rien à transférer.
    >>> t1.transferer(t2)
    >>> print "t1 +", t1.disques, "t2 =", t2.disques
    t1 + [5, 4, 3, 2] t2 = [1]

    est ce que c'est ce que tu veux ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut J'ai encore une question
    D'accord ça marche, merci beaucoup.
    Mais je ne comprends pas l'affaire des balises [code].
    Et il y aussi sur mon tutoriel, ils me font toujours une ligne de code au début du document du genre : #!/usr/bin/python
    Et il y a d'autres sortes aussi, j'aimerais savoir pourquoi il faut marquer cela et comment déterminer quelle ligne de code de ce genre il faut inscrire.
    Merci d'avance!

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut Encore moi
    C'est quoi cette affaire de candidat au titre de membre du club et membre du club confirmé?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Citation Envoyé par Franky Boy
    D'accord ça marche, merci beaucoup.
    Mais je ne comprends pas l'affaire des balises [code].
    Tu entoures ton code avec quand tu le postes, ça permet une meilleure lisibilité (et l'indentation est préservée)
    Citation Envoyé par Franky Boy
    Et il y aussi sur mon tutoriel, ils me font toujours une ligne de code au début du document du genre : #!/usr/bin/python
    Et il y a d'autres sortes aussi, j'aimerais savoir pourquoi il faut marquer cela et comment déterminer quelle ligne de code de ce genre il faut inscrire.
    Il s'agit du chemin de l'interpréteur python, sous windows ce n'est pas nécessaire
    Citation Envoyé par Franky Boy
    C'est quoi cette affaire de candidat au titre de membre du club et membre du club confirmé?
    Simplement des "grades" attribués d'après le nombre de messages

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut
    Ok merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA 2003] Import de module->Perte de références
    Par dacid dans le forum Général VBA
    Réponses: 6
    Dernier message: 25/02/2008, 11h38
  2. Importation de module
    Par tomix81 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/07/2007, 21h48
  3. [VBA-E]Importation de modules
    Par XineMA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2007, 11h16
  4. Importation de modules et espaces de noms
    Par bahamut00 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/06/2006, 10h20
  5. [VBA-A] importer un module
    Par yuriashford dans le forum VBA Access
    Réponses: 6
    Dernier message: 30/05/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo