Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour un programme

    16 septembre 2017 à 18:45:52

    Bonjour j'ai fais un proramme qui consiste a faire des operations simple mais j'ai un problème avec le fait de faire en sorte d'utiliser mes variables locales en dehors de leurs fonction.si vous pouviez m'aidez se serait génial. voic mon programme :

    """Ce programme doit permettre d'effectuer des
    multiplication,additions,soustractions et divisions"""

    #Fonctions

    def choixnbr(nbr1,nbr2,choixnbr3) :

        nbr1 = input('quel est le premier nombre que vous voulez utilisez')
        nbr2 = input('quel est le deuxieme nombre que vous voulez utilisez')
        choixnbr3 = input('voulez vous ajouter un autre nombre(appuyez sur o pour oui et n pour non)')

        """if choixnbr3 = 'o' :
            nbr3 =('quel est ce nombre')

        elif choixnbr3 = 'n' :
            pass

        else :
            print("J'en conclu donc que c'est non")"""

        return nbr1 , nbr2 , choixnbr3

    #variables

    choixnbrvariables = choixnbr(nbr1,nbr2,choixnbr3)
    #Main section

    while True :

        choixnbrvariables

        print('choisissez une opération\n')

        op = input('appuyez sur :\n a pour une addition,\n s pour une soustraction,\n d pour une division ou \n m pour une multiplication\n mais si tu veut arreter le programme alors appuye sur q\n')

        if op == 'a':
            rad = int(nbr1) + int(nbr2)
            print('votre addition est %s + %s.'%(nbr1,nbr2))
            print('et son résultat est %s'%rad)

        elif op == 's':
            rso = int(nbr1) - int(nbr2)
            print('votre soustraction est %s - %s.'%(nbr1,nbr2))
            print('et son résultat est %s'%rso)

        elif op == 'm':
            rmu = int(nbr1) * int(nbr2)
            print('votre multiplication est %s * %s.'%(str(nbr1,nbr2)))
            print('et son résultat est %s'%str(rmu))

        elif op == 'd':
            rdi = int(nbr1) / int(nbr2)
            print('votre division est %s / %s.'%(nbr1,nbr2))
            print('et son résultat est %s'%rdi)

        elif op == 'q':
            break

        else:
            print('Bien essayer mais tu ne fera pas beug ce programme(ou en tout cas pas comme ça) ;).')
            pass


    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2017 à 19:24:35

      Bonjour ,

      Je t'invite à éditer ton premier message afin d'en modifier le titre de ton sujet, car «Besoin d'aide pour un programme» n'est pas explicite de la problématique que tu rencontres. Merci (Point 3 de la charte de bonne conduite.)

      Et pour écrire du code sur le forum merci d'utiliser le bouton code </> en choisissant le bon langage, ce qui affichera une coloration syntaxique adaptée, ce sera plus clair pour tous.

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        17 septembre 2017 à 0:55:34

        Le principe des variables locales et de ne justement pas être globales, ce qui veut dire que lorsque ta fonction est appelée, ces variables sont détruites. Elles sont temporaires et limitées à la durée de vie d'exécution de la fonction.

        Pour réutiliser ces valeurs, il faudra simplement que ta fonction retourne cette/ces valeur(s) avec l'instruction return.

        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2017 à 23:41:59

          quand tu fais appel à ta variable tu mets global devant par exemple 

          global variable

          variable = 33

          • Partager sur Facebook
          • Partager sur Twitter
            18 septembre 2017 à 0:01:07

            RedberserkRedberserk a écrit: > quand tu fais appel à ta variable tu mets global devant par exemple

            Non. Il est préférable de renvoyer les valeurs, comme l'indique oldProgrammer.

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              18 septembre 2017 à 11:15:24

              RedberserkRedberserk a écrit:

              quand tu fais appel à ta variable tu mets global devant par exemple 

              global variable

              variable = 33


              Surtout pas, ce genre de chose est réservé à des codeurs expérimentés qui vont utiliser ce genre de chose avec parcimonie. En abuser c'est rendre un code moins lisible, plus difficile à maintenir (modifier), et extrêmement difficile à débugger.

              Donc ne jamais conseillé cela à un débutant ! C'est lui apporter des notions qui apporteront des mauvaises pratiques, tant dans la conception que dans le codage.

              • Partager sur Facebook
              • Partager sur Twitter

              Besoin d'aide pour un programme

              × 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