Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    15 mai 2019 à 9:25:03

    Alors ça oO
    • Partager sur Facebook
    • Partager sur Twitter

    typage structurel ftw

      15 mai 2019 à 10:48:06

      Après tout, pourquoi pas. Enfin peut-être ?
      • Partager sur Facebook
      • Partager sur Twitter

      typage structurel ftw

        15 mai 2019 à 10:58:39

        Ouais, on pourra comparer nos résultats avec ceux d'IsabelleFournier3 à 15h31 !

        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2019 à 17:39:47

          Ah, bon bah tant pis. (J'ai oublié ^^). Dommage, j'étais partant. Il nous faut un sujet pour les défis comme ça.

          -
          Edité par digammaF 15 mai 2019 à 17:42:54

          • Partager sur Facebook
          • Partager sur Twitter

          typage structurel ftw

            16 mai 2019 à 8:45:11

            Bonjour,

            J'ai été mal corrigé sur un exercice (la personne m'a donné la note de 0/7 sur l'amélioration du jeu Labyrinthe disant que j'étais hors sujet car le jeu devait être fait avec une interface graphique, ce qui est faux) et à cause de cela, l'exercice n'a pas été réussi. Que puis-je faire pour remédier à cela afin d'obtenir mon certificat?

            Merci

            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2019 à 19:35:52

              Bonsoir. Au premier TP celui sur Zcasino impossible de faire fonctionner le programme . Après la saisie du numéro sur lequel l'on souhaite miser python me signale une érreur du type TypeError autour des '<' , '>'  me disant qu'il n'est pas supporté à coté des caractères du type 'int' et 'string' donc mon programme Zcasino ne fonctionne pas. J'utilise Python 3.7 .

               Une réponse rapide m'aidera à avancer dans mon apprentissage et ma formation svp et merci.

              Mon Email est tchuissealex@gmail.com

              • Partager sur Facebook
              • Partager sur Twitter
                26 mai 2019 à 12:03:52

                Bonjour.

                Excusez-moi, je débute en Python. J'ai un problème dès le début du cour que je ne comprends pas, il m'est impossible de faire: partie créez des structures conditionnelles, les limites de la condition simple en if. J'écris le début:

                >>> a = 5
                >>> if a > 0:
                ...     print("a est supérieur à 0.")
                ... if a <0:
                


                Et ensuite quand je mets entrée pour écrire la suite, il y a un problème:

                    File "<stdin>", line 3
                      if a <0:
                       ^
                SyntaxError: invalid syntax.

                Pouvez-vous m'expliquer? Merci d'avance.

                • Partager sur Facebook
                • Partager sur Twitter
                  26 mai 2019 à 14:37:32

                  Bonjour, termine ton premier if avant d'attaquer le second (entre une ligne vide après la seconde ligne). Ou bien écris ton code dans un fichier.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  typage structurel ftw

                    4 juin 2019 à 14:29:05

                    Bonjour, je débute en Python et j'ai un projet à faire.

                    Je dois lancer une vidéo en mp4 avec VLC ( la vidéo est sur le bureau ) et fermer VLC à la fin de la vidéo partir d'un code Python (3.0) sous Raspian, et je dois également mettre la vidéo en pause à 2sec. Je suis sous Linux

                    Voici mon code:

                    from subprocess import *
                    import RPi.GPIO as GPIO
                    import time
                    
                    vlc_opts = "--volume=0"
                    GPIO.setmode(GPIO.BCM)
                    capteur = 7
                    
                    GPIO.setup(capteur, GPIO.IN)
                    
                    print("Demarrage du capteur")
                    time.sleep(2)
                    print ("Capteur pret a detecter un mouvement")
                    
                    try:
                        while True:
                            if GPIO.input(capteur):
                                print("Mouvement detectee, ouverture de la vidéo")
                                time.sleep(2)
                                p=Popen(["vlc", vlc_opts, "Nom de la vidéo.mp4"])
                                time.sleep(temps de la vidéo)
                                p.terminate()
                    
                    except KeyboardInterrupt:
                            print ("Exit")
                            GPIO.cleanup()


                     

                     Je dois, quand un mouvement est détecter grâce au capteur de mouvement, lancer la vidéo qui est sur mon bureau, mettre la vidéo en pause au bout de 2sec et fermer VLC dès que la vidéo prend fin. En ce moment , j'arrive juste à lancer la vidéo, et fermer VLC. Mais je n'arrive pas à mettre la vidéo en pause. Y'a t-il quelqu'un qui connait la commande ?

                    -
                    Edité par Johan F 5 juin 2019 à 11:29:15

                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 juin 2019 à 20:06:58

                      Bonjour,

                      j'ai un soucis récurent dans les exercices, quand il s'agit de quitter ou continuer ça ne fonctionne jamais. Même quand je copie/colle le code du cours (dernier exemple en date le TP ZCasino).

                      J'ai donc copier/coller le code suivant :

                      # -*-coding:Latin-1 -*
                      # Ce fichier abrite le code du ZCasino, un jeu de roulette adapté

                      import os
                      from random import randrange
                      from math import ceil

                      # Déclaration des variables de départ
                      argent = 1000 # On a 1000 $ au début du jeu
                      continuer_partie = True # Booléen qui est vrai tant qu'on doit
                                              # continuer la partie

                      print("Vous vous installez à la table de roulette avec", argent, "$.")

                      while continuer_partie: # Tant qu'on doit continuer la partie
                          # on demande à l'utilisateur de saisir le nombre sur
                          # lequel il va miser
                          nombre_mise = -1
                          while nombre_mise < 0 or nombre_mise > 49:
                              nombre_mise = input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
                              # On convertit le nombre misé
                              try:
                                  nombre_mise = int(nombre_mise)
                              except ValueError:
                                  print("Vous n'avez pas saisi de nombre")
                                  nombre_mise = -1
                                  continue
                              if nombre_mise < 0:
                                  print("Ce nombre est négatif")
                              if nombre_mise > 49:
                                  print("Ce nombre est supérieur à 49")

                          # À présent, on sélectionne la somme à miser sur le nombre
                          mise = 0
                          while mise <= 0 or mise > argent:
                              mise = input("Tapez le montant de votre mise : ")
                              # On convertit la mise
                              try:
                                  mise = int(mise)
                              except ValueError:
                                  print("Vous n'avez pas saisi de nombre")
                                  mise = -1
                                  continue
                              if mise <= 0:
                                  print("La mise saisie est négative ou nulle.")
                              if mise > argent:
                                  print("Vous ne pouvez miser autant, vous n'avez que", argent, "$")

                          # Le nombre misé et la mise ont été sélectionnés par
                          # l'utilisateur, on fait tourner la roulette
                          numero_gagnant = randrange(50)
                          print("La roulette tourne... ... et s'arrête sur le numéro", numero_gagnant)

                          # On établit le gain du joueur
                          if numero_gagnant == nombre_mise:
                              print("Félicitations ! Vous obtenez", mise * 3, "$ !")
                              argent += mise * 3
                          elif numero_gagnant % 2 == nombre_mise % 2: # ils sont de la même couleur
                              mise = ceil(mise * 0.5)
                              print("Vous avez misé sur la bonne couleur. Vous obtenez", mise, "$")
                              argent += mise
                          else:
                              print("Désolé l'ami, c'est pas pour cette fois. Vous perdez votre mise.")
                              argent -= mise

                          # On interrompt la partie si le joueur est ruiné
                          if argent <= 0:
                              print("Vous êtes ruiné ! C'est la fin de la partie.")
                              continuer_partie = False
                          else:
                              # On affiche l'argent du joueur
                              print("Vous avez à présent", argent, "$")
                              quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
                              if quitter == "o" or quitter == "O":
                                  print("Vous quittez le casino avec vos gains.")
                                  continuer_partie = False

                      # On met en pause le système (Windows)
                      os.system("pause")

                      et voilà l'erreur :

                      Souhaitez-vous quitter le casino (o/n) ? O
                      Traceback (most recent call last):
                        File "/Users/lucilepettenazzi/Desktop/Lucile/Code/Chapitre 1/ZCasino/Correction.py", line 73, in <module>
                          quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
                        File "<string>", line 1, in <module>
                      NameError: name 'O' is not defined
                      >>>

                      Python me dit TOUJOURS quelque soit l'exercice name "" is not defined...

                      Je suis sous Mac, je ne sais pas si c'est corrélé.

                      Quelqu'un peut il éclairer mon ignorance ?

                      Merci merci.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 juin 2019 à 20:32:05

                        LuceIzzanettep a écrit:

                        Bonjour,

                        j'ai un soucis récurent dans les exercices, quand il s'agit de quitter ou continuer ça ne fonctionne jamais. Même quand je copie/colle le code du cours (dernier exemple en date le TP ZCasino).

                        J'ai donc copier/coller le code suivant :

                        # -*-coding:Latin-1 -*
                        # Ce fichier abrite le code du ZCasino, un jeu de roulette adapté

                        import os
                        from random import randrange
                        from math import ceil

                        # Déclaration des variables de départ
                        argent = 1000 # On a 1000 $ au début du jeu
                        continuer_partie = True # Booléen qui est vrai tant qu'on doit
                                                # continuer la partie

                        print("Vous vous installez à la table de roulette avec", argent, "$.")

                        while continuer_partie: # Tant qu'on doit continuer la partie
                            # on demande à l'utilisateur de saisir le nombre sur
                            # lequel il va miser
                            nombre_mise = -1
                            while nombre_mise < 0 or nombre_mise > 49:
                                nombre_mise = input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
                                # On convertit le nombre misé
                                try:
                                    nombre_mise = int(nombre_mise)
                                except ValueError:
                                    print("Vous n'avez pas saisi de nombre")
                                    nombre_mise = -1
                                    continue
                                if nombre_mise < 0:
                                    print("Ce nombre est négatif")
                                if nombre_mise > 49:
                                    print("Ce nombre est supérieur à 49")

                            # À présent, on sélectionne la somme à miser sur le nombre
                            mise = 0
                            while mise <= 0 or mise > argent:
                                mise = input("Tapez le montant de votre mise : ")
                                # On convertit la mise
                                try:
                                    mise = int(mise)
                                except ValueError:
                                    print("Vous n'avez pas saisi de nombre")
                                    mise = -1
                                    continue
                                if mise <= 0:
                                    print("La mise saisie est négative ou nulle.")
                                if mise > argent:
                                    print("Vous ne pouvez miser autant, vous n'avez que", argent, "$")

                            # Le nombre misé et la mise ont été sélectionnés par
                            # l'utilisateur, on fait tourner la roulette
                            numero_gagnant = randrange(50)
                            print("La roulette tourne... ... et s'arrête sur le numéro", numero_gagnant)

                            # On établit le gain du joueur
                            if numero_gagnant == nombre_mise:
                                print("Félicitations ! Vous obtenez", mise * 3, "$ !")
                                argent += mise * 3
                            elif numero_gagnant % 2 == nombre_mise % 2: # ils sont de la même couleur
                                mise = ceil(mise * 0.5)
                                print("Vous avez misé sur la bonne couleur. Vous obtenez", mise, "$")
                                argent += mise
                            else:
                                print("Désolé l'ami, c'est pas pour cette fois. Vous perdez votre mise.")
                                argent -= mise

                            # On interrompt la partie si le joueur est ruiné
                            if argent <= 0:
                                print("Vous êtes ruiné ! C'est la fin de la partie.")
                                continuer_partie = False
                            else:
                                # On affiche l'argent du joueur
                                print("Vous avez à présent", argent, "$")
                                quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
                                if quitter == "o" or quitter == "O":
                                    print("Vous quittez le casino avec vos gains.")
                                    continuer_partie = False

                        # On met en pause le système (Windows)
                        os.system("pause")

                        et voilà l'erreur :

                        Souhaitez-vous quitter le casino (o/n) ? O
                        Traceback (most recent call last):
                          File "/Users/lucilepettenazzi/Desktop/Lucile/Code/Chapitre 1/ZCasino/Correction.py", line 73, in <module>
                            quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
                          File "<string>", line 1, in <module>
                        NameError: name 'O' is not defined
                        >>>

                        Python me dit TOUJOURS quelque soit l'exercice name "" is not defined...

                        Je suis sous Mac, je ne sais pas si c'est corrélé.

                        Quelqu'un peut il éclairer mon ignorance ?

                        Merci merci.

                        Bonjour !

                        1 : Tu peux utiliser la balise </> pour mettre ton code dedans. 

                        2 : personne ne comprend les caprices de python...

                        • Partager sur Facebook
                        • Partager sur Twitter

                        "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                          5 juin 2019 à 20:38:49

                          @LuceIzzanettep Utilise Python 3 plutôt que Python 2 et tes problèmes seront résolus.

                          (ça vient du fonctionnement de la fonction input en Python 2)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 juin 2019 à 20:39:59

                            entwanne a écrit:

                            @LuceIzzanettep Utilise Python 3 plutôt que Python 2 et tes problèmes seront résolus.

                            (ça vient du fonctionnement de la fonction input en Python 2)


                            C'est ce que je me disais :-°
                            • Partager sur Facebook
                            • Partager sur Twitter

                            "I believe in two things. Discipline and the Bible." The Shawshank Redemption

                              5 juin 2019 à 21:19:31

                              Merci à tous pour vos réponses.

                              A un moment j'ai pensé à cette solution,  j'ai donc essayé d'installer python 3.7.3. Mon mac m'a dit OK c'est installé mais a priori c'est  toujours le 2... Je vais me repencher sur la question, il y a peut être une manip que j'ai mal effectué à l'installation.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                6 juin 2019 à 8:03:11

                                Peut-être que les deux sont installés sur ta machine, vérifie bien que tu utilise python 3 pour lancer ton script. C'est une erreur similaire qui m'a poussé sur ce forum :). Python relevait les annotations comme erreur de syntaxe, et c'est parce que j'utilisait python 2 au lieu de python 3 sans le savoir, les deux étants installés sur une même machine c'est python 2 qui a la priorité.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                typage structurel ftw

                                  9 juin 2019 à 13:42:15

                                  Bonjour, c'est première fois que je post ici ! J'aimerais savoir quelle est la différence entre ces deux codes ci-dessous. Je veux coder une classe, contenant la méthode spéciale __iter__ me permettant de simuler le mécanisme qui s’opère derrière la boucle for. La seule différence ici est que la chaîne se parcourt à l'envers.

                                  class RevStr(str):
                                      """Classe reprenant les méthodes et attributs des chaînes construites
                                      depuis 'str'. On se contente de définir une méthode de parcours
                                      différente : au lieu de parcourir la chaîne de la première à la dernière
                                      lettre, on la parcourt de la dernière à la première.
                                      
                                      Les autres méthodes, y compris le constructeur, n'ont pas besoin
                                      d'être redéfinies"""
                                      
                                      def __iter__(self):
                                          """Cette méthode renvoie un itérateur parcourant la chaîne
                                          dans le sens inverse de celui de 'str'"""
                                          
                                          return ItRevStr(self) # On renvoie l'itérateur créé pour l'occasion
                                  
                                  class ItRevStr:
                                      """Un itérateur permettant de parcourir une chaîne de la dernière lettre
                                      à la première. On stocke dans des attributs la position courante et la
                                      chaîne à parcourir"""
                                      
                                      def __init__(self, chaine_a_parcourir):
                                         """On se positionne à la fin de la chaîne"""
                                          self.chaine_a_parcourir = chaine_a_parcourir
                                          self.position = len(chaine_a_parcourir)
                                      def __next__(self):
                                          """Cette méthode doit renvoyer l'élément suivant dans le parcours,
                                          ou lever l'exception 'StopIteration' si le parcours est fini"""
                                          
                                          if self.position == 0: # Fin du parcours
                                              raise StopIteration
                                          self.position -= 1 # On décrémente la position
                                          return self.chaine_a_parcourir[self.position]
                                  Ce premier code est celui donné dans le cours Apprenez à programmer en Python. Pourquoi ne peut-on pas envisager le code suivant ?

                                  class IterStr(str):
                                  	def __init__(self, chaine_de_caractères):
                                  		self._chaine_de_caractères = chaine_de_caractères
                                  		self._essais = len(chaine_de_caractères)
                                  	def __iter__(self):
                                  		str.__iter__(self)
                                  		return IterStr.__next__(self)
                                  	def __next__(self):
                                  		if self._essais == 0:
                                  			raise StopIteration
                                  		self._essais -= 1
                                  		return self._chaine_de_caractères[self._essais]

                                  Merci de vos réponses !

                                  T0my

                                  -
                                  Edité par LeVerso'__ 9 juin 2019 à 13:45:22

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 juin 2019 à 0:15:41

                                    (j'ai trouvé la réponse à ma question)

                                    -
                                    Edité par NicolasMotte3 10 juin 2019 à 10:10:32

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 juin 2019 à 16:43:07

                                      Salut les dresseurs de python!!

                                      j'ai crée un fichier données contenant une bibliothèque de mots pour le pendue.

                                      Lorsque j'essaie d'intégrer cette bibliothèque dans un autre fichier en utilisant le module pickle, j'obtiens sa:  

                                       with open("C:\programme\pendu\donnees.py","rb") as fichier:

                                      ...     mon_depickle = pickle.Unpickler(fichier)

                                      ...     dico =mon_depickle.load()

                                      ...

                                      Traceback (most recent call last):

                                        File "<stdin>", line 3, in <module>

                                      _pickle.UnpicklingError: could not find MARK

                                      je ne connais pas cette exception. Ce module me permet il bien de récupérer la bibliothèque dans mon autre fichier?

                                      et pourquoi ce message d'erreur?

                                      merci d'avance !!🙌

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 juin 2019 à 18:04:22

                                        Pickle un objet python, n'importe lequel, dans un fichier. Ensuite ouvre le fichier créé et essaie de lire, puis constate que ce n'est pas du Python.

                                        from pickle import dumps
                                        
                                        
                                        obj = [1, 2, 3]
                                        
                                        
                                        with open("obj", "wb") as f:
                                            f.write(dumps(obj))
                                        
                                        # notons d'ailleurs que dumps(obj) ne renvoie pas une string qui contient du Python

                                        Voilà, à partir de là tu peux aisément comprendre que : données sérializées != code python. Si ta bibliothèques est une liste Python dans un fichier qui porte l'extension .py, alors il te faut l'importer, rien de plus.

                                        biblio.py :

                                        dico = ["Hey", "Ho"]

                                        Pour l'utiliser :

                                        from biblio import dico
                                        
                                        dico[0]
                                        dico[1]





                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        typage structurel ftw

                                          16 juin 2019 à 15:41:17

                                          Bonjour,

                                          Je n'ai pas parcouru les 32 pages du fil, mais j'ai une question concernant le TP3 sur le dictionnaire ordonné dans la ligne suivante :

                                          def __init__(self, base={}, **donnees):

                                          Je ne comprends pas ce que signifie les "**" pour moi c'est égale au carré de la valeur donnée.

                                          Cette partie du cours assez abstraite est assez compliquée à prendre en main.

                                          Merci d'avance de vos réponses

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 juin 2019 à 9:05:33

                                            Bonjour,

                                            GuillaumeROYER6 a écrit:

                                            Bonjour,

                                            Je n'ai pas parcouru les 32 pages du fil, mais j'ai une question concernant le TP3 sur le dictionnaire ordonné dans la ligne suivante :

                                            def __init__(self, base={}, **donnees):

                                            Je ne comprends pas ce que signifie les "**" pour moi c'est égale au carré de la valeur donnée.

                                            Cette partie du cours assez abstraite est assez compliquée à prendre en main.

                                            Merci d'avance de vos réponses


                                            Je suis d'accord avec le message precedent concernant le fait que cette partie du cours est trop abstraite et difficile a intégrer.
                                            D'ailleurs bizarrement, je comprends tres bien les parties qui finissent par des phrases type "Ne vous inquietez pas si ce n'est pas clair", par contre je ne comprends absolument pas certaines parties qui sont sensé etre plus simples...

                                            Bref.
                                            Si je ne me trompe pas, l'écriture "**donnees" permet de récuperrer un dictionnaire en parametre. J'ai trouvé l'explication ici:
                                            https://python-django.dev/page-apprendre-creer-fonction-en-python

                                            Je suis moi-meme entrain de me casser les dents a comprendre la correction de ce TP... Pas évident du tout !

                                            A+,
                                            Daniel.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 juin 2019 à 8:53:05

                                              bonjours, je suis completement bloqué sur cet exercices, et je n'est pas la moindre piste sur une éventuelles erreurs, quand je soumet mon code, cela me renvoi un message d'erreur " Your program output contains an invalid UTF8 character. / La sortie du programme contient un caractère UTF8 invalide.
                                              Résultat trop gros pour être affiché complètement."
                                              merci de votre aide.

                                              Ce que doit faire votre programme :

                                              Votre programme doit lire entier : un nombre de personnes à considérer. Ensuite, pour chaque personne, il doit lire son signalement sous la forme de cinq entiers : sa taille en centimètres, son âge en années, son poids en kilogrammes, un entier valant 1 si la personne possède un cheval et 0 sinon, et un entier valant 1 si la personne à les cheveux bruns et 0 sinon.

                                              On veut déterminer pour chaque personne à quel point elle correspond aux 5 critères suivants :

                                              • il aurait une taille supérieure ou égale à 178 cm et inférieure ou égale à 182 cm ;
                                              • il aurait au moins 34 ans ;
                                              • il pèserait strictement moins de 70 kg ;
                                              • il n'a pas de cheval ;
                                              • il a les cheveux bruns.

                                              Lorsque cela n'est pas précisé explicitement, les inégalités sont au sens large.

                                              Pour chaque personne, vous devez tester tous les critères. S'ils sont vérifiés tous les 5, vous devez afficher « Très probable ». Si seulement 3 ou 4 sont vérifiés, vous devez afficher « Probable ». Si aucun n'est vérifié, vous devez afficher « Impossible », et dans les autres cas, vous devez afficher « Peu probable ».

                                              MON CODE:

                                              nbPers = int(input())
                                              for loop in range (nbPers):
                                                 taille = int(input())
                                                 age = int(input())
                                                 poids = int(input())
                                                 cheval = int(input())
                                                 brun = int(input())
                                                 critere = 0
                                                 if(taille >= 178 or taille <= 182):
                                                    critere = critere + 1
                                                 if age >= 34:
                                                    critere = critere + 1
                                                 if poids < 70:
                                                    critere = critere + 1
                                                 if cheval == 0:
                                                    critere = critere + 1
                                                 if brun == 1:
                                                    critere = critere + 1
                                                 if critere < 10:
                                                    if critere == 0:
                                                       print("Impossible")
                                                    elif critere == 3:
                                                       print("Probable")
                                                    elif critere == 4:
                                                       print("Probable")
                                                    elif critere == 5:
                                                       print("Très probable")
                                                    else:
                                                       print("Peu probable")
                                               
                                              edit: Résolu j'avais mit "or" a la place de "and" erreur toute bete grosse consequence

                                              -
                                              Edité par EduardoRamires 23 juin 2019 à 9:29:31

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 juin 2019 à 13:53:42

                                                DanielDaSilva1 a écrit:

                                                Bref.
                                                Si je ne me trompe pas, l'écriture "**donnees" permet de récuperrer un dictionnaire en parametre. J'ai trouvé l'explication ici:
                                                https://python-django.dev/page-apprendre-creer-fonction-en-python

                                                Je suis moi-meme entrain de me casser les dents a comprendre la correction de ce TP... Pas évident du tout !

                                                Merci de ta réponse c'est un peu plus clair maintenant, il ne me semble pas que ce point ait été évoqué précédemment dans le cours ! Dommage, car l'utiliser dans la correction brouille les pistes et l'explication !

                                                Toujours sur ma correction :

                                                def __init__(self, base={}, **donnees):
                                                        
                                                        
                                                        self._cles = [] # Liste contenant nos clés
                                                        self._valeurs = [] # Liste contenant les valeurs correspondant à nos clés
                                                        
                                                        # On vérifie que 'base' est un dictionnaire exploitable
                                                        if type(base) not in (dict, DictionnaireOrdonne):
                                                            raise TypeError( \
                                                                "le type attendu est un dictionnaire (usuel ou ordonne)")
                                                        
                                                        # On récupère les données de 'base'
                                                        for cle in base:
                                                            self[cle] = base[cle]
                                                        
                                                        # On récupère les données de 'donnees'
                                                        for cle in donnees:
                                                            self[cle] = donnees[cle]

                                                Je comprends bien qu'on récupère les données des dictionnaire dans une liste. Mais normalement ont doit également récupérer les clés des dictionnaires non?

                                                J'avoue que je ne comprends pas, sinon à quoi sert de définir 2 self._cle et self._valeurs ?

                                                -
                                                Edité par GuillaumeROYER6 26 juin 2019 à 14:37:15

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  2 juillet 2019 à 11:50:53

                                                  Les cours est bien fait... c'est dommage que l'activité soit IMPOSSIBLE !! Ca fait plusieurs semaines que je galere et je pense que je lasserai tomber la certification pour faire d'autre tutoriels... Par rapport au contenu du cours le jeu de Labyrinthe est vraiment trop avancé :(

                                                  Peut etre que c'est moi à etre nul mais j'ai l'impression, en plus, que la partie du code fournie mette encore plus en difficulté plutot que aider, comme le import:

                                                  from labyrinthe import creer_labyrinthe_depuis_chaine

                                                  qui me semble creer un probleme de dependence circulare, vu que la methode est importée AVANT que la class labyrinthe soit definie.. (https://stackoverflow.com/questions/9252543/importerror-cannot-import-name-x)

                                                  -
                                                  Edité par Fr4nc3sc0 2 juillet 2019 à 11:51:40

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 juillet 2019 à 16:00:12

                                                    Bonjour, dans le cours Python au moment d'aborder la condition if https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/231174-creez-des-structures-conditionnelles#/id/r-2231344

                                                    lorsque je fais l'exercice indiqué j'obtiens un message d'erreur File "(stdin)", line2 print("a=",a,"et b=", b) SyntaxError: invalid syntax

                                                    Je ne comprends pas où est mon erreur

                                                    -
                                                    Edité par NicolasMONNET 3 juillet 2019 à 16:01:00

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      3 juillet 2019 à 16:21:33

                                                      Peut-être que tu te trompes dans l'indentation ? En tout cas la syntaxe est valide, le problème doit être de ton côté.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        3 juillet 2019 à 16:44:02 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                                                          4 juillet 2019 à 21:57:14

                                                          GuillaumeROYER6 a écrit:

                                                          Je comprends bien qu'on récupère les données des dictionnaire dans une liste. Mais normalement ont doit également récupérer les clés des dictionnaires non?

                                                          J'avoue que je ne comprends pas, sinon à quoi sert de définir 2 self._cle et self._valeurs ?

                                                          -
                                                          Edité par GuillaumeROYER6 26 juin 2019 à 14:37:15

                                                          Re bonjour Guillaume,

                                                          Donc sauf erreur de ma part:

                                                          base={} permet de recuperer les données (clés et valeurs) d'un dictionnaire déja crée (il serait donc "passé" en argument aprés avoir deja été rempli, par exemple dans une autre fonction).

                                                          exemple: MaClasse(self, mon_dictionnaire)

                                                          **donnees permet de recuperer les données (clés et valeurs) d'un dictionnaire "tapé" manuellement au moment de la creation d'un objet de la classe.

                                                          exemple: MaClasse(self, {"Oranges": 10, "Bananes": 5, "Pommes": 14})

                                                          Voila, encore une fois, c'est ce que je crois comprendre, je peux tout a fait me tromper.
                                                          Si des "experts" passent par la, qu'ils se sentent libre de mon confirmer ou de m'infirmer :)

                                                          A+,
                                                          Daniel.

                                                          • 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