Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    21 novembre 2023 à 3:34:48

    La méthode isdecimal() ne veut pas dire un nombre avec un point décimal.

    https://www.w3schools.com/python/ref_string_isnumeric.asp

    https://www.w3schools.com/python/ref_string_isdecimal.asp

    Je suggère également de tester si un OU l'autre n'est PAS numérique

    Essaies avec des chaînes telles que "1..2" ou "a2"

    • Partager sur Facebook
    • Partager sur Twitter

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

      21 novembre 2023 à 20:09:26

      nombre_a_gauche = input('Taper la première valeur numérique :')
      nombre_a_droite = input('Taper la deuxième valeur numérique :')
      operation = input('Taper le symbole de l\'opération souhaitée: ')
      resultat = 0
      
      '''Création des conditions si nombre gauche et droite sont des entiers  '''
      if nombre_a_droite.isnumeric() and nombre_a_gauche.isnumeric():
        print(' Ce sont bien des nombres entiers ')
        # Enfin ce sont des str mais là par contre je les converti en entier
        nombre_a_droite = int(nombre_a_droite)
        nombre_a_gauche = int(nombre_a_gauche)
      else:
        nombre_a_droite == str(nombre_a_droite) or nombre_a_gauche == str(nombre_a_gauche)
        print('Erreur: les deux nombres doivent être des nombres entiers et non des lettres.')
        # Vérification avec la fonction type si c'est un str et bien c'est bien un str
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
        print('Attention une opération de conversion en entier est en cours...')
        # Imaginons que ce sont des chiffres a virgules, il faut les convertir en entier
        # Je converti alors en float les deux valeurs
        nombre_a_droite = float(nombre_a_droite)
        nombre_a_gauche = float(nombre_a_gauche)
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
      # J'ai bien un type de float maintenant je peux convertir en int : test ok
        nombre_a_droite = int(nombre_a_droite)
        nombre_a_gauche = int(nombre_a_gauche)
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
      
      
      ''' Deuxième partie du TP : vérifier les symbole d'opération doit être '+', '-', '*' ou '/' '''
      match operation:
          case '+':
            resultat = nombre_a_droite + nombre_a_gauche
            print(resultat)
          case '-':
            resultat = nombre_a_droite - nombre_a_gauche
            print(resultat)
          case '*':
            resultat = nombre_a_droite * nombre_a_gauche
            print(resultat)
          case '/':
            if nombre_a_droite == 0 or nombre_a_gauche == 0:
               print('Erreur: impossible de diviser par zéro.')
            else:  
              resultat = nombre_a_droite / nombre_a_gauche
              print(resultat)
          case _:
            print("Erreur: le symbole d'opération doit être '+', '-', '*' ou '/'.'")

      Bonsoir,

      Je viens de réussir l'exercice.

      Voici mon code mais je pense l'améliorer mais pour un début suis content.

      J'ai du oublier des choses ou peut être que je peux faire plus simple n'hésite pas à me donner vos avis.

      Le deuxième code est juste un exemple pas fini.

      nombre_a_gauche = input('Taper la première valeur numérique :')
      nombre_a_droite = input('Taper la deuxième valeur numérique :')
      operation = input('Taper le symbole de l\'opération souhaitée: ')
      resultat = 0
      
      '''Création des conditions si nombre gauche et droite sont des entiers  '''
      if nombre_a_droite.isnumeric() and nombre_a_gauche.isnumeric():
        print(' Ce sont bien des nombres entiers ')
      
      elif nombre_a_droite == str(nombre_a_droite) or nombre_a_gauche == str(nombre_a_gauche):
        print('Erreur: les deux nombres doivent être des nombres entiers et non des lettres.')
        # Vérification avec la fonction type si c'est un str et bien c'est bien un str
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
        print('Attention une opération de conversion en entier est en cours...')
        # Imaginons que ce sont des chiffres a virgules, il faut les convertir en entier
        # Je converti alors en float les deux valeurs
        nombre_a_droite = float(nombre_a_droite)
        nombre_a_gauche = float(nombre_a_gauche)
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
      # J'ai bien un type de float maintenant je peux convertir en int : test ok
        nombre_a_droite = int(nombre_a_droite)
        nombre_a_gauche = int(nombre_a_gauche)
        print(type(nombre_a_droite))
        print(type(nombre_a_gauche))
      
      '''Deuxième partie du TP : vérifier le symbole '''
      match operation:
          case '+':
            resultat = nombre_a_droite + nombre_a_gauche
            print(resultat)
          case _:
            print("Vous devez choisir l'addition")

      -
      Edité par Priama 21 novembre 2023 à 20:50:21

      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2023 à 2:37:39

        Je te suggère pour l'instant de ne pas t'embêter avec les float. Je ne crois pas que tu sois rendu là.


        (on le fait avec des try / except)


        Je ne vois pas pourquoi tu te compliques la vie pour tester si le résultat des input() est de type str. C'est toujours le cas.


        Dans tes opérations, pourquoi faire  nombre_a_droite opération nombre_a_gauche ?


        Il faut inverser les deux nombres. Vérifie avec la soustraction et la division.


        Dans la division, il suffit de tester si le nombre_a_droite est non nul, pas celui de gauche.


        Je suggérais ceci:


            if not nombre_a_gauche.isnumeric() or not nombre_a_droite.isnumeric():


                print("Erreur, les nombres doivent etre des entiers")


            else:


                # Le code qui fait les opérations.


        Un commentaire commence par #


        Les lignes de commentaires qui commencent par " ou ' ne sont pas en erreur, mais ce n'est pas une bonne pratique.

        • Partager sur Facebook
        • Partager sur Twitter

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

          22 novembre 2023 à 14:37:09

          fais un test en rentrant "aa" dans une des valeurs demandées pour voir :p Le "imaginons que"  devrait être un test au cas où l'imagination n'est pas bonne.
          • Partager sur Facebook
          • Partager sur Twitter
            22 novembre 2023 à 17:49:24

            Ouais cela me sort une erreur.

            Je vais revoir le code.

            J'ai refait le code, cela semble plus correct.

            nombre_a_gauche = input('Taper la première valeur numérique :')
            nombre_a_droite = input('Taper la deuxième valeur numérique :')
            resultat = 0
            
            # Test si les deux variables ne sont pas des nombres
            
            if not nombre_a_gauche.isnumeric() or not nombre_a_droite.isnumeric():
              print("Erreur: les deux nombres doivent être des nombres entiers")
            
            else:
              operation = input('Taper le symbole de l\'opération souhaitée: ')
              # On transformes les str en entier
              nombre_a_gauche = int(nombre_a_gauche)
              nombre_a_droite = int(nombre_a_droite)
            
              print("Nous allons procéder au calcul demandé.")
              # Deuxième partie du TP : vérifier les symbole d'opération doit être '+', '-', '*' ou '/' 
              match operation: 
              
                case '+':
                  resultat = nombre_a_droite + nombre_a_gauche
                  print('Le résultat est', resultat)
                case '-':
                  resultat = nombre_a_droite - nombre_a_gauche
                  print(resultat)
                case '*':
                  resultat = nombre_a_droite * nombre_a_gauche
                  print(resultat)
                case '/':
                  if nombre_a_droite == 0:
                     print('Erreur: impossible de diviser par zéro.')
                  else:  
                    resultat = nombre_a_droite / nombre_a_gauche
                    print(resultat)
                case _:
                  print("Erreur: le symbole d'opération doit être '+', '-', '*' ou '/'.'")



            Merci

            -
            Edité par Priama 22 novembre 2023 à 18:10:02

            • Partager sur Facebook
            • Partager sur Twitter
              22 novembre 2023 à 18:54:27

              Nous n'avons pas la mêm notion de la gauche et de la droite .

              Entres 0 comme premier nombre et disons 20 comme second nombre et '/' comme opération.

              Nous verrons bien ...

              -
              Edité par PierrotLeFou 22 novembre 2023 à 18:57:55

              • Partager sur Facebook
              • Partager sur Twitter

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

                22 novembre 2023 à 19:08:59

                "la gauche, la droite, ça veut rien dire ces machins-là, selon comment on est tourné, ça change tout" :lol:
                • Partager sur Facebook
                • Partager sur Twitter
                  22 novembre 2023 à 19:13:58

                  Ce n'est pas de ma faute si on écrit de gauche à droite ...

                  Une expression mathématique s'écrit normalement de gauche à droite:

                  premier_nombre  opération  second_nombre

                  • Partager sur Facebook
                  • Partager sur Twitter

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

                    22 novembre 2023 à 20:17:05

                    Merci de ton retour.

                    J'ai modifié mon code et ça fonctionne merci pour vos aides mais pas la peine d'être désagréable.

                    Bonne soirée.

                    -
                    Edité par Priama 22 novembre 2023 à 20:17:25

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 novembre 2023 à 22:24:31

                      Bonjour,

                      Je bloque sur l'exercice de la partie "Regroupez des tâches en utilisant des fonctions" du cours "apprenez les bases de Python“ (avec les salaires) et je ne trouve pas la correction. Pourriez-vous me dire ou elle se trouve svp ? 

                      merci d'avance et bonne soirée ;)

                      -
                      Edité par B@stoch 22 novembre 2023 à 22:28:44

                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 novembre 2023 à 23:57:03

                        @BastienBOQUET:

                        Peux-tu nous poster ton code?

                        On pourra te dire si ça fonctionne.

                        P.S. Postes également l'énoncé, on ne sait jamais ...

                        • Partager sur Facebook
                        • Partager sur Twitter

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

                          23 novembre 2023 à 23:28:18 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour insérer un code sur le forum


                            25 novembre 2023 à 14:25:15

                            Bonjour,

                            @PierrotLeFou

                            Voici l'énoncé :

                            I-Contexte :

                            Vous devez créer un programme qui calcule le salaire horaire d'un employé, en fonction de son salaire mensuel et de son nombre d'heures travaillées par semaine. Le programme doit utiliser des fonctions pour effectuer les calculs.

                            Instructions

                            II- Instructions :

                            1. Créez une fonction appelée salaire_mensuel(salaire_annuel) qui prend en paramètre un salaire annuel et retourne le salaire mensuel correspondant en divisant le salaire annuel par 12(Faites un copier-coller sur le nom de la fonction sinon les tests risquent de ne pas passer)
                            1. Créez une fonction appelée salaire_hebdomadaire(salaire_mensuel) qui prend en paramètre un salaire mensuel et retourne le salaire hebdomadaire correspondant en divisant le salaire mensuel par 4(Faites un copier-coller sur le nom de la fonction sinon les tests risquent de ne pas passer)
                            1. Créez une fonction appelée salaire_horaire(salaire_hebdomadaire, heures_travaillees) qui prend en paramètres un salaire hebdomadaire et le nombre d'heures travaillées par semaine, et retourne le salaire horaire correspondant en divisant le salaire hebdomadaire par le nombre d'heures travaillées par semaine. (Faites un copier-coller sur le nom de la fonction sinon les tests risquent de ne pas passer)
                            1. Crééz une fonction main pour appeler les fonctions :
                            • Demandez à l'utilisateur de saisir son salaire annuel.
                            • Demandez à l'utilisateur de saisir le nombre d'heures travaillées par semaine.
                            • Appelez les fonctions précédemment créées pour calculer le salaire horaire correspondant.
                            • Affichez le résultat sous la forme : "Votre salaire horaire est de XX euros".

                            Attention n'appelez pas la fonction main dans le fichier main.py lorsque vous voulez lancer vos tests, pensez à commenter cette ligne pour le lancement des tests !

                            Et voici le code :

                            def salaire_mensuel(salaire_annuel):
                                return salaire_annuel / 12
                            
                            def salaire_hebdomadaire(salaire_mensuel):
                                return salaire_mensuel / 4
                            
                            def salaire_horaire(salaire_hebdomadaire, heures_travaillees):
                                return salaire_hebdomadaire / heures_travaillees
                            
                            salaire_annuel = int(input("Salaire annuel : "))
                            heures_travaillees = int(input("Nombre d'heures travaillées : "))
                            
                            
                            print(f"Votre salaire horaire est de {salaire_horaire(salaire_hebdomadaire, heures_travaillees)} euros")
                            Merci d'avance 

                            -
                            Edité par B@stoch 25 novembre 2023 à 14:50:50

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 novembre 2023 à 14:41:23

                              @B@stoch Bonjour, PierrotLeFou qui vous réponds ici et tente de vous aider est aveugle (voir son profil) sa synthèse vocal ne sais pas lire le texte de l'énoncer dans votre image. Merci de remplacer l'image par du texte. 

                              Merci pour lui,

                              La modération

                              -
                              Edité par AbcAbc6 25 novembre 2023 à 14:45:16

                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 novembre 2023 à 14:44:58

                                Pardon, je n'avais pas vu. Je change de ce pas.

                                -
                                Edité par B@stoch 25 novembre 2023 à 14:46:11

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 novembre 2023 à 5:45:44

                                  Merci AbcAbc6. Désolé d'avoir tardé à répondre.


                                  Dans l'énoncé:


                                  print(f"Votre salaire horaire est de {salaire_horaire(salaire_hebdomadaire, heures_travaillees)} euros")


                                  La variable salaire_hebdomadaire n'existe pas.


                                  Il faut la remplacer par, soit des appels inclus à partir du salaire annuel, salaire mensuel, salaire hebdomadaire,
                                  soit en faisant trois appels avec des noms de variables.


                                  Mais la directive dit de ne pas changer le nom des fonctions. Donc on revient à la première solution:


                                  print(f"Votre salaire horaire est de {salaire_horaire(salaire_hebdomadaire(salaire_mensuel(salaire_annuel)), heures_travaillees)} euros")


                                  On peut donner l'appel d'une fonction comme paramètre à une autre fonction car la valeur qui sera placée à cet endroit est la valeur retournée par la fonction incluse.

                                  Vous êtes peut-être sur un site qui fait de l'auto-validation. Il serait tout de même bon d'installer Python sur votre machine.

                                  On peut tester avec une valeur facile comme 48000 et 40 heures.

                                  48000 / 12 = 4000.0, 4000.0 / 4 = 1000.0, 1000.0 / 40 = 25.0

                                  -
                                  Edité par PierrotLeFou 26 novembre 2023 à 6:21:29

                                  • Partager sur Facebook
                                  • Partager sur Twitter

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

                                    26 novembre 2023 à 15:38:31

                                    Salut, salut,

                                    merci pour ta réponse ! 

                                    Après quelques recherches et gratages de tête j'ai trouvé ça hier :

                                    def salaire_mensuel(salaire_annuel):
                                        return salaire_annuel / 12
                                    
                                    def salaire_hebdomadaire(salaire_mensuel):
                                        return salaire_mensuel(salaire_annuel) / 4
                                    
                                    def salaire_horaire(salaire_hebdomadaire):
                                        return salaire_hebdomadaire(salaire_mensuel) / heures_travaillees
                                    
                                    salaire_annuel = int(input("Salaire annuel : "))
                                    heures_travaillees = int(input("Nombre d'heures travaillées : "))
                                    
                                    print(f"Votre salaire horaire est de {salaire_horaire(salaire_hebdomadaire)} euros")

                                    Je pense que je coche toutes les attentes de l'exo. Dur dur ce python ! Mais j'y retourne et merci encore

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      27 novembre 2023 à 11:55:17

                                      Tu ne respectes pas les consignes de l'exercice concernant la fonction  salaire_horaire(salaire_hebdomadaire, heures_travaillees) et la fonction main
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        4 décembre 2023 à 12:02:07

                                        Bonjour à tous

                                        Replit ne fonctionne pas pour les exercices du cours "apprenez les bases du langage Python"

                                        Auriez vous la solution?

                                        Bonne journée

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          4 décembre 2023 à 13:01:16

                                          quel message d'erreur ? si c'est sur les io (input) lors des tests, la réponse a déjà été donnée (import de 2 librairies)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            15 décembre 2023 à 11:39:29 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour insérer un code sur le forum


                                              23 décembre 2023 à 8:44:12

                                              En tout cas, vraiment relou qu'il n'y ait pas les corrections. A moins que je ne les trouve pas ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                18 janvier 2024 à 19:03:52 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour insérer un code sur le forum


                                                  14 février 2024 à 21:51:27

                                                  Bonjour,

                                                  Je voulais vous signaler que j'ai fais l'exercice P2C1 sur replit où il était indiqué qu'il fallait quitter le programme si les nombres saisis n'étaient pas des nombres. Or si je fais appel à la fonction exit(), l'exécution s'arrête, mais si ensuite je relance le programme, replit bugge : je suis obligé de fermer la fenêtre. Est-ce un bug qui vous a déjà été rapporté ? Y a t'il une autre fonction qui permet de quitter le programme sans faire bugger replit ? En attendant,  j'utilise des conditions pour que l'exécution du code ne fasse rien si une erreur survient.

                                                  -
                                                  Edité par Mistraldor 14 février 2024 à 21:52:09

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 février 2024 à 11:04:35

                                                    je pense que là, quitter le programme, c'est aller à sa fin.
                                                    Je pense que le exit() mets fin à l'exécution du moteur python, donc il faut le relancer.

                                                    A priori en saisissant la commande "kill 1" dans l'onglet shell, ça relance tout correctement sans avoir besoin de rafraichir la page ou autre.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      16 février 2024 à 10:46:51

                                                      Bonjour à vous,

                                                      Je suis novice et j'espère être au bon endroit ou alors je n'ai pas trouvé où aller.

                                                      L'exercice du cours "Enregistrez des groupes de données avec les listes" avec la fonction plateformes_sociales = ["Facebook", "Instagram", "Snapchat", "Twitter"] et liste[indice] ne fonctionne pas il me met une erreur.

                                                      La voici:

                                                      ['facebook', 'instagram', 'twitter', 'snapchat']

                                                      Traceback (most recent call last):

                                                        File "C:\Users\anton\helloworld.py", line 15, in <module>

                                                          liste[indice]

                                                          ^^^^^

                                                      NameError: name 'liste' is not defined.

                                                      Quelqu'un peu me dire pourquoi?

                                                      Merci de votre aide!

                                                      Anton

                                                      PS je vous joins une capture du cours.

                                                      -
                                                      Edité par Antonio C 16 février 2024 à 10:52:17

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        16 février 2024 à 11:00:15

                                                        Le message veut dire qu'il ne connait pas la variable liste (NameError: name 'liste' is not defined.). dans les captures de l'exercice la liste s'appelle plateformes_sociales, mais ça va dépendre de ce que toi tu as utilisé comme nom de liste.

                                                        Attention, tu vas avoir le même message d'erreur si tu n'as pas initialiser une variable indice.

                                                        Liste[indice] dans le texte montre le principe de récupérer la valeur d'un certain indice dans une liste, donc pour l'illustrer utilise des mots explicites de sens.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 février 2024 à 11:05:15

                                                          Je te remercie umfred pour ta réponse, je vais voir cela et j'espère avancer.

                                                          Belle journée.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            16 février 2024 à 13:53:44 - Message modéré pour le motif suivant : Toute forme de publicité est interdite


                                                            be free in your mind

                                                              21 février 2024 à 9:11:11

                                                              Bonjour,

                                                              A la fin de chaque leçon lors du cours "Apprenez les bases du langage Python" il est proposé un lien menant à des exercices sur "Replit" mais sur replit il n'est disponible seulement le P1C2 et le P2C2. Merci de votre aide.

                                                               

                                                              • 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