Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    25 janvier 2023 à 18:11:23

    pourquoi t'embêter à décrire comment tu as écrit ton code, plutôt que de mettre ton code directement ici ? 

    pour dire j'ai initialisé une variable à 21, j'ai fais une boucle while qui n'est pas égale à  21, ..

    beaucoup moins parlant que par exemple:

    max=21
    de=0
    while de < max:
       de=de+1
       print(de)
    



    • Partager sur Facebook
    • Partager sur Twitter
      25 janvier 2023 à 18:37:35

      LolaLutani a écrit:
      > le seul problème c’est vraiment la partie de ses lances qui doit être additionné et ne pas dépasser 21
      Tu simules un jeu de hasard. Ou bien tu vérifies que tu as dépassé 21, ou bien tu prend la chance d'arrêter avant.
      Et l'ordi lui? Quelle serait sa stratégie?


      • Partager sur Facebook
      • Partager sur Twitter

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

        25 janvier 2023 à 18:43:52

        le joueur doit tirer le nombre de fois qui veut le dès et je dois lui donner la somme des dés. Et si il a pas dépassé 21 je lui propose si il veut relancer le dés. a la fin je dis si le joueur a gagné face à l’ordinateur ou non. le premier qui dépasse 21 a perdu. ou sinon il a match nul
        • Partager sur Facebook
        • Partager sur Twitter
          26 janvier 2023 à 1:21:43

          Je propose le code suivant dans lequel l'ordinateur a une mini-stratégie.
          Il se peut qu'il décide de ne pas jouer un certain nombre de fois. On aura l'impression d'une boucle infinie, mais il n'en est rien ...
          -
          from random import randint, choices
          joueur = 0
          ordi = 0
          # Je force un des deux à atteindre ou dépasser 21.
          while joueur < 21 and ordi < 21:
              # J'affiche seulement si nécessaire.
              if joueur > 15 and ordi > 15:
                  print("Tu as un total de", joueur, " L'ordinateur a un total de", ordi)
             # Je demande au joueur de relancer s'il est près de 21.
              if joueur > 15:
                  print("Veux-tu relancer? ('o' pour 'oui')")
                  if input().lower()[0] == 'o':
                      joueur += randint(1, 6)
              else:
                  joueur += randint(1, 6)
              # L'ordi prend la chance de jouer s'il est près de 21.
              if ordi > 15:
                  # Plus il est loin, plus il prend la chance.
                  if choices((True, False), (21-ordi, ordi-15))[0]:
                      ordi += randint(1, 6)
              else:
                  ordi += randint(1, 6)
          # Résultat final.
          print("Tu as un total de", joueur, "L'ordinateur a un total de", ordi)
          if joueur > 21 and ordi > 21:
              print("Les deux perdent")
          elif ordi > 21:
              print("Tu gagnes")
          elif joueur > 21:
             print("L'ordinateur gagne")
          elif joueur > ordi:
              print("Tu gagnes")
          elif ordi > joueur:
             print("L'ordinateur gagne")
          else:
             print("C'est égal")
          • Partager sur Facebook
          • Partager sur Twitter

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

            14 mai 2023 à 0:38:29 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


              26 mai 2023 à 23:50:45

              Bonsoir tous le monde, 

              Arrivant à la fin de la deuxième partie ( lien). le mentor de la classe à proposer un code de récapitulation, quand j'ai essayé le code sur PyCharm ça fonctionne pas !

              def print_welcome_message():
                  print("Bienvenue sur la mini-calculatrice !")
              
              
              def input_two_number():
                  num1 = float(input("Entrez le premier nombre : "))
                  num2 = float(input("Entrez le deuxième nombre : "))
                  return num1, num2
              
              
              def print_menu_and_get_choice():
                  print("=== MENU ===")
                  print("1. Addition")
                  print("2. Soustraction")
                  print("3. Multiplication")
                  print("4. Division")
              
                  user_choice = input("Entrez votre choix (1-4) : ")
              
                  while user_choice not in ["1", "2", "3", "4"]:
                      user_choice = input("Choix invalide. Entrez votre choix (1-4) : ")
              
                  return user_choice
              
              
              def sum(a, b):
                  return a + b
              
              
              def substraction(a, b):
                  return a - b
              
              
              def multiplication(a, b):
                  return a * b
              
              
              def division(a, b):
                  if b != 0:
                      return a / b
                  else:
                      print("Erreur : division par zéro")
              
              def run_calcul():
                  num1, num2 = input_two_number()
                  match user_choice:
                      case '1':
                          result = sum(num1,num2)
                      case '2':
                          result = substraction(num1, num2)
                      case '3':
                          result= multiplication(num1,num2)
                      case '4':
                          result= division(num1,num2)
                      case _:
                          print("Choix invalide")
                  return result
              
              if __name__ == '__main__':
                  print_welcome_message()
                  user_choice = print_menu_and_get_choice()
                  result = run_calcul(user_choice)
                  print(result)

              L'erreur se trouve dans le fonction run_calcul, mais je ne sais pas c'est quoi l'erreur exactement. 

              Merci 
               

              • Partager sur Facebook
              • Partager sur Twitter
                27 mai 2023 à 1:24:10

                Est-ce que ton erreur ressemble à ceci:
                Traceback (most recent call last):                                                                                      
                  File "C:\Users\Administrateur\Documents\Sources\aa.py", line 62, in <module>                                          
                    result = run_calcul(user_choice)                                                                                    
                TypeError: run_calcul() takes 0 positional arguments but 1 was given                                                     
                Tu appelles la fonction avec un argument mais tu la définis sans argument.
                Ajoutes  user_choice  comme argument.

                Pour la division par 0, je te suggère de retourner 0 ou la valeur float('inf') qui représente l'infini.

                -
                Edité par PierrotLeFou 27 mai 2023 à 1:30:55

                • Partager sur Facebook
                • Partager sur Twitter

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

                  28 mai 2023 à 22:12:54

                  PierrotLeFou a écrit:

                  Est-ce que ton erreur ressemble à ceci:
                  Traceback (most recent call last):                                                                                      
                    File "C:\Users\Administrateur\Documents\Sources\aa.py", line 62, in <module>                                          
                      result = run_calcul(user_choice)                                                                                    
                  TypeError: run_calcul() takes 0 positional arguments but 1 was given                                                     
                  Tu appelles la fonction avec un argument mais tu la définis sans argument.
                  Ajoutes  user_choice  comme argument.

                  Pour la division par 0, je te suggère de retourner 0 ou la valeur float('inf') qui représente l'infini.

                  -
                  Edité par PierrotLeFou hier à 1:30-

                  -----------------------------

                  Non, plutôt ça : 

                  /Users/**/PycharmProjects/OpenClassroom_base_python/venv/bin/python /Users/**/PycharmProjects/OpenClassroom_base_python/boucles/Calculatrice.py
                    File "/Users/**/PycharmProjects/OpenClassroom_base_python/boucles/Calculatrice.py", line 46
                      match user_choice:
                                      ^
                  SyntaxError: invalid syntax
                  
                  Process finished with exit code 1
                  





                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 mai 2023 à 1:11:08

                    Quelle est ta version de Python? Les vieilles versions de Python ne supportent pas la commande match.
                    Je suis sur Python 3.10.7 et ton code marche chez moi (après les corrections mentionnées).
                    • Partager sur Facebook
                    • Partager sur Twitter

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

                      31 mai 2023 à 8:01:05

                      Oui ça vient du mot-clé match (filtrage par motif) qui a été introduit en Python 3.10. Si tu utilises une version inférieure il est normal que tu rencontres une erreur de syntaxe. Ensuite tu auras effectivement à traiter l'erreur pointée par PierrotLeFou où tu oublies de déclarer le paramètre de ta fonction.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 juin 2023 à 19:03:52 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour inséré un code sur le forum


                          6 juillet 2023 à 18:25:16

                          Bonsoir, Je suis actuellement le cours sur les bases du langage Python. Mais je n'arrive pas à accéder aux exercices sur la plateforme Replit, pourtant j'ai bien un compte et je fais bien parti de la Team OpenClassroom. Lorsque je clique sur les liens de la section "A vous de jouer", j'attéris sur Replit avec un fichier main.py vide. J'aimerais bien être guidée afin de pouvoir avoir accès aux exercices. Merci.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 juillet 2023 à 15:41:58

                            Bonjour,

                            Y a t'il les corrections des exercices Replit du cours sur les bases du langage Python ?

                            Merci

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 juillet 2023 à 21:56:42

                              Bonjour a tous, j'aurais besoin d'explication concernant l'exercice du chapitre " Controlez le déroulement de votre programme avec des conditions". J'ai construit mon code sur mycharm sur lequel il fonctionne bien, mais une fois sur replit, mon code ne remplit pas les conditions du test, la seule condition est le message d'erreur concernant la division par zero.

                              nombre_a_gauche = input("Entrer votre premiere valeur :")
                              nombre_a_droite = input("Entrer votre deuxieme valeur : ")
                              operation = input("Entrer votre operateur : ")
                              
                              resultat = 0
                              
                              x = nombre_a_gauche.isnumeric()
                              y = nombre_a_droite.isnumeric()
                              
                              if (x == False) and (y == False) :
                                print("Erreur: les deux nombres doivent être des nombres entiers")
                              
                              else :
                                match operation:
                                  case "+":
                                    resultat = nombre_a_gauche + nombre_a_droite
                              
                                  case "-":
                                    resultat = nombre_a_gauche - nombre_a_droite
                              
                                  case "*" :
                                    resultat = nombre_a_gauche * nombre_a_droite
                              
                                  case "/" :
                                    if (nombre_a_droite ==0) :
                                      print("Erreur: impossible de diviser par zéro.")
                              
                                      exit()
                                    else :
                                      resultat = nombre_a_gauche/nombre_a_droite
                              
                              
                              print(f" Le résultat de l'opération est :{resultat}")
                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 juillet 2023 à 1:51:11

                                Tu es certain que ça marchait quelque part?
                                Tu joues avec des caractères alors que tu devrais convertir en entier (int).
                                Ligne 10:
                                c'est une erreur si le premier OU le second n'est pas un nombre.
                                Après conversion et correction, ça marchera.
                                • Partager sur Facebook
                                • Partager sur Twitter

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

                                  26 juillet 2023 à 12:55:02

                                  pour compléter: "0" n'est pas 0

                                  >>> "0"==0
                                  False
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    26 juillet 2023 à 17:54:01

                                    Hey ^^ Merci d'avance :p

                                    Lola Heselmann a écrit:

                                    Bonjour,

                                    Y a t'il les corrections des exercices Replit du cours sur les bases du langage Python ?

                                    Merci



                                    -
                                    Edité par Lola Heselmann 26 juillet 2023 à 17:54:39

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      27 juillet 2023 à 10:48:24

                                      Lola Heselmann a écrit:

                                      Hey ^^ Merci d'avance :p

                                      Lola Heselmann a écrit:

                                      Bonjour,

                                      Y a t'il les corrections des exercices Replit du cours sur les bases du langage Python ?

                                      Merci



                                      -
                                      Edité par Lola Heselmann il y a environ 16 heures


                                      Je crois que les Replit ne sont plus dispo. Edit: en fait si si on prend le lire le début du cours ^^ (je pense que tu peux soumettre le code via le bouton submit et attendre de voir on te répond)

                                      Après, tu peux poster l'exercice sur le forum avec ton code et nous demander notre avis.

                                      -
                                      Edité par umfred 27 juillet 2023 à 11:08:28

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        27 juillet 2023 à 22:53:05

                                        umfred a écrit:

                                        Lola Heselmann a écrit:

                                        Hey ^^ Merci d'avance :p

                                        Lola Heselmann a écrit:

                                        Bonjour,

                                        Y a t'il les corrections des exercices Replit du cours sur les bases du langage Python ?

                                        Merci



                                        -
                                        Edité par Lola Heselmann il y a environ 16 heures


                                        Je crois que les Replit ne sont plus dispo. Edit: en fait si si on prend le lire le début du cours ^^ (je pense que tu peux soumettre le code via le bouton submit et attendre de voir on te répond)

                                        Après, tu peux poster l'exercice sur le forum avec ton code et nous demander notre avis.

                                        -
                                        Edité par umfred il y a environ 11 heures


                                        Merci de proposer votre aide, mais malheureusement certains exercices de la 3ème partie du cours nécessitent un fichier csv... qui n'est donné nulle part! Donc, au-delà du fait que les corrections ne sont pas proposées, il y a certains exercices qu'on ne peut tout bonnement pas faire du tout. Vivement que ce soit réglé! Et heureusement que dans d'autres cours de Python du site, Replit n'est pas utilisé, et il n'y a pas tous ces soucis.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          28 juillet 2023 à 1:16:18

                                          Tu pourrais essayer de créer tes propres fichiers en format CSV. Voici ce format:


                                          https://docs.fileformat.com/fr/spreadsheet/csv/


                                          Commence par des fichiers simples avec deux ou trois champs et peu de lignes de data.

                                          • Partager sur Facebook
                                          • Partager sur Twitter

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

                                            28 juillet 2023 à 13:26:52

                                            Salsififi a écrit:

                                            Merci de proposer votre aide, mais malheureusement certains exercices de la 3ème partie du cours nécessitent un fichier csv... qui n'est donné nulle part! Donc, au-delà du fait que les corrections ne sont pas proposées, il y a certains exercices qu'on ne peut tout bonnement pas faire du tout. Vivement que ce soit réglé! Et heureusement que dans d'autres cours de Python du site, Replit n'est pas utilisé, et il n'y a pas tous ces soucis.


                                            Le fichier doit être intégré au Replit, sur la gauche, on doit voir la liste des fichiers  main.py, etc

                                            -
                                            Edité par umfred 28 juillet 2023 à 13:31:42

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              28 juillet 2023 à 15:21:38

                                              Bonjour,

                                              Est-ce que quelqu'un sait si c'est normal de ne pas avoir la correction lorsqu'on clique sur Submit dans Replit ? 

                                              Sur l'exercice des boucles : pas de problème, mais sur l'exercice des fonctions, que dalle à part un message qui ne veut rien dire : "Note: Your submission is past the due date and will be marked late."
                                               

                                              Par avance merci :)

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                28 juillet 2023 à 20:46:52

                                                umfred a écrit:

                                                Le fichier doit être intégré au Replit, sur la gauche, on doit voir la liste des fichiers  main.py, etc

                                                Edité par umfred il y a environ 7 heures

                                                Bonjour, théoriquement oui, mais dans les faits il n'y est pas...
                                                capture_ecran-replit

                                                -
                                                Edité par Salsififi 28 juillet 2023 à 20:49:41

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  29 juillet 2023 à 20:35:26

                                                  Bonjour à tous j'aurais besoin d'un éclaircissement concernant l'exercice 1 "Importez des packages Python".

                                                  Les test des fonction 'Addition" et 'Multiplcation" se valident, cependant le test de la fonction main ne se valide pas.

                                                  A suivre à la lettre les instructions de l'exercice j'aboutis a ce code pour le fichier main,

                                                  from operations import addition, multiplication
                                                  
                                                  
                                                  def main():
                                                  
                                                    resultat = addition(3,5)
                                                    print(resultat)
                                                    resultat = multiplication(2,8)
                                                    print(resultat)
                                                  
                                                  main()

                                                  j'ai essayé différentes manieres d'importer le module "operations", juste import nom_module en debut de code, puis j'ai fait le rappel du nom du module juste avant la fonction, ou aussi bien from module import * ( bien que déconseillé). Et dans ces cas là, les test additions et multiplications n'étaient plus validés.  Du coup j'ai opté pour la syntaxe qui est dans le code précedent.

                                                  Aprés concernant la fonction main, j'ai essayé différentes facon, je pensais qu'il fallait mettre des arguments à la fonction main qui serviraient aux fonctions addition et multiplication mais rien ni fait.  Tout comme l'appel qu'il demande comme dernière instruction du test. 

                                                  Merci d'avance

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    30 juillet 2023 à 1:56:10

                                                    Je veux bien te croire quand tu dis que les fonctions addition et multiplication fonctionnent.
                                                    D'après moi, tu n'as pas donné le bon nom à ce module.
                                                    Le fichier contenant tes fonctions devrait s'appeler  operations.py  avec le suffixe ".py"

                                                    P.S. On joue un peu aux devinettes sans les messages d'erreur.

                                                    -
                                                    Edité par PierrotLeFou 30 juillet 2023 à 1:59:46

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

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

                                                      30 juillet 2023 à 15:15:40

                                                      Bjr, les fonctions addition et multiplication sont bien dans un fichier dénommé "operations.py", voici le code du fichier operations :

                                                      def addition(a, b):
                                                        c = a + b
                                                        return c
                                                      
                                                      
                                                      def multiplication(a, b):
                                                        c = a * b
                                                        return c
                                                      


                                                      Et voici le rendu d'erreur du test, aprés l'ensemble du code fonctionne, je n'ai pas d'erreur d'éxécution en soit. J'ai essayé d'importer directement les formules du module operations directement dans les fonctions print demander dans main(), le code fonctionne toujours mais le test_main est refusé.

                                                      ✅  test_addition
                                                      
                                                      ✅  test_multiplication
                                                      
                                                      ❌  test_main
                                                      Message: Les fonctions ne sont pas correctement appelées, ou vous n'affichez pas les résultats.
                                                      Stack Trace:
                                                      Traceback (most recent call last):
                                                        File "/home/runner/Importez-des-packages-Python-Exercice-1-ClementMALZAC/_test_runnertest_suite.py", line 16, in test_main
                                                          output = StringIO()
                                                      NameError: name 'StringIO' is not defined
                                                      
                                                      
                                                      
                                                        2/3 passed, see errors above  
                                                      



                                                      -
                                                      Edité par clementmalzac 30 juillet 2023 à 15:20:16

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        30 juillet 2023 à 15:42:49

                                                        Et il y a quoi dans le fichier "_test_runnertest_suite.py" ?
                                                        Et c'est quoi 'StringIO' ?
                                                        Tu as quels fichiers dans ton répertoire? Car là, je ne m'y retrouve pas.

                                                        Es-tu sur un système Linux ou MacOS ?

                                                        -
                                                        Edité par PierrotLeFou 30 juillet 2023 à 15:43:59

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

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

                                                          30 juillet 2023 à 15:52:05

                                                          Ca ne je saurais pas le dire, ces fichiers sont générés lors des test de l'exercice.je les fais directement sur le site Replit, pour être sur de respecter les consignes. 

                                                          J'ai essayé de les ouvrir pendant que le test s'effectuaient, mais impossible vu qu'ils se suppriment automatiquement une fois que les test sont effectués.

                                                          -
                                                          Edité par clementmalzac 30 juillet 2023 à 15:52:50

                                                          • 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