Partage
  • Partager sur Facebook
  • Partager sur Twitter

[exercices][confirmé] Calculatrice simple mais précise

    9 juillet 2010 à 14:39:24

    Citation : fred1599


    Ca fonctionne tres bien chez moi



    oui mais la question que tu dois te poser c'est "est-ce que ça marche bien chez les autres ?"

    Citation : fred1599


    il faut appuyer 2 fois sur entrée, quand tu rentres ton nombre et ton opérateur.




    J'aurais pu chercher longtemps tant c'est peu ergonomique et contre-intuitif, déjà ta calculatrice commence en préfix (8+) et termine en postfixe (6-). T'as tout intérêt à joindre cet extrait de session à ton code en premier message de ce fil si tu veux que les zéros te comprennent.

    De toutes façons, en console avec des entrées bufférisées, ça va être très difficile de singer vraiment une calculatrice (dont les entrées ne sont que très partiellement bufférisées, juste les chiffres le sont en fait).

    • Partager sur Facebook
    • Partager sur Twitter
      9 juillet 2010 à 14:58:03

      Citation : candide


      De toutes façons, en console avec des entrées bufférisées, ça va être très difficile de singer vraiment une calculatrice (dont les entrées ne sont que très partiellement bufferisées, juste les chiffres le sont en fait).


      C'est très surprenant ce que tu dis là.
      En console on ne peut pas singer vraiment une calculatrice? o_O fake!
      Je vois pas ou est le problème je l'ai déjà fait en C, et je ne pense pas que python soit un blocage au contraire!

      De ton entrée bufférisée, tu obtiens une liste de tokens que tu parses, etc...

      Déjà ce n'est pas le propos de l'exercice proposé(si j'ai bien compris, 1 nombre 1 opérateur 1 nombre).

      Et là, c'est vraiment un exo simple.
      encore un fois, le sens de ta phrase me laisse perplexe.
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
        9 juillet 2010 à 18:40:55

        Citation : GurneyH


        En console on ne peut pas singer vraiment une calculatrice?



        Oui, singer vraiment, reproduire si tu préfères. Pas adapter.


        Citation : GurneyH


        De ton entrée bufférisée, tu obtiens une liste de tokens que tu parses, etc...



        Ce n'est pas singer ça. Sur ta calculatrice, le signe + par exemple n'apparait pas à l'écran. En console, tu n'as qu'un moyen de vider le buffer et/ou d'engendrer une action, c'est avec ENTER. Avec une calculatrice, tu vides son buffer chaque fois que tu appuies sur une touche opératoire. Avec une calculatrice, si je tape

        2
        *
        3
        +
        5
        -
        2
        =

        l'affichage sera successivement de

        2
        2
        3
        6
        5
        11
        2
        9

        Je ne vois pas comment avec une simulation en console, tu vas obtenir les mêmes affichages en appuyant sur les mêmes touches. En particulier, tu observeras que l'appui sur la touche + modifie l'affichage.

        Il est bien sûr possible de singer vraiment une calculatrice en console mais il faut une autre gestion des entrées, ou alors obliger l'utilisateur à valider chaque entrée avec ENTER, et encore, l'exercice est bien que faisable est déjà moins simple (il faut déjà convenir des priorités car les calculatrices n'ont pas toutes le même comportement, j'en ai deux sous les yeux justement qui ne réagissent pas pareil à la séquence 2+3*4=).
        • Partager sur Facebook
        • Partager sur Twitter
          9 juillet 2010 à 19:04:57

          Exact.
          J'avais mal compris ce que tu voulais dire.
          Désolé.
          • Partager sur Facebook
          • Partager sur Twitter
          Zeste de Savoir, le site qui en a dans le citron !
            10 juillet 2010 à 9:24:59

            Je me permet de up mon ancien message car je suis bloqué. j'ai beau chercher, je n'y arrive pas :-°
            Quelqu'un aurait'il une idée sur les questions posées précédemment ?

            Merci d'avance.
            • Partager sur Facebook
            • Partager sur Twitter
              10 juillet 2010 à 14:48:29

              As tu comme te l'a conseillé candide réalisé une calculatrice simple?
              un nombre, un opérateur, un nombre.

              Une fois cette étape réalisée tu pourras pousser plus loin, mais il faut passer par là. ;)


              • Partager sur Facebook
              • Partager sur Twitter
              Zeste de Savoir, le site qui en a dans le citron !
                10 juillet 2010 à 18:43:58

                Citation : GurneyH

                As tu comme te l'a conseillé candide réalisé une calculatrice simple?
                un nombre, un opérateur, un nombre.

                Une fois cette étape réalisée tu pourras pousser plus loin, mais il faut passer par là. ;)




                Oui je l'ai fait: C'est même trop basic :(

                Voici le code édité:

                ############################################
                #Programme Python                          #
                #Auteur: Realmagma                         #
                #Licence: Aucune                           #
                #Date:                                     #
                ############################################
                
                
                
                
                #########################
                #Les diférentes fonctions
                #
                #
                def plus(nbr1, nbr2):    #Fonction num 1:
                    """
                       Additionne deux nombres
                    """
                    
                    resultat = nbr1 + nbr2  
                    print(resultat)
                
                
                def moins(nbr1, nbr2):   #Fonction num 2:
                    """
                       Soustrait deux nombres
                    """
                    return (nbr1 - nbr2)
                
                
                def fois(nbr1, nbr2):    #Fonction num 3:
                    """
                       Multiplie deux nombres
                    """
                    return nbr1 * nbr2
                
                
                def divise(nbr1, nbr2):  #Fonction num 4:
                    """
                       Divise deux nombres
                    """
                    return nbr1 / nbr2
                
                
                #########################
                #les diférentes variables
                #
                #
                choix = 0
                
                
                ####################
                #Corps du programme
                #
                #
                while(choix < 1) or (choix > 4):
                 
                    nbr1 = int(input("Entrez un nombre et appuyez sur 'Entrer'"))
                    nbr2= int(input("Entrez un deuxieme nombre et appuyez sur 'Entrer'"))
                    choix = int(input("Que faire:\n\n1= Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser\n"))
                
                 
                if(choix == 1):
                    plus(nbr1, nbr2)
                        
                        
                elif(choix == 2):
                    moins(nbr1, nbr2)
                        
                        
                elif(choix == 3):
                    fois(nbr1, nbr2)
                        
                        
                elif(choix == 4):
                    try:
                        divise(nbr1, nbr2)
                        
                    except ZeroDivisionError:
                        print("Incorrect")
                
                • Partager sur Facebook
                • Partager sur Twitter
                  10 juillet 2010 à 18:52:16

                  Citation : realmagma


                  Oui je l'ai fait: C'est même trop basic :(



                  Plein d'erreurs chez moi :


                  candide@~/python/sdz/autres$ python3 calc.py 
                  Entrez un nombre et appuyez sur 'Entrer'5                                                                     
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'9                                                            
                  Que faire:
                                                                                                                                
                  1= Additionner
                  2-Soustraire
                  3-Multiplier
                  4-Diviser
                  4
                  candide@~/python/sdz/autres$ python3 calc.py 
                                                          5
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'9
                  Que faire:                                                                                                    
                  
                  1= Additionner                                                                                                
                  2-Soustraire
                  3-Multiplier                                                                                                  
                  4-Diviser                                                                                                     
                  4
                  candide@~/python/sdz/autres$ python3 calc.py                                                                  
                  Entrez un nombre et appuyez sur 'Entrer'10
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'5                                                            
                  Que faire:
                                                                                                                                
                  1= Additionner
                  2-Soustraire                                                                                                  
                  3-Multiplier
                  4-Diviser
                  1                                                                                                             
                  15
                  candide@~/python/sdz/autres$ python3 calc.py 
                  Entrez un nombre et appuyez sur 'Entrer'10
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'5
                  Que faire:
                  
                  1= Additionner
                  2-Soustraire
                  3-Multiplier
                  4-Diviser
                  4                                                                                                             
                  candide@~/python/sdz/autres$ python3 calc.py 
                  Entrez un nombre et appuyez sur 'Entrer'0
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'-8
                  Que faire:
                  
                  1= Additionner
                  2-Soustraire
                  3-Multiplier
                  4-Diviser
                  2
                  candide@~/python/sdz/autres$ python3 calc.py 
                  Entrez un nombre et appuyez sur 'Entrer'0
                  Entrez un deuxieme nombre et appuyez sur 'Entrer'0
                  Que faire:
                  
                  1= Additionner
                  2-Soustraire
                  3-Multiplier
                  4-Diviser
                  3
                  Traceback (most recent call last):
                    File "calc.py", line 72, in <module>
                      multiplie(nbr1, nbr2)
                  NameError: name 'multiplie' is not defined
                  candide@~/python/sdz/autres$


                  EDIT : fais d'abord un truc super simple, sans fonctions, sans exceptions, sans docstring, sans commentaires mais qui marche dans 95% des cas. Une fois que t'a un truc qui marche, améliore-le.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 juillet 2010 à 19:07:03

                    J'ai fait une faute lors de l'appel de la fonction "fois" je ne l'avais pas vu. C'est corrigé, et tout marche très bien chez moi. :euh:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 juillet 2010 à 19:34:22

                      Citation : realmagma

                      C'est corrigé, et tout marche très bien chez moi. :euh:



                      Chez toi peut-être mais pas le code de ton message sur le forum.


                      Citation : realmagma

                      et tout marche très bien chez moi. :euh:




                      Ben non ou alors tu es en train de tester un autre code que celui que tu as posté ici.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        10 juillet 2010 à 19:35:49

                        le fonctionnement dépendra déjà du type de nombre que tu entres

                        >>> int(5.5)
                        5


                        >>> int('5.5')
                        
                        Traceback (most recent call last):
                          File "<pyshell#1>", line 1, in <module>
                            int('5.5')
                        ValueError: invalid literal for int() with base 10: '5.5'


                        J'aime bien le module Decimal pour une bonne précision

                        >>> from decimal import Decimal as D
                        >>> D('5.5')
                        Decimal('5.5')
                        >>> D('5.5').to_eng_string()
                        '5.5'


                        >>> (D('5.5')/D('3.8')).to_eng_string()
                        '1.447368421052631578947368421'


                        Bonne continuation ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 juillet 2010 à 19:41:06

                          Citation : candide

                          Citation : realmagma


                          Oui je l'ai fait: C'est même trop basic :(



                          Plein d'erreurs chez moi :


                          candide@~/python/sdz/autres$ python3 calc.py 
                          Entrez un nombre et appuyez sur 'Entrer'5                                                                     
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'9                                                            
                          Que faire:
                                                                                                                                        
                          1= Additionner
                          2-Soustraire
                          3-Multiplier
                          4-Diviser
                          4
                          candide@~/python/sdz/autres$ python3 calc.py 
                                                                  5
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'9
                          Que faire:                                                                                                    
                          
                          1= Additionner                                                                                                
                          2-Soustraire
                          3-Multiplier                                                                                                  
                          4-Diviser                                                                                                     
                          4
                          candide@~/python/sdz/autres$ python3 calc.py                                                                  
                          Entrez un nombre et appuyez sur 'Entrer'10
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'5                                                            
                          Que faire:
                                                                                                                                        
                          1= Additionner
                          2-Soustraire                                                                                                  
                          3-Multiplier
                          4-Diviser
                          1                                                                                                             
                          15
                          candide@~/python/sdz/autres$ python3 calc.py 
                          Entrez un nombre et appuyez sur 'Entrer'10
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'5
                          Que faire:
                          
                          1= Additionner
                          2-Soustraire
                          3-Multiplier
                          4-Diviser
                          4                                                                                                             
                          candide@~/python/sdz/autres$ python3 calc.py 
                          Entrez un nombre et appuyez sur 'Entrer'0
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'-8
                          Que faire:
                          
                          1= Additionner
                          2-Soustraire
                          3-Multiplier
                          4-Diviser
                          2
                          candide@~/python/sdz/autres$ python3 calc.py 
                          Entrez un nombre et appuyez sur 'Entrer'0
                          Entrez un deuxieme nombre et appuyez sur 'Entrer'0
                          Que faire:
                          
                          1= Additionner
                          2-Soustraire
                          3-Multiplier
                          4-Diviser
                          3
                          Traceback (most recent call last):
                            File "calc.py", line 72, in <module>
                              multiplie(nbr1, nbr2)
                          NameError: name 'multiplie' is not defined
                          candide@~/python/sdz/autres$



                          EDIT : fais d'abord un truc super simple, sans fonctions, sans exceptions, sans docstring, sans commentaires mais qui marche dans 95% des cas. Une fois que t'a un truc qui marche, améliore-le.




                          J'ai corrigé chez moi mais pas le code sur le forum. Donne moi 30 sdes et je l'édite. Quel autre problème as-tu avec mon code?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 juillet 2010 à 19:45:10

                            Citation : realmagma


                            Quel autre problème as-tu avec mon code?



                            T'as oublié des print par exemple.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 juillet 2010 à 19:52:26

                              Quelle cruche que je suis... :lol: J'ai copier/collé le mauvais code.

                              Le voici, (et le bon) :D


                              ############################################
                              #Programme Python                          #
                              #Auteur: Realmagma                         #
                              #Licence: Aucune                           #
                              #Date:                                     #
                              ############################################
                              
                              
                              
                              
                              #########################
                              #Les diférentes fonctions
                              #
                              #
                              def plus(nbr1, nbr2):    #Fonction num 1:
                                  """
                                     Additionne deux nombres
                                  """
                                  
                                  resultat = nbr1 + nbr2  
                                  print(resultat)
                              
                              
                              def moins(nbr1, nbr2):   #Fonction num 2:
                                  """
                                     Soustrait deux nombres
                                  """
                              
                                  resultat = nbr1 - nbr2
                                  print(resultat)
                              
                              
                              def fois(nbr1, nbr2):    #Fonction num 3:
                                  """
                                     Multiplie deux nombres
                                  """
                              
                                  resultat = nbr1 * nbr2
                                  print(resultat)
                              
                              
                              def divise(nbr1, nbr2):  #Fonction num 4:
                                  """
                                     Divise deux nombres
                                  """
                              
                              
                                  resultat = nbr1 / nbr2  
                                  print(resultat)
                              
                              
                              #########################
                              #les diférentes variables
                              #
                              #
                              choix = 0
                              
                              
                              ####################
                              #Corps du programme
                              #
                              #
                              while(choix < 1) or (choix > 4):
                               
                                  nbr1 = int(input("Entrez un nombre et appuyez sur 'Entrer'"))
                                  nbr2= int(input("Entrez un deuxieme nombre et appuyez sur 'Entrer'"))
                                  choix = int(input("Que faire:\n\n1= Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser\n"))
                              
                               
                              if(choix == 1):
                                  plus(nbr1, nbr2)
                                      
                                      
                              elif(choix == 2):
                                  moins(nbr1, nbr2)
                                      
                                      
                              elif(choix == 3):
                                  fois(nbr1, nbr2)
                                      
                                      
                              elif(choix == 4):
                                  try:
                                      divise(nbr1, nbr2)
                                      
                                  except ZeroDivisionError:
                                      print("Incorrect")
                              


                              Et désolé.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                10 juillet 2010 à 20:06:56

                                >>> 
                                Entrez un nombre et appuyez sur 'Entrer'5.5
                                Entrez un deuxieme nombre et appuyez sur 'Entrer'2.3
                                Que faire:
                                
                                1= Additionner
                                2-Soustraire
                                3-Multiplier
                                4-Diviser
                                1
                                7
                                >>>


                                C'est ce que je dis dans mon post précédent 5.5+2.3=7.8 et non 7 :)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 juillet 2010 à 20:12:52

                                  Okey, je corrigerais ça demain. Je reposterais donc mon code corrigé.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 juillet 2010 à 20:14:07

                                    Citation : realmagma


                                    Le voici, (et le bon) :D



                                    OK, ça marche. Tu gères la division par 0 mais pas le choix (1,2,3 ou 4) de l'opération à effectuer. Ligne 63, ton while sert à rien, t'aurais pas oublié d'indenter tes if en dessous ?


                                    Citation : realmagma


                                    Et désolé.



                                    pas de quoi.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      10 juillet 2010 à 20:35:29

                                      Citation

                                      Okey, je corrigerais ça demain. Je reposterais donc mon code corrigé.



                                      Tu peux aussi beaucoup simplifier ton code, en ne mettant qu'une fonction plus et une fonction fois ;)

                                      Tu peux aussi ajouter une option 5 pour quitter

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        10 juillet 2010 à 21:09:39

                                        Enlève aussi tous les commentaires qui sont inutiles.
                                        Tu n'es pas non plus obligé de passer par la variable "résultat" dans tes fonctions.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          11 juillet 2010 à 1:17:11

                                          Je saurais pas l'écrire en python (je viens de débuter), mais quelque chose comme ça serait pas mal. Le regex détermine si ce qui a été tapé au clavier est de la forme :

                                          nombre négatif ou positif, entier ou décimal suivi ou pas de "un opérateur avec un autre nombre" autant de fois qu'on veut.

                                          if (input = gets) =~ /^-?\d+(\.\d+)?([\+-\\\*]-?\d+(\.\d+)?)*$/
                                              eval input
                                          else puts 'Syntaxe incorrecte.' end
                                          


                                          Et puis il y a la version qui autorise les espaces :

                                          /^ *-? *\d+(\.\d+)? *([\+-\\\*] *-? *\d+(\.\d+)? *)*$/
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            11 juillet 2010 à 9:14:25

                                            @Colb-Seton: Je ne peux pas enlever mes commentaires, c'est comme ça que je me repère. (Et personnelement, c'est plus agréable à l'oeil) ;)

                                            @Fred1599: Que veux-tu dire par "Une fonction plus et une fois" ?
                                            Ok, J'ajouterais donc une option '5' pour quitter.

                                            @Candide: Pourquoi mon 'while' ne sert il à rien ? Tant que l'utilisateur n'entre pas un nombre compris entre 1 et 4 je le lui redemande. (Enfin bientôt entre 1 et 5 ;) )

                                            @Arsenic33: Pourquoi un code Ruby sur le forum Python ?

                                            EDIT: Voici mon code:

                                            ############################################
                                            #Programme Python                          #
                                            #Auteur: Realmagma                         #
                                            #Licence: Aucune                           #
                                            #Date:                                     #
                                            ############################################
                                            
                                            
                                            
                                            
                                            #########################
                                            #Les diférentes fonctions
                                            #
                                            #
                                            def plus(nbr1, nbr2):    #Fonction num 1:
                                                """
                                                   Additionne deux nombres
                                                """ 
                                                print(nbr1 + nbr2)
                                            
                                            
                                            def moins(nbr1, nbr2):   #Fonction num 2:
                                                """
                                                   Soustrait deux nombres
                                                """
                                                print(nbr1 - nbr2)
                                            
                                            
                                            def fois(nbr1, nbr2):    #Fonction num 3:
                                                """
                                                   Multiplie deux nombres
                                                """
                                                print(nbr1 * nbr2)
                                            
                                            
                                            def divise(nbr1, nbr2):  #Fonction num 4:
                                                """
                                                   Divise deux nombres
                                                """
                                                print(nbr1 / nbr2)
                                            
                                            
                                            #########################
                                            #les diférentes variables
                                            #
                                            #
                                            choix = 0
                                            
                                            
                                            ####################
                                            #Corps du programme
                                            #
                                            #
                                            while(choix < 1) or (choix > 5):
                                             
                                                nbr1  = float(input("Entrez un nombre et appuyez sur 'Entrer'"))
                                                nbr2  = float(input("Entrez un deuxieme nombre et appuyez sur 'Entrer'"))
                                                choix = int(input("Que faire:\n\n1= Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser\n5-Quitter\n\n=>"))
                                            
                                             
                                            if(choix == 1):
                                                plus(nbr1, nbr2)
                                                    
                                                    
                                            elif(choix == 2):
                                                moins(nbr1, nbr2)
                                                    
                                                    
                                            elif(choix == 3):
                                                fois(nbr1, nbr2)
                                                    
                                                    
                                            elif(choix == 4):
                                                try:
                                                    divise(nbr1, nbr2)
                                                    
                                                except ZeroDivisionError:
                                                    print("\nIncorrect")
                                                    
                                            elif(choix == 5):
                                                print("\nVous quittez")
                                            
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              11 juillet 2010 à 10:30:01

                                              Citation

                                              @Fred1599: Que veux-tu dire par "Une fonction plus et une fois" ?



                                              Une petite astuce simplement

                                              Une division est simplement une multiplication du 1er membre par l'inverse du 2eme membre

                                              Une soustraction est simplement une addition du 1er avec le 2eme membre multiplié par -1

                                              >>> 2./3==2*(1./3)
                                              True
                                              >>> 2-3==2+(3*-1)
                                              True


                                              Ca te fait 2 fonctions en moins.

                                              Citation

                                              @Colb-Seton: Je ne peux pas enlever mes commentaires, c'est comme ça que je me repère. (Et personnelement, c'est plus agréable à l'oeil)



                                              Je ne veux pas parler pour @Colb-Seton, mais les commentaires sont utiles pour un code complexe, là on comprend facilement ton code.



                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                11 juillet 2010 à 10:39:47

                                                Citation : realmagma


                                                @Candide: Pourquoi mon 'while' ne sert il à rien ? Tant que l'utilisateur n'entre pas un nombre compris entre 1 et 4 je le lui redemande. (Enfin bientôt entre 1 et 5 ;) )



                                                OK. Toutefois,
                                                *) si j'entre toto le programme plante sauvagement
                                                *) si je tape 0 par exemple, le programme me redemande de choisir des nombres (que j'avais déjà proposés) alors qu'il devrait juste me redemander de choisir dans le menu.

                                                Au passage, sache que d'une façon générale, gérer les entrées c'est compliqué (pour la machine, pour les humains).
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  11 juillet 2010 à 11:37:49

                                                  Merci pour vos conseils.

                                                  Voici mon code:

                                                  ############################################
                                                  #Programme Python                          #
                                                  #Auteur: Realmagma                         #
                                                  #Licence: Aucune                           #
                                                  #Date:                                     #
                                                  ############################################
                                                  
                                                  
                                                  
                                                  
                                                  #########################
                                                  #Les diférentes fonctions
                                                  #
                                                  #
                                                  def plusMoins(nbr1, nbr2, choix):  
                                                      """
                                                         Additionne deux nombres
                                                      """
                                                      if(choix == 2):
                                                          print(nbr1 + (nbr2 * -1))
                                                  
                                                      else:
                                                          print(nbr1 + nbr2)
                                                  
                                                  
                                                  
                                                  def foisDiv(nbr1, nbr2, choix):    
                                                      """
                                                         Multiplie deux nombres
                                                      """
                                                      if(choix == 4):
                                                          print(nbr1 * (1./nbr2))
                                                          
                                                      else:
                                                          print(nbr1 * nbr2)
                                                  
                                                  
                                                  
                                                  
                                                  #########################
                                                  #les diférentes variables
                                                  #
                                                  #
                                                  choix = 0
                                                  
                                                  
                                                  
                                                  
                                                  ####################
                                                  #Corps du programme
                                                  #
                                                  #
                                                  nbr1 = float(input("Entrez un nombre et appuyez sur 'Entrer'"))
                                                  nbr2= float(input("Entrez un deuxieme nombre et appuyez sur 'Entrer'"))
                                                  
                                                  while(choix < 1) or (choix > 5):
                                                  
                                                  
                                                      try:
                                                          choix = int(input("Que faire:\n\n1= Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser\n5-Quitter\n\n=>"))
                                                          
                                                      except ValueError:
                                                          print("\nIl faut rentrer uniquement un chiffre")
                                                  
                                                  
                                                      
                                                  if(choix == 1):
                                                      plusMoins(nbr1, nbr2, choix)
                                                          
                                                  elif(choix == 2):
                                                      plusMoins(nbr1, nbr2, choix)
                                                               
                                                  elif(choix == 3):
                                                      foisDiv(nbr1, nbr2, choix)    
                                                          
                                                  elif(choix == 4):
                                                      try:
                                                          foisDiv(nbr1, nbr2, choix)      
                                                      except ZeroDivisionError:
                                                          print("\nIncorrect")
                                                          
                                                  elif(choix == 5):
                                                      print("\nVous quittez")
                                                  


                                                  Est-ce bon ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    11 juillet 2010 à 11:47:46

                                                    Entrez un nombre et appuyez sur 'Entrer'O
                                                    
                                                    Traceback (most recent call last):
                                                      File "C:/Users/Fred/Desktop/test.py", line 39, in <module>
                                                        nbr1 = float(input("Entrez un nombre et appuyez sur 'Entrer'"))
                                                      File "<string>", line 1, in <module>
                                                    NameError: name 'O' is not defined


                                                    Si on rippe, faut recommencer l'execution du programme, dommage! :)

                                                    Sinon je n'aurais pas fait comme ça, mais ça change rien, ça fonctionne
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      11 juillet 2010 à 12:03:43

                                                      Voilà qui est réglé :)
                                                      Je vous donne la portion de code qui à été changé. Merci à vous.

                                                      ####################
                                                      #Corps du programme
                                                      #
                                                      #
                                                      try:
                                                          nbr1 = float(input("Entrez un nombre et appuyez sur 'Entrer'"))
                                                          nbr2 = float(input("Entrez un deuxieme nombre et appuyez sur 'Entrer'"))
                                                      
                                                      except ValueError:
                                                          print("\nIncorrecte. Valeur par default: 0")
                                                          nbr1, nbr2 = 0, 0
                                                          pass
                                                      
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Anonyme
                                                        11 juillet 2010 à 14:31:53

                                                        Citation

                                                        @Arsenic33: Pourquoi un code Ruby sur le forum Python ?



                                                        T'as qu'à te dire que c'est du pseudo-code utilisant la coloration syntaxique du Ruby. Je connais pas bien Python c'est tout.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Anonyme
                                                          11 juillet 2010 à 15:26:47

                                                          @realmagma : Voila ton code modifié à ma manière.

                                                          from decimal import Decimal as D
                                                          import sys
                                                          while 1:
                                                              nbr1=D(raw_input("Entrer votre nombre :"))
                                                              nbr2=D(raw_input("Entrer votre nombre :"))
                                                              menu={'1': nbr1+nbr2, '2': nbr1-nbr2, '3': nbr1*nbr2, '4': nbr1/nbr2}
                                                              print """Quel type d'opération voulez-vous faire?
                                                          1--> Addition
                                                          2--> Soustraction
                                                          3--> Multiplication
                                                          4--> Division
                                                          5--> Quitter
                                                          """
                                                              choix=raw_input("Votre choix :")
                                                              if choix in menu:
                                                                  print "le resultat est : %f" %(menu[choix])
                                                                  continue
                                                              elif choix=='5':
                                                                  break
                                                              else :
                                                                  print "erreur dans votre choix"
                                                                  continue
                                                          sys.exit
                                                          


                                                          :)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            11 juillet 2010 à 15:31:09

                                                            Citation : fred1599

                                                            @realmagma : Voila ton code modifié à ma manière.

                                                            from decimal import Decimal as D
                                                            while 1:
                                                                nbr1=D(raw_input("Entrer votre nombre :"))
                                                                nbr2=D(raw_input("Entrer votre nombre :"))
                                                                menu={'1': nbr1+nbr2, '2': nbr1-nbr2, '3': nbr1*nbr2, '4': nbr1/nbr2}
                                                                print """Quel type d'opération voulez-vous faire?
                                                            1--> Addition
                                                            2--> Soustraction
                                                            3--> Multiplication
                                                            4--> Division
                                                            """
                                                                choix=raw_input()
                                                                if choix in menu:
                                                                    print "le resultat est : %f" %(menu[choix])
                                                                    continue
                                                                else :
                                                                    print "erreur dans votre choix"
                                                                    continue
                                                            



                                                            :)



                                                            o_O ... je suis preneur ! Interessant, je ne savais même pas qu'on pouvait faire un calcule dans le dico ^^.
                                                            Merci du tuyau, je vais bosser ça :)


                                                            EDIT: Au niveau de l'identation, pensez-vous que je saute trop de lignes entre chaque bloc/ligne ?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              5 décembre 2016 à 20:22:01

                                                              Ecrire un algorithme qui évalue une expression postfixe `a l’aide d’une pile d’entiers. (On 
                                                              pourra utiliserla fonction int ctoi(char c){return (int)(c-’0’) ;} pour convertir un caractère en 
                                                              entier). aidé moi svp
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [exercices][confirmé] Calculatrice simple mais précise

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown