Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    27 juillet 2021 à 11:13:41

    ParfaitTolefo a écrit:

    Svp, je suis un débutant en en programmation langage python..

    Je veux compter le nombre d'occurrence des voyelles dans une phrase saisie par l'utilisateur, aidez moi..

    A la saisie d'un mot , je reçois l'erreur NameError


    Créer ton sujet directement dans la rubrique python et mets y ton code avec le bouton </>

    Mais le Name Error, c'est souvent quand tu essais de faire une opération sur une variable qui n'a pas été initialisée/déclarée avant

    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2021 à 21:39:52

      phrase = input("Tapez une phrase : ")
      
      compteur = 0
      
      for i in range (len(phrase)):
          if phrase[i] in "aàeéèêiîoôuùûyAEIOUY":
              compteur += 1
      
      print ("Dans cette phrase, il y a", str(compteur), "voyelles.")
      



      -
      Edité par chrisblues59 31 juillet 2021 à 0:58:25

      • Partager sur Facebook
      • Partager sur Twitter
        31 juillet 2021 à 5:05:47

        phrase = input("Tapez une phrase ")
        compteur = sum(1 for c in phrase if c in "aàâeéèêëîïoôùûyAÀÂEÉÈÊËÎÏOÔÙÛY")
        print("Dans cette phrase, il y a", compteur, "voyelles.")
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          31 juillet 2021 à 14:16:11

          Encore mieux ! :lol:

          Mais il manque le "i", le "u", le "I" et le "U" ! (LOL)

          -
          Edité par chrisblues59 31 juillet 2021 à 14:26:07

          • Partager sur Facebook
          • Partager sur Twitter
            31 juillet 2021 à 15:02:20

            Bien vu. Je les ai oublié.
            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              2 août 2021 à 2:44:12

              On peut faire mieux (ou pire ...)
              print("Dans cette phrase, il y a", sum(1 for c in input("Tapez une phrase") if c in "aàâeéèêëiîïoôuùûyAÀÂEÉÈÊËIÎÏOÔUÙÛY"), "voyelles.")
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                2 août 2021 à 13:48:26

                Incroyable ! Fallait le trouver !

                Et comment Python peut-il ne pas s'y perdre dans ce code ?

                -
                Edité par chrisblues59 2 août 2021 à 13:49:02

                • Partager sur Facebook
                • Partager sur Twitter
                  2 août 2021 à 14:14:08

                  from unicodedata import normalize
                  
                  VOWELS = frozenset("AEIOUYaeiouy")
                  
                  def count_vowels(text):
                      text = normalize("NFD", text).encode("ascii", "ignore").decode()
                      return sum(char in VOWELS for char in text)
                  Un booléen se comporte comme un entier en Python. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 août 2021 à 1:08:37

                    Oui, c'est exact, belle performance.

                    Mais là, c'est complètement incompréhensible pour moi !

                    -
                    Edité par chrisblues59 3 août 2021 à 1:09:25

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 août 2021 à 1:32:56

                      La fonction normalizechange la norm Unicode de la chaîne text. Le but est de décomposer les accents ou autre fioriture non-ascii du caractère ascii associé (quand c'est possible) :
                      >>> s = "é à ẑ ç"
                      >>> x = normalize("NFD", s)
                      >>> 
                      >>> s, x
                      ('é à ẑ ç', 'é à ẑ ç')
                      >>> 
                      >>> s.encode() # UTF-8
                      b'\xc3\xa9 \xc3\xa0 \xe1\xba\x91 \xc3\xa7'
                      >>> x.encode() # Unicode décomposé
                      b'e\xcc\x81 a\xcc\x80 z\xcc\x82 c\xcc\xa7'
                      >>> 
                      >>> s.encode("ascii", "ignore")
                      b'   '
                      >>> x.encode("ascii", "ignore")
                      b'e a z c'
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 août 2021 à 1:13:15

                        Je crois comprendre que la phrase est débarrassée des accents et autres cédilles pour, ainsi, ne compter que des voyelles toutes simples : c'est ça ? 

                        Je vais mettre ça (précieusement) de côté, car ce n'est pas (encore) de mon niveau. Mais j'y reviendrai à coup sûr.

                        D'où vient ce "z" avec un accent circonflexe ?

                        2e question : que signifie le b' ?

                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 août 2021 à 1:44:40

                          chrisblues59 a écrit:

                          Je crois comprendre que la phrase est débarrassée des accents et autres cédilles pour, ainsi, ne compter que des voyelles toutes simples : c'est ça ? 

                          Oui.

                          Je vais mettre ça (précieusement) de côté, car ce n'est pas (encore) de mon niveau. Mais j'y reviendrai à coup sûr.

                          C'est juste une question de connaissance de l'Unicode. Et c'est très spécifique, alors peu se soucient des détails.

                          D'où vient ce "z" avec un accent circonflexe ?

                          De mon clavier... Mais il est possible de faire des choses encore plus étrange avec Unicode :

                          print(b"T\xcc\x88\xcc\xa7".decode())

                          2e question : que signifie le b' ?

                          C'est le préfixe de la représentation d'une chaîne d'octets (type bytes)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 août 2021 à 9:44:36

                            .H.D.1. a écrit:

                            De mon clavier... Mais il est possible de faire des choses encore plus étrange avec Unicode :

                            print(b"T\xcc\x88\xcc\xa7".decode())

                            Ou dit autrement, print('T\u0308\u0327').

                            -
                            Edité par entwanne 4 août 2021 à 9:45:05

                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 août 2021 à 12:19:04

                              échec de la manip chez moi :lol: ; dans mon interpréteur python:

                              >>> print(b"T\xcc\x88\xcc\xa7".decode())
                              T¨.


                              mais si je le copie ici Ţ̈

                              -
                              Edité par umfred 4 août 2021 à 12:19:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 août 2021 à 14:57:00

                                Bonjour, 

                                je débute en programmation. Histoire de mettre en pratique ce que j'ai appris, j'ai réalisé le jeu pierre, papier, ciseaux.

                                J'ai un doute sur la fonction comparateur et résultat . Je pense que mon idée est assez foireuse

                                #coding: utf-8
                                
                                
                                loose = 0
                                win = 1
                                
                                
                                
                                def comparator (user,computer):
                                	if user != computer:
                                
                                		if user == "pierre" and computer == "papier" :
                                			return loose
                                
                                		elif user == "papier" and computer == "ciseaux" :
                                			return loose
                                
                                		elif user =="ciseaux" and computer == "pierre" :
                                			 return loose
                                
                                
                                		elif user== "papier" and computer == "pierre" :
                                			return win
                                
                                		elif user == "pierre" and computer == "ciseaux":
                                			return win
                                
                                		elif user == "ciseaux" and computer == "papier":
                                			return win
                                	else:
                                		pass
                                		
                                
                                
                                def resultat (match):
                                	if match == 1:
                                		print("Gagné ! vous remportez le tour")
                                		print("")
                                		return win
                                		
                                
                                	elif match == 0:
                                		print("Dommage ! Vous perdez le tour")
                                		print("")
                                		return loose
                                
                                	else:
                                		print("Egalité ! Les grands esprits se rencontrent ")
                                		print("")
                                



                                Il reste beaucoup de chose à améliorer. Je suis preneuse de piste pour m'aider à faire évoluer un peu plus mon code.

                                :) 

                                #coding: utf-8
                                """ 
                                Règles du jeux:
                                1 demander à l'utilisateur.ice son choix
                                2 le comparer au choix de l'ordi
                                3 dire qui a gagné
                                4 ajouter le point au score total
                                """
                                
                                
                                #Importations des modules
                                import fonctions.interface
                                import fonctions.aleatoire
                                import fonctions.check
                                import fonctions.control
                                
                                # Initation des variables
                                collection_coups = ("pierre","papier","ciseaux") 
                                tour = 4
                                score_user = 0
                                score_computer = 0 
                                
                                
                                #affichage des règels
                                fonctions.interface.affichage_rule()
                                
                                
                                while tour > 0:
                                
                                	fonctions.interface.affichage_score(tour,score_user,score_computer)
                                
                                	fonctions.interface.screen_space()
                                
                                # faire un controle si jamais l'utilisateur.ice ne rentre pas le bon mot + entrée coup utilisateur.ice
                                	user_choice =  fonctions.control.user_control(collection_coups) 
                                
                                #choix du coup aléatoire de l'ordi
                                	coups = fonctions.aleatoire.select_random(collection_coups) 
                                
                                #lancement de la partie
                                	match = fonctions.check.comparator(user_choice,coups) 
                                	
                                	fonctions.interface.screen_space()
                                
                                #dire qui gagne et qui perd
                                	result = fonctions.check.resultat(match)
                                
                                #scores
                                	if match == 1:
                                		score_user += 1
                                	elif match == 0:
                                		score_computer += 1
                                
                                #decompte des tours		
                                	tour -= 1
                                
                                	if tour == 0:
                                		print ("Fin de la partie. ")
                                		print("")
                                
                                		if score_user > score_computer:
                                			print (" Féliciation,vous remportez le match à :",score_user,"contre",score_computer)	
                                		elif score_user < score_computer:
                                			print("Dommage, vous perdez le macth à :", score_user,"contre", score_computer)
                                		else:
                                			print("Ni gagnant.e ni  perdant.e. ")
                                			print("score final :",score_user, "-", score_computer)
                                		print("merci d'avoir joué à mon petit jeu  ")
                                
                                
                                
                                	
                                

                                -
                                Edité par Polyne 5 août 2021 à 15:02:01

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 août 2021 à 15:21:10

                                  Ce jeu est classique et les gens le codent d'une façon classique ...
                                  Quand l'ordinateur et le joueur sont identiques, tu n'as pas besoin de savoir ce que c'est.
                                  On peuttester plusieurs conditions sur une ligne:
                                  if (condition1) or (condition2) or (condition3):
                                  ça devrait réduire ton code sur un point ...
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Le Tout est souvent plus grand que la somme de ses parties.

                                    9 août 2021 à 15:28:08

                                    Traceback (most recent call last):
                                    
                                      File "D:/Mes documents/_Python/Travaux personnels/Chi Fou Mi.py", line 62, in <module>
                                    
                                        import fonctions.interface
                                    
                                    ModuleNotFoundError: No module named 'fonctions'
                                    J'ai voulu voir ton jeu, mais au lancement, j'ai ce message d'erreur.

                                    -
                                    Edité par chrisblues59 9 août 2021 à 18:39:02

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      9 août 2021 à 17:23:19 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                        9 août 2021 à 18:43:17

                                        J'ai voulu voir ton jeu, mais j'ai obtenu ce message d'erreur :

                                        Traceback (most recent call last):
                                          File "D:\Mes documents\_Python\Travaux personnels\Chi Fou Mi.py", line 62, in <module>
                                            import fonctions.interface
                                        ModuleNotFoundError: No module named 'fonctions'



                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          10 août 2021 à 13:31:43

                                          Oh ! Ben oui, évidemment... Hé hé !

                                          Ok... Merci de me le dire :-°

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            10 août 2021 à 15:12:51

                                            Bonjour, 

                                            Je suis le cours "Apprenez les bases du language Python", et actuellement je suis bloqué à un exo dans la partie "Chargez des données avec Python".

                                            Exo : https://openclassrooms.com/fr/courses/7168871-apprenez-les-bases-du-langage-python/7300396-chargez-des-donnees-avec-python#/id/r-7300518

                                            Dans cet exo, je dois crée un fichier output.csv puis le présentez sous un certain format, mon problème est que j'arrive à crée le fichier puis mettre les données demandé à l'intérieur. Cependant je n'arrive pas à multiplier par 15 "heures_travaillees", pour ensuite l'affiché dans output.csv.

                                            Je vous met mon code ci dessous, cela doit être une erreur très bête et je m'en excuse en avance et je vous remercie pour l'aide futur apporté !

                                            Code :

                                            import csv
                                            
                                            en_tete = ["nom", "salaire"]
                                            
                                            
                                            
                                            with open('input.csv', 'r') as input_csv, open('output.csv', 'w') as fichier_csv:
                                            
                                                reader = csv.DictReader(input_csv, delimiter=',')
                                            
                                                writer = csv.DictWriter(fichier_csv, fieldnames=en_tete, delimiter=',')
                                            
                                                writer.writeheader()
                                            
                                            
                                            
                                                for ligne in reader:
                                            
                                                    print(ligne)
                                            
                                                    #salaire_final = [i * 15 for i in ligne['heures_travaillees']]
                                            
                                                    writer.writerow({'nom': ligne['nom'], 'salaire': ligne['heures_travaillees']})
                                            
                                                    #print(salaire_final)

                                            -
                                            Edité par Youcef Bouchelleghem 10 août 2021 à 15:49:34

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              10 août 2021 à 15:33:03

                                              Quelle est l'erreur obtenue ? À première vue je dirais que c'est une erreur de type puisqu'un fichier CSV ne contient que des champs texte, qu'il faudra convertir vers les types voulus pour les manipuler comme tels.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                10 août 2021 à 15:43:14

                                                Le problème est que je n'arrive pas à multiplier les valeurs de 'heures_travaillees' par 15, quand je tente de la multiplier cela me répète juste les valeurs 15 fois. Et je n'arrive pas à trouvé une solution, j'ai tenté différente boucle, ou différente approche.

                                                Je n'obtient aucune erreur sur le terminal, c'est juste personnellement, je n'arrive pas à conclure cet exo.

                                                -
                                                Edité par Youcef Bouchelleghem 10 août 2021 à 15:53:44

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  10 août 2021 à 16:15:53

                                                  D'accord donc c'est bien ce que je suspectais : une erreur de type. Il faut donc convertir les valeurs en nombres pour les traiter comme des nombres.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    10 août 2021 à 16:26:46

                                                    OK, merci pour l'indication, je vais essayer de trouvé une solution grâce à ce que tu m'as dit !
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      10 août 2021 à 20:23:11

                                                      Youcef Bouchelleghem a écrit:

                                                      OK, merci pour l'indication, je vais essayer de trouvé une solution grâce à ce que tu m'as dit !


                                                      Tu peux également t'inspirer de cette autre discussion ici
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        20 août 2021 à 9:25:43

                                                        https://openclassrooms.com/fr/courses/4425111-perfectionnez-vous-en-python/4463445-organisez-un-projet-en-modules#/id/r-7209397

                                                        Bonjour, je ne parviens pas à réaliser cette opération dans le cours "Perfectionnez-vous en Python", pouvez-vous m'aider ? 
                                                        Je suis sur Mac ! 

                                                        Merci :)

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          31 août 2021 à 9:21:00

                                                          l'équivalent mac pour concaténer les fichier (ce que fait la manip décrite) c'est 

                                                          cat *.xml >> SyceronBrut.xml



                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            7 septembre 2021 à 11:10:00

                                                            Bonjour

                                                            je suis actuellement le cours"apprenez les bases du langage de python".Je suis confrontée à l'exercice " Enregistrez des données complexes avec des dictionnaires. J'ai bien repondu aux deux premières questions mais le problème se trouve aux deux dernières questions.Voici mon code. Selon la console , mes deux dernières réponses ne sont pas justes. Voici mon code.

                                                            # 1) Créez une variable de type dictionnaire appelée "chaussure"
                                                            chaussure = {}
                                                            """ 2) Ajoutez les éléments suivants dans le dictionnaire :
                                                               - clef "taille" avec la valeur 42
                                                               
                                                               - clef "marque" avec la valeur "Nike"
                                                               chaussure["marque"]:"Nike"
                                                               - clef "race" avec la valeur "berger-allemand"
                                                            """
                                                            chaussure["taille"] : 42
                                                            chaussure["marque"] : "Nike"
                                                            chaussure["race"]  : "berger-allemand"
                                                            
                                                            # 3) On s'est trompés ! Supprimez la clef "race" du dictionnaire 
                                                            del chaussure["race"]
                                                            # 4) Récupérez la taille de la chaussure dans une variable appelée "taille"
                                                            taille =len(chaussure)
                                                            print(f"La taille de la chaussure est {taille}")  # 42 normalement !
                                                            
                                                            • 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