Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    7 août 2017 à 10:22:29

    Bonjour,

    J'ai téléchargé Python sur le site python.org.

    Voila la commande que j'essaye de faire dans IDLE. Le fichier "fichier.txt" est bien créer via sublime text. 

    après avoir taper la ligne contenu=mon_fichier.read() j'ai le code erreur 

    unicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

    • Partager sur Facebook
    • Partager sur Twitter
      7 août 2017 à 11:42:55

      Le problème vient de l'encodage : Vous avez créé un fichier texte depuis Sublime-text avec un encodage US-ASCII au lieu de utf-8 ou en latin-1 (ISO8859-1).Essayez de créer un fichier texte depuis un autre outil comme Notepad++ ou vous pouvez contrôler l'encodage et demander à travailler en utf-8 qui est le charset Unicode ('cf UnicodeDecodeError...) a utiliser par défaut.

      Vous travaillez sur une plateforme Linux ?

      -
      Edité par Vifier Lockla 7 août 2017 à 11:43:40

      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2017 à 12:24:53

        Bonjour,

        J'ai un problème avec le chapitre [BONUS] Stockez des citations dans un fichier avec le module json du cours "Démarrez votre projet avec Python"

        Quand je lance mon code j'ai le message d’erreur suivant :

        Traceback (most recent call last):
          File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 50, in <module>
            print(message(random_character(), get_random_item(quotes)))
          File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 37, in random_character
            all_values = read_value_from_json()
          File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 22, in read_value_from_json
            data = json.load(f)
          File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 299, in load
            parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
          File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
            return _default_decoder.decode(s)
          File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
            obj, end = self.raw_decode(s, idx=_w(s, 0).end())
          File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 357, in raw_decode
            raise JSONDecodeError("Expecting value", s, err.value) from None
        json.decoder.JSONDecodeError: Expecting value: line 9 column 1 (char 222)

        Et voici le code utilisé

        # -*- coding: latin-1 -*-
        import random
        import json
        
        quotes = [
            "Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !",
            "On doit pouvoir choisir entre s'écouter parler et se faire entendre."
        ]
        
        characters = [
            "alvin et les Chipmunks",
            "Babar",
            "betty boop",
            "calimero",
            "casper",
            "le chat potté",
            "Kirikou"]
        
        def read_value_from_json():
            values = []
            with open("characters.json") as f:
                data = json.load(f)
                for entry in data:
                    values.append(entry["character"])
                return values
        
        def get_random_item(my_list):
            rand_numb = random.randint(0, len(my_list) - 1)
            item = my_list[rand_numb] # get a quote from a list
            return item # return the item
        
        def capitalize(words):
            for word in words:
                word.capitalize()
        
        def random_character():
            all_values = read_value_from_json()
            return random_item_in(all_values)
        
        def message(character, quote):
            capitalize(character)
            capitalize(quote)
            return "{} a dit : {}".format(character, quote)
        
        
        user_answer = input('Tapez entrée pour connaître une autre citation ou B pour quitter le programme.')
        
        
        while user_answer != "B":
            print(message(random_character(), get_random_item(quotes)))
            user_answer = input('Tapez entrée pour connaître une autre citation ou B pour quitter le programme.')

        Merci d'avance si quelqu'un a la solution

        • Partager sur Facebook
        • Partager sur Twitter
          9 août 2017 à 12:26:04

          Merci pour l'explication vivier lockla,

          Je travail sur mac qu'elle serai l'alternative à Notepad++ ? car il n'y a pas de version pour Mac.

          • Partager sur Facebook
          • Partager sur Twitter
            9 août 2017 à 16:13:31

            Je ne travaille pas sur Mac et je ne peux pas être affirmatif sur ce qui existe en termes d'éditeurs de texte lesquels enregistrentnativement en utf-8...Tous le monde est censé le faire et des années apręs l'arrivée d'unicode, on a toujours des problème de 'legacy' ...il faut trouver un éditeur qui permette de changer le charset/ le jeu de caractères en utf-8. Sublime text (https://www.sublimetext.com) doit enregistrer nativement en utf-8 et il est disponible sous OSX 10.7 ou ultérieur. Idem pour brackets (http://brackets.io).

            • Partager sur Facebook
            • Partager sur Twitter
              12 août 2017 à 23:47:05

              Bonjour,

              Dans le cours j'en suis au chapitre 6 au niveau des références et de  id() et de is

              Je ne comprends pas : Est ce que la références est le résultat de id() ?

              si je fais :

              >>> ma_liste1 = [1, 2, 3]
              >>> 
              >>> ma_liste2 = ma_liste1 
              >>>                                                                                                                                          
              >>> print(id(ma_liste1))                                                                                                                     
              3071861964                                                                                                                                   
              >>> print(id(ma_liste2))                                                                                                                     
              3071861964                                                                                                                                   
              >>>                                                                                                                                          
              >>> if id(ma_liste1) is id(ma_liste2):                                                                                                       
              ...     print("YES id avec is")                                                                                                              
              ... else:                                                                                                                                    
              ...     print("NO  id avec is")
              ... 
              NO  id avec is
              >>> 
              >>> 
              >>> 
              >>> if id(ma_liste1) == id(ma_liste2):
              ...     print("YES id avec ==")
              ... else:
              ...     print("NO id avec ==")
              ... 
              YES id avec ==
              >>> 
              
              
              

              Donc le résultat de id( ) est le même pour les deux listes !

              Dans le cours il est écris que is compare les id des objets de part et d'autre de is ! OK  les id () ne sont il s pas les mêmes puisque  il y a :

              >>> print(id(ma_liste1))                                                                                                                     
              3071861964                                                                                                                                   
              >>> print(id(ma_liste2))                                                                                                                     
              3071861964   

               Hors le résultat de comparaison avec is est False ???

              Je nage dans le brouillard , une lumière svp ?

              • Partager sur Facebook
              • Partager sur Twitter
                13 août 2017 à 9:32:37

                Exact, is compare les identifiants de deux objets, mais ce n'est pas à toi d'utiliser la fonction id (is le fait automatiquement):

                if ma_liste1 is ma_liste2:  #équivalent à id(ma_liste1) == id(ma_liste2):


                Avec ton code, tu ne compares pas l'id de ta liste MAIS l'id du nombre renvoyé par la fonction id ;):

                nb1, nb2 = id(ma_liste1), id(ma_liste2)
                
                print(id(nb1), id(nb2)))  #voilà ce que tu compares en réalité
                
                #Et donc la comparaison devient fausse:
                if id(ma_liste1) is id(ma_liste2)


                PS: Un bon point pour avoir utilisé le formatage de code du site :) mais la prochaine fois n'insère pas les >>> et les ... stp car il faut nettoyer le code avant de pouvoir l'exécuter. Juste faire:

                ma_liste1 = [1, 2, 3]
                ma_liste2 = ma_liste1
                
                print(id(ma_liste1))  #3071861964
                print(id(ma_liste2))  #3071861964
                
                
                if id(ma_liste1) is id(ma_liste2):
                    print("YES id avec is")
                else:
                    print("NO  id avec is")

                ;)

                • Partager sur Facebook
                • Partager sur Twitter
                Précepte: Le mieux est l'ennemi du bien
                  13 août 2017 à 10:57:53

                  LanoueC a écrit: > Je ne comprends pas : Est ce que la références est le résultat de id() ?

                  Non. La référence est l'objet. Il n'y a pas de différence entre les deux concepts en Python. Tout objet est une référence vers un emplacement mémoire.

                  Le nombre renvoyé par id correspond à l'adresse de cet emplacement mémoire. Deux objets qui partagent un même id (un même emplacement mémoire) sont donc nécessairement le même objet.

                  Alors, dans ton cas, les nombres renvoyés par id(ma_liste1) et id(ma_liste2) sont égaux (id(ma_liste1) == id(ma_liste2). Le problème est que tu testes l'égalité entre ces deux nombres avec is, qui n'est pas fait pour cela.

                  Ce que tu fais revient à écrire id(id(ma_liste1)) == id(id(ma_liste2)), ce qui peut être vrai pour des nombres égaux, mais sur lequel il ne faut généralement pas compter. Dans ton cas, les nombres sont égaux mais des instances différentes d'int.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 août 2017 à 17:02:18

                    Merci Olygrim

                    Merci entwanne

                    Vos réponses concises  m'éclairent parfaitement.

                    beau Dimanche

                    LanoueC

                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 août 2017 à 18:09:37

                      Bonjour,

                      J'en suis au pendu, c'est donc le troisième TP que je fais, sans avoir aucuns avis sur mes codes. Je me suis dit que je suis peut être en train de prendre des mauvais plis et que si c'est le cas, j'ai besoin qu'on me le dise.

                      Si je demande ça c'est que quand j'ai fini mon pendu, je me suis retrouvé avec ce programme:

                      # -*-coding:Utf-8 -*
                      """jeu du pendu dans le quel le joueur a 8 chances pour trouver un mot"""
                      import os
                      from fonction import *
                      
                      os.system('cls')
                      joueur()
                      produire_mot()
                      corps_du_jeu()

                      non, non ce n'est pas une blague: 9 lignes et tout ce passe dans les fonctions.

                      Avant tout il faut que je vous dise, il y a fort longtemps, j'étais au lycée et j'avais une calculatrice scientifique TI-83 sur la quelle je faisais quelques programmes sympas (dans la limite des possibilités) et je me souviens de deux "fonctions" qui étaient Lbl+clé (chiffres ou lettres) et goto+clé. le Lbl était fait pour marquer un endroit et le goto pour envoyer le programme à cette endroit là.

                      Là en programmant mon pendu mes vieux réflexes de lycéens sont remontés à la surface et je me suis mis, sans vraiment m'en rendre compte au début, à utiliser les fonctions() python comme des Lbl et goto.

                      Du coup à la fin de corps_du_jeu() je renvois à la fonction menu() qui elle laisse trois choix: quitter, continuer avec le même joueur ou changer de joueur. selon le choix j'appelle différentes fonctions.

                      Donc: suis-je en train de prendre de mauvaise plis? où est-ce une façon normale de tracer un chemin que suivrait le programme?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 octobre 2017 à 4:35:03

                        def table_par_7():
                               nb =7
                               i =0
                               while i <10:
                               print(i +1, "*" , nb, "=", (i +1) * nb)
                               i +=1


                        j'ai écrit la même chose que L,exercice, mais le résultat ne sort pas?

                        merci

                        -
                        Edité par RéjeanCorriveau 8 octobre 2017 à 4:39:52

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 octobre 2017 à 22:05:09

                          Bonjour

                          J'aimerais imprimer quelque chose comme :

                          somme=int(input())

                          mise =int(input('Inserez un montant vous dispossez de "100"))

                          100 étant la valeur de la somme

                          J'ai testé plusieurs trucs mais je n'arrive à rien 

                          -
                          Edité par nikol 10 octobre 2017 à 22:05:25

                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 octobre 2017 à 11:48:25

                            Bonjour,

                            J'ai une question sur le programme à faire (Roboc en multijoueur) :

                            Le programme client doit à la fois attendre les commandes du joueur avec la fonction input() et à la fois afficher les messages reçus du serveur.

                            Alors j'ai créé une classe Ecoute qui hérite de threading.Thread

                            Le problème c'est que quand je dois afficher un message reçu du serveur il me l'affiche en plein milieu du input(">")
                            Je ne sais pas si je suis très clair... Je vous met un exemple :

                            Connexion établie avec le serveur sur le port 12800
                            
                            > Un nouveau joueur vient d'arriver : 1 joueur(s) connectés

                            1 - Je lance le client
                            2 - Il me dit "Connexion établie blabla"
                            3 - j'arrive sur mon appel à input(">")
                            4 - Il m'affiche le message reçu du serveur : "Un nouveau joueur blabla"
                            5 - Le curseur de saisie est maintenant décalé sous la ligne

                            Comment je pourrait remédier à ca d'après vous ?

                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 octobre 2017 à 10:57:22

                              bonjour,

                               J'ai un exemple dans le cour qui ne marche pas sur mon ordi, je les réécris exactement pareil.

                              J'aimerais savoir le problème car sa m'affiche ceci :=== RESTART: D:\Users\User\Documents\programme C++\1er programme\new 2.py ===

                              Voici le lien de l'exemple:

                              https://openclassrooms.com/courses/apprenez-a-programmer-en-python/pas-a-pas-vers-la-modularite-1-2#/id/r-2231655

                              Merci de votre aide 

                              • Partager sur Facebook
                              • Partager sur Twitter
                                27 octobre 2017 à 15:44:13

                                Bonsoir,

                                jai telecharger la version python 3.6.3 Shell, en essayant de vous suivre il ya des choses quine fonctionnent pas je comprend pas pourquoi. en voici un exemple

                                >>> a=15

                                >>> if a <0 :

                                print ('a est negatif')

                                elif a>0:

                                SyntaxError: invalid syntax

                                apres le elif voila le resultat qui s'affiche

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 octobre 2017 à 12:00:19

                                  bonsoir !

                                  svp y a t'il un ide ayant la fonction glisser déposer pour python , comme Qt pour c++ et netbeans pour java

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 novembre 2017 à 12:57:00

                                    Antoine Pellegrin a écrit:

                                    Bonjour,

                                    J'ai un problème avec le chapitre [BONUS] Stockez des citations dans un fichier avec le module json du cours "Démarrez votre projet avec Python"

                                    Quand je lance mon code j'ai le message d’erreur suivant :

                                    Traceback (most recent call last):
                                      File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 50, in <module>
                                        print(message(random_character(), get_random_item(quotes)))
                                      File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 37, in random_character
                                        all_values = read_value_from_json()
                                      File "E:\Openclassrooms\Doc externe python\Générateur de citation\SanAntonio.py", line 22, in read_value_from_json
                                        data = json.load(f)
                                      File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 299, in load
                                        parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
                                      File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
                                        return _default_decoder.decode(s)
                                      File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
                                        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
                                      File "C:\Users\geeki\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 357, in raw_decode
                                        raise JSONDecodeError("Expecting value", s, err.value) from None
                                    json.decoder.JSONDecodeError: Expecting value: line 9 column 1 (char 222)

                                    Et voici le code utilisé

                                    # -*- coding: latin-1 -*-
                                    import random
                                    import json
                                    
                                    quotes = [
                                        "Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !",
                                        "On doit pouvoir choisir entre s'écouter parler et se faire entendre."
                                    ]
                                    
                                    characters = [
                                        "alvin et les Chipmunks",
                                        "Babar",
                                        "betty boop",
                                        "calimero",
                                        "casper",
                                        "le chat potté",
                                        "Kirikou"]
                                    
                                    def read_value_from_json():
                                        values = []
                                        with open("characters.json") as f:
                                            data = json.load(f)
                                            for entry in data:
                                                values.append(entry["character"])
                                            return values
                                    
                                    def get_random_item(my_list):
                                        rand_numb = random.randint(0, len(my_list) - 1)
                                        item = my_list[rand_numb] # get a quote from a list
                                        return item # return the item
                                    
                                    def capitalize(words):
                                        for word in words:
                                            word.capitalize()
                                    
                                    def random_character():
                                        all_values = read_value_from_json()
                                        return random_item_in(all_values)
                                    
                                    def message(character, quote):
                                        capitalize(character)
                                        capitalize(quote)
                                        return "{} a dit : {}".format(character, quote)
                                    
                                    
                                    user_answer = input('Tapez entrée pour connaître une autre citation ou B pour quitter le programme.')
                                    
                                    
                                    while user_answer != "B":
                                        print(message(random_character(), get_random_item(quotes)))
                                        user_answer = input('Tapez entrée pour connaître une autre citation ou B pour quitter le programme.')

                                    Merci d'avance si quelqu'un a la solution

                                    Bonjour, j'ai exactement le même souci, quelqu'un aurait-il une solution s'il vous plaît ?

                                    EDIT:

                                    Tout est ok j'ai trouvé mon erreur.

                                    -
                                    Edité par Nicoluslog 2 novembre 2017 à 13:32:37

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 novembre 2017 à 9:14:03

                                      Bonjour, 

                                       J'ai une question sur le cours "Créez la classe Position".

                                      Je ne comprend pas comment, quand on crée la property longitude, on accède à longitude_degrees ?

                                      @property

                                      def longitude(self):

                                      return self.longitude_degrees * math.pi /180

                                      Comment python sait trouver cette valeur ? 

                                      merci

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        3 novembre 2017 à 9:31:28

                                        Quand tu essaieras d'accéder à l'attribut longitude d'un objet, Python saura que c'est une propriété et exécutera la méthode associée, qui s'occupe de récupérer l'attribut longitude_degrees.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          3 novembre 2017 à 14:24:28

                                          Bonjour,

                                          J'avance progressivement dans le cours "Apprenez à programmer en Python", je suis bloqué par un des exemples qui me renvoie un message d'erreur que je n'arrive pas à debugger.

                                          >>> prenom = "Paul"
                                          >>> nom = "Dupont" 
                                          >>> print("Je m'apelle {0} [1} et j'ai {2} ans.".format(prenom, nom, age)) Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> print("Je m'apelle {0} [1} et j'ai {2} ans.".format(prenom, nom, age)) ValueError: Single '}' encountered in format string

                                          Je suspectai un "pb" avec la variable age, j'ai donc tenté avec

                                          >>> age = "21"

                                          Mais ce n'est toujours pas bon.

                                          Merci par avance pour votre aide.

                                          -
                                          Edité par Anonyme 3 novembre 2017 à 14:25:05

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 novembre 2017 à 14:59:05

                                            ok merci pour la réponse entwanne

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              4 novembre 2017 à 17:48:44

                                              @ entwanne

                                              Mais comment j'ai pu louper un truc aussi énorme. :-(

                                              Merci beaucoup.





                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 novembre 2017 à 18:25:14

                                                Bonjours! Ceci est très urgent! (avant ce soir 23h)

                                                Il s'agit d'un exercice permettant de réviser les tables de multiplication. On choisit le nombres de questions, on répond, et ça nous dit si c'est vrai ou faux avec la correction. A la fin il y a le temps mis pour faire l'exercice complet. Cependant j'aimerai mettre un temps limité pour répondre à chaque question. Help !!!:)

                                                import random as r
                                                n=int(input('Combien de questions voulez vous?'))
                                                Score=0
                                                import time
                                                debut=time.clock()
                                                for k in range(0,n):
                                                    print()
                                                    print()
                                                    a=r.randrange(1,10)
                                                    b=r.randrange(1,10)
                                                    z=a*b
                                                    print(a,'x',b)
                                                    reponse=int(input('Votre réponse = '))
                                                    if reponse==z:
                                                        v=True
                                                        Score= Score + 1
                                                        print()
                                                        m=input('Voulez vous le corigé?')
                                                        if m=='oui':
                                                            print(v)
                                                            print('Corrigé: Réponse = ',z)
                                                    else:
                                                        f=False
                                                        print()
                                                        m=input('Voulez vous le corigé?')
                                                        if m=='oui':
                                                            print(f)
                                                            print('Corrigé: Réponse = ',z)
                                                print()
                                                print('Score = ',Score,'/',n)
                                                fin=time.clock()
                                                duree=fin
                                                print('Temps pour faire ensemble des questions =',duree,'sec')





                                                -
                                                Edité par BenoîtRoué 4 novembre 2017 à 20:52:31

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 novembre 2017 à 16:33:15

                                                  Bonjour, 

                                                  je dois établir un programme de devinette de nombre, mais je suis bloqué sur certains points, pourriez vous m'aider ? 

                                                  Merci bien.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    5 novembre 2017 à 17:44:44

                                                    Bonjour,

                                                    Il faudrait mettre ton input (ou en remettre un) dans ta boucle while.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      6 novembre 2017 à 1:52:58

                                                      bonjour;

                                                            Dans la correction du exercice ZCASINO a la fin  on teste seulement s'il veut quitter il tape "o" ou "O" mais pas le reste.

                                                      normalement utilisateur doit taper "n" ou "N" pour rejouer  . mais dans cette solution qu'il tape k ou f ou ...etc. le programme recommence par défaut il ne prend pas en considération une erreur de saisie de la part de l'utilisateur. est-ce-que c'est normale ?

                                                      bien a vous

                                                      saad allalouche

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        6 novembre 2017 à 12:28:05

                                                        Dans ce cas précis, ça ne sert à rien de restreindre la saisie utilisateur s'il veut rejouer. La seule chose qu'on lui demande, c'est d'être précis s'il veut quitter le jeu. Pour le reste, qu'il tape "n", "non", "j'ai envie de continuer, merci bien" ou encore "", ça sera interprété comme une volonté du joueur de vouloir continuer le jeu.

                                                        Après libre à toi de rajouter la condition si tu la juges importante (après tout ce n'est qu'un exemple de correction) ;)

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Précepte: Le mieux est l'ennemi du bien
                                                          6 novembre 2017 à 15:02:40

                                                          Olygrim a écrit:

                                                          Dans ce cas précis, ça ne sert à rien de restreindre la saisie utilisateur s'il veut rejouer. La seule chose qu'on lui demande, c'est d'être précis s'il veut quitter le jeu. Pour le reste, qu'il tape "n", "non", "j'ai envie de continuer, merci bien" ou encore "", ça sera interprété comme une volonté du joueur de vouloir continuer le jeu.

                                                          Après libre à toi de rajouter la condition si tu la juges importante (après tout ce n'est qu'un exemple de correction) ;)

                                                          d'accord d'accord comme vous dite c'est qu'un exercice.  l'important est de bien comprendre le tout ;);)



                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            8 novembre 2017 à 18:03:47

                                                            Bonjour,

                                                            Je suis dans un exercice sur les listes et tuples et je suis bloqué sur un élément (ligne 17 et 18)

                                                            def afficher(*parametres, sep=' ', fin='\n'):
                                                                """Fonction chargée de reproduire le comportement de print.
                                                                
                                                                Elle doit finir par faire appel à print pour afficher le résultat.
                                                                Mais les paramètres devront déjà avoir été formatés. 
                                                                On doit passer à print une unique chaîne, en lui spécifiant de ne rien mettre à la fin :
                                                            
                                                                print(chaine, end='')"""
                                                                
                                                                # Les paramètres sont sous la forme d'un tuple
                                                                # Or on a besoin de les convertir
                                                                # Mais on ne peut pas modifier un tuple
                                                                # On a plusieurs possibilités, ici je choisis de convertir le tuple en liste
                                                                parametres = list(parametres)
                                                                # On va commencer par convertir toutes les valeurs en chaîne
                                                                # Sinon on va avoir quelques problèmes lors du join
                                                                for i, parametre in enumerate(parametres):
                                                                    parametres[i] = str(parametre)
                                                                # La liste des paramètres ne contient plus que des chaînes de caractères
                                                                # À présent on va constituer la chaîne finale
                                                                chaine = sep.join(parametres)
                                                                # On ajoute le paramètre fin à la fin de la chaîne
                                                                chaine += fin
                                                                # On affiche l'ensemble
                                                                print(chaine, end='')

                                                            Pourquoi un [i] ? D'où il vient ? A quoi il sert ?

                                                            2e question, même page (oui, elle me pose des sacrés problèmes ^^)

                                                            # On change le sens de l'inventaire, la quantité avant le nom
                                                            inventaire_inverse = [(qtt, nom_fruit) for nom_fruit,qtt in inventaire]
                                                            # On n'a plus qu'à trier dans l'ordre décroissant l'inventaire inversé
                                                            # On reconstitue l'inventaire trié
                                                            inventaire = [(nom_fruit, qtt) for qtt,nom_fruit in sorted(inventaire_inverse, \
                                                                reverse=True)]

                                                            Quel est ce "reverse=True" ? (dernière ligne)




                                                            Merci d'avance.

                                                            -
                                                            Edité par JeanMarc33 8 novembre 2017 à 18:15:15

                                                            • 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