Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    1 mars 2018 à 9:43:27

    C'est juste que tu casses la boucle dès la 1ère itération, quelque soit le résultat (ligne 25 et 29).

    Le else ne doit pas se trouver au niveau du if mais au niveau du for ;):

    for agence_attributes in json.load(open("quotes.json")):
        #...
        
        if code_postal == agence_1.fields["postal_code"]:
            print("Votre agence est située à:", agence_1.fields['name'])
            break
         
    else:
        print("Désolé, il n'existe pas d'agence sur cette commune")
        #plus besoin de break
    • Partager sur Facebook
    • Partager sur Twitter
    Précepte: Le mieux est l'ennemi du bien
      6 mars 2018 à 9:01:51

      Bonjour.

      Je suis le cours "Démarrez votre projet avec Python".

      Il est dit dans le cours que l'indentation était extrêmement importante et source d'erreurs.

      Dans la vidéo, on nous demande de laisser deux espaces après une condition, et donc juste avant d'écrire l'action à effectuer.

      Mais dans le cours écrit juste en dessous de la vidéo, qui reprend la vidéo,  on nous dit de laisser 4 espaces . o_O

      Quelle est alors la bonne réponse, et la bonne manière de faire?

      D'avance je vous remercie.

      • Partager sur Facebook
      • Partager sur Twitter

      Bénédicte

        6 mars 2018 à 9:04:25

        De laisser 4 espaces. C'est juste une convention, mais une convention très forte ;)
        • Partager sur Facebook
        • Partager sur Twitter
        Précepte: Le mieux est l'ennemi du bien
          6 mars 2018 à 9:09:22

          Ce cours n'est pas à une contradiction près.

          Ce qui fait foi, c'est la PEP8, et elle dit 4 espaces.

          (en résumé et en français : http://sametmax.com/le-pep8-en-resume/ )

          • Partager sur Facebook
          • Partager sur Twitter
            6 mars 2018 à 9:13:13

            Merci beaucoup pour vos réponses ! 4 espaces, je note !Merci.
            • Partager sur Facebook
            • Partager sur Twitter

            Bénédicte

              7 mars 2018 à 10:05:05

              Bonjour,

              Je commence mal le chapitre Les structures conditionnelles, avec le premier exemple simple.

              En principe le prompt évolue comme ceci :

              >>> # Premier exemple de condition
              
              >>>
              Mais chez moi il affiche :
              >>> # Premier exemple de condition
              
              . . .

              Je ne parviens pas à comprendre pourquoi, et je ne peux pas avancer sans trouver l'explication.

              Merci de m'éclairer svp

              • Partager sur Facebook
              • Partager sur Twitter
                7 mars 2018 à 10:10:00

                Bonjour,

                L'affichage que tu obtiens est normal, c'est celui du cours que tu lis qui est faux.

                -
                Edité par entwanne 7 mars 2018 à 10:11:22

                • Partager sur Facebook
                • Partager sur Twitter
                  7 mars 2018 à 16:10:10

                  Ah ! Merci de cet éclairage j'étais près de manger mon béret.

                  Je continue donc.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 mars 2018 à 23:24:04

                    Bonjour tout le monde, j'espère que vous allez bien. ;)

                    Je me permet d'écrire ici pour demander un conseil au sujet du TP Labyrinthe en ligne. J'ai passé la journée dessus sans réussir à tout faire fonctionner à ma convenance. :/

                    Déjà, je souhaitais avoir une précision car je ne comprend pas bien. Quand il est dit : On ne doit plus jouer au jeu en console. À la place, le jeu doit être une application serveur. Application veut dire exécutable ? Ou bien que le jeu doit avoir une interface graphique ? Je suis confus sur ce point.

                    Mais ce n'est pas pour ça que je viens. C'est en particulier au sujet d'une difficulté que j'ai : quand je crée mon serveur, et que mes clients se connectent dessus, seul le premier qui se connecte reçoit mon message "Celui qui souhaite commencer appui sur C". Et d'ailleurs, seul le premier a une influence la dessus.

                    Voilà la partie du code où il semble il y a avoir un soucis. J'espère que ce n'est pas trop moche. :x

                    hote = ''
                    port = 12800
                    
                    connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                    connexion_principale.bind((hote, port))
                    connexion_principale.listen(5)
                    
                    un_joueur_victorieux = False
                    labyrinthe_choisir = None
                    
                    serveur_lance = True
                    clients_connectes = []
                    
                    
                    
                    while serveur_lance:
                    
                        connexions_demandees, wlist, xlist = select.select([connexion_principale],
                            [], [], 0.05)
                        
                        for connexion in connexions_demandees:
                            connexion_avec_client, infos_connexion = connexion.accept()
                            clients_connectes.append(connexion_avec_client)
                    
                            try:
                                clients_a_lire, wlist, xlist = select.select(clients_connectes,
                                        [], [], 0.05)
                            except select.error:
                                pass
                    
                            if labyrinthe_choisir == None:
                                for client in clients_connectes:
                                    client.send(b"Celui qui souhaite commencer appui sur C")
                    
                                message_joueur_commence_niveau = client.recv(1024)
                                message_joueur_commence_niveau = message_joueur_commence_niveau.decode()
                    
                                if message_joueur_commence_niveau.lower() == "c":
                                    labyrinthe_choisir = JoueurChoisiCarte(client)
                            else:
                                while un_joueur_victorieux != True:
                    
                                    for client in clients_connectes:
                                        labyrinthe_choisir.LancerPartieJoueur(client)               
                                        un_joueur_victorieux = labyrinthe_choisir.VerifierVictoireRobotPosition(client)
                    
                                        if un_joueur_victorieux == True:
                                            for client in clients_connectes:
                                                client.close()
                                            connexion_principale.close()

                    J'aimerai faire en sorte que le message s'affiche en même temps chez les deux joueurs et que c'est le premier qui appuie sur C qui choisisse le niveau (comme prévu finalement).

                    J'ai relu les dernier cours et je me suis dit que, peut être, il faut utiliser le threading ? Mais je ne vois vraiment pas en quoi faire. Je suis assez perdu.

                    Merci d'avance pour votre aide,
                    Bonne journée / soirée ;)

                    -
                    Edité par Haorou 9 mars 2018 à 23:24:31

                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 mars 2018 à 21:21:21

                      Bonsoir Julien,

                      pour ma part, je suis en plein dedans (vive le laby :pirate:), ce que j'ai compris de l'exercice :

                      • On ne doit plus jouer au jeu en console. À la place, le jeu doit être une application serveur. Il faut également créer les applications clients pour jouer à plusieurs au labyrinthe. Chaque joueur aura son propre robot. Au lieu de le placer à un endroit précis sur la carte, il apparaîtra aléatoirement ;

                      1- développer un programme serveur qui gérera les labyrinthes

                      2- développer un programme client pour les joueurs

                      Pour ton code ......

                      Je viens d'essayer, et il y a un blocage effectivement .... voir plusieurs ... ;)

                      Alors je vais te donner des pistes de réflexions, voici un extrait de ton programme:

                              if labyrinthe_choisir == None:
                                  for client in clients_connectes:
                                      client.send(b"Celui qui souhaite commencer appui sur C")
                       
                                  message_joueur_commence_niveau = client.recv(1024)
                                  message_joueur_commence_niveau = message_joueur_commence_niveau.decode()
                      

                      cette partie de programme est lancée dès qu'une connexion est établie => Dès que le premier client reçoit le message, on sort de la boucle, mais on demande un message de sa part :waw:.

                      message_joueur_commence_niveau = client.recv(1024)

                      Là c'est bloquant si le client ne réponds pas.

                      Si il réponds (il est sympa :lol:) il débloque la commande et le message sera envoyé au second client connecté et ...... on attends à nouveau une réponse mais de qui ???

                      Réponse : de celui-ci (Pas super top ...)

                      Et si il envoi quelque chose, on envoi le message au fur et à mesure aux clients connectés

                      Pour résumer, ça ressemble à çà:

                      envoi client 1-> attente de réponse du client 1 -> envoi client 2-> attente de réponse du client 2 -> envoi client 3 -> etc...

                      les thread pourront te permettre de faire fonctionner de manière 'autonome' les demandes de connexions, les envois et les réceptions de messages.

                      Voilà espérant t'avoir un peu aidé (perso, j'ai galéré deux trois jours sur cette question, ça et les erreurs [10054] de windows lors de la déconnexion du client qui me faisait planté le serveur et c'est pas fini >_< mais on va réussir)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 mars 2018 à 21:39:52

                        Bonsoir Cyrille :)

                        Ouiiiii ! C'est bien ça le soucis, j'en ai bouffé toute la journée du code et c'est clair que le soucis vient de là x)

                        Je souffre à créer une manière efficace de gérer. Le système de thread me fait mal au crâne. Faut vraiment que j'apprenne et adapte ça à mon code qui est un peu boiteux. Par curiosité, sur quoi est ce tu bloques ?

                        J'espère réussir avant lundi en tout cas. Je croise les doigts.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 mars 2018 à 21:52:47

                          Yo, avant lundi c'est chaud ;), ca fait quelques jours que je suis dessus,

                          mais je me dis tous les jours que je me coucherais un peu plus fort que la veille.

                          Pour les threads, j'ai résolu mon problème en créant une class Client(threading.Thread) par connexions de nouveau joueur.
                          En effet, l'identité "client" pourra se retrouver dans le self et j'en surveille les messages et gère les envois

                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 mars 2018 à 15:17:26

                            J'approche de la fin je pense. J'édite tout mon message pour montrer où le code en est :

                            # -*-coding:Utf-8 -*
                            
                            import os
                            from labyrinthe import Labyrinthe, Joueur
                            import sys, threading
                            import socket
                            import select
                            
                            liste_de_labyrinthes =  []
                            
                            labyrinthe_choisi = None
                            un_joueur_victorieux = False
                            
                            liste_client = []
                            
                            clients_connectes = []
                            lancer_jeu = False
                            client_nom_connexion = {}
                            
                            def ImporterCartes(liste_de_labyrinthesVar):
                            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                            def ServeurChoisiCarte(): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                            ImporterCartes(liste_de_labyrinthes) labyrinthe_choisi = ServeurChoisiCarte() class ThreadClient(threading.Thread): '''dérivation de classe pour gérer la connexion avec un client''' def __init__(self,conn): threading.Thread.__init__(self) self.connexion = conn self.nom = "" # Mémoriser la connexion dans le dictionnaire liste_client.append(self.connexion) print("Connexion du client", self.connexion.getpeername(),self.connexion) def run(self): self.nom = self.getName() while True: message = self.connexion.recv(1024) message = message.decode() if message.lower() == "c" and labyrinthe_choisi.lancer_partie == False: labyrinthe_choisi.LancerPartieJoueur(self.connexion, client_nom_connexion) else: if labyrinthe_choisi.lancer_partie == True: labyrinthe_choisi.LancerPartieJoueur(self.connexion, client_nom_connexion) self.connexion.close() del client_nom_connexion[nom] # Initialisation du serveur HOST = '' PORT = 12800 connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: connexion_principale.bind((HOST, PORT)) except socket.error: print("La liaison du socket à l'adresse choisie a échoué.") sys.exit() print("Serveur prêt (port",PORT,") en attente de clients...") connexion_principale.listen(5) while True: # Attente connexion nouveau client try: connexion, adresse = connexion_principale.accept() except: sys.exit() # Créer un nouvel objet thread pour gérer la connexion th = ThreadClient(connexion) # The entire Python program exits when no alive non-daemon threads are left th.setDaemon(1) th.start() # Création d'un dictionnaire pour connaître quel nom va avec quelle connexion th_nom = th.getName() client_nom_connexion[th_nom] = connexion labyrinthe_choisi.CreerRobotPositionHasard(connexion) message = "Vous êtes connecté au serveur.\nAttente des autres clients...\nSi vous souhaitez commencer, appuyer sur C" connexion.send(message.encode())



                            L'affichage de la map n'est pas encore parfait, mais on s'approche de quelque de satisfaisant. :3
                            J'espère que ça va aider certain, bon courage :)

                            EDIT : Tout fonctionne !
                            Pour ceux qui se demande où je bloquais : je n'avais pas pris en considération que je demandais plusieurs fois au joueur de taper une commande d'affiler / et également, j'ai fais en sorte qu'à l'aide de booleen, chaque joueur soit appeler individuellement à taper une action. Si il y a des question n'hésitez pas. ;)

                            -
                            Edité par Haorou 11 mars 2018 à 23:29:24

                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 mars 2018 à 19:35:34

                              Bonjour à tous!!! 

                              Je suis en train de réaliser le 4ème chapitre du cours de Phyton "Les structures conditionnelles" et mon programme ne fonctionne pas et je ne comprends pas la raison. Merci de bien vouloir m'aider ^^

                              # -*-coding:Latin-1 -*
                              import os
                              annee=input("Saisissez votre annee: ")
                              annee=int(annee)
                              if annee%4==0:
                                 if annee%100==0:
                                    if annee%400==0: 
                              	     print("Annee bissextile")
                              	  else:
                              	     print("Annee normale")
                                 else:
                                   print("Annee normale")
                              else: 
                                 print("Annee normale")
                              os.system("pause")

                              Merci d'avance à vous tous.

                              Star of Games 

                              -
                              Edité par StarofGames 15 mars 2018 à 19:40:50

                              • Partager sur Facebook
                              • Partager sur Twitter
                                16 mars 2018 à 10:23:48

                                Bonjour,

                                Il faut tester du plus grand vers le plus petit.

                                Sinon 100 et 400 ne seront jamais vrais.

                                4 X 25 => le 4 gagne

                                4 X 100 => le 4 gagne encore

                                alors qu'il ne devrait pas

                                Cdt

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  16 mars 2018 à 16:03:43

                                  Juste au cas où, j'ai recopié ton code, visual studio me signal qu'il semblerait qu'il y a un problème d'indentation au niveau du premier else : généralement 4 espace ou une tabulation pour indenter.

                                  Je me posais des questions au sujets des tests unitaires pour les TP. Il faut écrire les test au sein des scripts concernés ou bien concevoir un script test exprès ? Désolé si ça semble vraiment idiot comme question. :S
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    16 mars 2018 à 17:10:54

                                    Bonjour Mesdames, Messieurs.
                                    Je suis tout nouveau dans le monde du python, aussi j'en appelle à votre indulgence… ;-)
                                    Sur le TP du « dictionnaire ordonné », dans le but de l'inverser, j'avais écrit la fonction suivante :
                                    	def reverse(self):
                                    		""" Inverse le dictionnaire """
                                    		temp_list_clefs = self._clefs
                                    		temp_list_valeurs = self._valeurs
                                    		temp_list_clefs.reverse()
                                    		temp_list_valeurs.reverse()
                                    		self._clefs = temp_list_clefs
                                    		self._valeurs = temp_list_valeurs
                                    
                                    Je souhaiterais savoir pourquoi ce n'est pas une bonne idée ?
                                    … J'aime bien comprendre…
                                    Merci d'avance.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      16 mars 2018 à 17:22:45

                                      Le problème dans ce code est l'incompréhension au niveau des variables. temp_list_clefs n'est pas une copie de self._clefs, c'est exactement la même liste. Donc quand reverse est appelée sur temp_list_clefs, elle l'est aussi sur self._clefs. Donc les variables temporaires n'ont pas d'utilité.

                                      Par ailleurs, même si une copie était utilisée, je ne vois pas à quoi elle servirait, puisqu'on peut justement déjà inverser une liste en place.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        16 mars 2018 à 18:05:10

                                        Évidemment, je suis désolé en relisant mon code… :-(
                                        Ceci étend, pourquoi ne pas faire simplement :
                                        self._clefs.reverse()
                                        self._valeurs.reverse()
                                        car nous sommes bien d'accord que « self.clefs » et « self.valeurs » sont des listes.
                                        (Veuillez m'excuser si je dis encore une énormité).

                                        -
                                        Edité par letengu 16 mars 2018 à 18:06:06

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          16 mars 2018 à 18:43:11

                                          Merci beaucoup pour votre réponse je vais voir ça le plus vite possible^^

                                          # -*-coding:Latin-1 -*

                                          import os

                                          annee=input("Saisissez votre annee: ")

                                          annee=int(annee)

                                          if annee%400==0:

                                             print("Annee bissextile")

                                          elif annee%100==0:

                                             print("Annee normale")

                                          elif annee%4==0: 

                                             print("Annee bissextile")

                                          else:

                                             print("Annee normale")

                                          os.system("pause")

                                          Voici mon nouveau programme fonctionnel merci pour votre aide je prefere cette méthode à la boolean etes vous d'accord?

                                          -
                                          Edité par StarofGames 16 mars 2018 à 18:56:23

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            16 mars 2018 à 18:53:11

                                            @letengu, exactement, c'est bien ce que je te dis, autant directement appeler reverse sur self._clefs et self._valeurs.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              16 mars 2018 à 19:32:08

                                              @entwanne
                                              Merci beaucoup, juste une « dernière » question: je viens de commencer l'activité du labyrinthe.
                                              Il y a quand même une sacrée marche à gravir dans le cours à ce niveau, non ?
                                              Est-ce moi qui délire ?
                                              @StarofGames
                                              Si  tu ne souhaites pas faire :
                                              year = int(year)
                                              if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
                                              	print("-> " + str(year) + " est une année  bissextile !")
                                              else:
                                              	print("-> " + str(year) + " est une année  non-bissextile !")
                                              essaye :
                                              year = int(year)
                                              if year % 400 == 0:
                                              	print("-> " + str(year) + " est une année  bissextile !")
                                              elif year % 4 == 0 and year % 100 != 0:
                                              	print("-> " + str(year) + " est une année  bissextile !")
                                              else:
                                              	print("-> " + str(year) + " est une année  non-bissextile !")
                                              cela rendra ton code toujours plus lisible… ;-)
                                              à bientôt.

                                              -
                                              Edité par letengu 16 mars 2018 à 20:50:57

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                17 mars 2018 à 9:47:00

                                                @ letengu : Oui, c'est sûr que ça devient un peu plus compliqué à ce moment là. Il faut vraiment partitionner ton raisonnement pour ce labyrinthe et te poser plein de questions. La plus importante, c'est celle là :
                                                Comment je vais déplacer mon robot dans le labyrinthe (pour t'aiguiller un peu, c'est surtout se poser la question : est ce que si je déplace mon robot là, il y a un mur ou non ? Si oui, je ne la déplace pas, sinon je le déplace).

                                                Désolé de revenir à charger sur mon soucis mais je ne comprend bêtement pas où écrire les tests unitaires. Est ce que je glisse mes tests juste en dessous de mes fonctions normales, ou alors je dois créer des fonctions test de même nature que mes fonctions dans une autre classe ?
                                                Je n'arrive vraiment pas à comprendre ça. Vraiment navré si ça semble bête - si c'est possible d'avoir un exemple, ce serai super.

                                                Merci d'avance :)

                                                -
                                                Edité par Haorou 17 mars 2018 à 14:33:58

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  17 mars 2018 à 21:22:25

                                                  Bonjour, mon souci du jour :
                                                  Je ne comprends pas la logique de la structure sur l'activité du labyrinthe.
                                                  Si j'avais dû le faire à partir de zéro, j'aurais créé des classes :
                                                  · labyrinthe : qui générerait un labyrinthe d'après une chaîne de caractères…
                                                  · robot : qui gérerait les déplacements…
                                                  Je ne comprends pas comment attaquer avec la structure qui nous est donnée.
                                                  Si quelqu'un pouvait me donner juste une explication sur le départ…
                                                  Merci d'avance.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    17 mars 2018 à 21:44:23

                                                    @ letengu : dans l'activité, le découpage est particulier et c'est à toi de l'adopter à tes besoin.

                                                    De mémoire il contient :
                                                    - robotc.py (qui sert à importer des fichiers textes contenants les cartes [pour ma part, j'y ai glissé aussi le code pour lancer l'application])
                                                    - carte.py (qui sert à traiter les données récupérés par l'importation des fichiers textes [en clair, il faut faire communiquer robotc et carte])
                                                    - labyrinthe.py (qui, pour ma part, contient le gros du code du jeu [déplacement, affichage, etc]).

                                                    Tu peux structurer vraiment comme tu le souhaites sinon. Tu n'es pas obligé de te laisser limiter par ce que propose l'exercice.

                                                    Pour avoir corrigés des copies d'autres personnes, certains crées des fichiers contenants des class comme : Joueur / SauvegarderEtCharger
                                                    C'est à toi de voir ce que tu veux ;)

                                                    Hésites pas à bidouiller, il y a plusieurs méthodes pour réaliser cette activité.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Anonyme
                                                      18 mars 2018 à 9:24:54

                                                      Coucou,

                                                      Je viens de réaliser l'exercice des années bissextiles (structures conditionnelles) mais d'une façon un peu voir vraiment différente de la correction.

                                                      Quelqu'un pourrait voir mon code et vérifier si il est valide ?

                                                      annee = input("Saisissez une année : ")
                                                      annee = int(annee)
                                                      
                                                      if annee%4 != 0:
                                                          print("Ce n'est pas une année bissextile")
                                                      elif annee%4 == 0:
                                                          if annee%100 == 0:
                                                              if annee%400 == 0:
                                                                  print("C'est une année bissextile")
                                                              else:
                                                                  print("Ce n'est pas une année bissextile")
                                                          else:
                                                              print("C'est une année bissextile")

                                                      Merci d'avance :D

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        26 mars 2018 à 20:02:14

                                                        Bonjour Mesdames, Messieurs,
                                                        sur le cours de python, tout content, je viens de terminer la première activité sur le labyrinthe…
                                                        Je relis bien mon code, tout est propre, je relis bien l'énoncé…
                                                        Je vois que dans l'exemple, lorsqu'une direction est donnée suivie d'un chiffre X, le labyrinthe est affiché X fois.
                                                        J'ai voulu faire propre et chez moi, si vous tapez « S9 » le labyrinthe ne s'affichera pas 9 fois, mais une seule(La dernière).
                                                        D'après vous, dois-je tout refaire ?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          26 mars 2018 à 23:31:33

                                                          Moi aussi j'avais fais ce choix. À partir du moment ou tu t'arrêtes avant les mûrs… ;-)

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            27 mars 2018 à 14:40:17

                                                            Bonjour,

                                                            J'en suis a la gestion des erreur et bug du cours "perfectionnez-vous en python". Le problème est dans le programme suivant : 

                                                            import argparse
                                                            
                                                            import analysis.csv as c_an
                                                            import analysis.xml as x_an
                                                            
                                                            def parse_arguments():
                                                                parser = argparse.ArgumentParser()
                                                                parser.add_argument("-e","--extension", help="""Type of file to analyse. Is it a CSV or an XML ?""")
                                                                parser.add_argument("-d", "--data_file", help=""" Analyse directly the data""")
                                                                return parser.parse_args()
                                                            
                                                            def main():
                                                                args = parse_arguments()
                                                                datafile = args.datafile
                                                                if args.extension == 'xml':
                                                                    x_an.launch_analysis(datafile)
                                                                elif args.extension == 'csv':
                                                                    c_an.launch_analysis(datafile)
                                                            
                                                            if __name__ == '__main__':
                                                                main()

                                                            A l’exécution proposé par le cours je reçois le message d'erreur suivant : 

                                                             datafile = args.datafile
                                                            AttributeError: 'Namespace' object has no attribute 'datafile'

                                                            Et la j'avoue que j'ai chercher un peu mais les solutions proposer ont l'air d'être d'un tout autre niveau que celui du cours. 

                                                            Une erreur simple ce serais glisser dans mon code ? 

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              27 mars 2018 à 16:08:04

                                                              Sans plus tester que cela, je dirais que l'argument devrait s'appeler --datafile ou l'attribut data_file. Mais là, les noms ne correspondent pas, il y a un underscore d'un côté et pas de l'autre.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Exercices du cours Python / postez ici !

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown