Partage
  • Partager sur Facebook
  • Partager sur Twitter

[RESOLU] probleme input()

Sujet résolu
    5 décembre 2011 à 22:05:29

    Bonjour tout le monde,

    Alors voila j'essaye d'apprendre les bases de python mais je bloque:

    Voici multipli.py:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    def multi (nb, max = 10):
    
            i = 0
    
            while i < max:
                    print (i+1, " * ", nb, " = ", (i+1) * nb )
                    i += 1
    


    Et voici test.py:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    from multipli import *
    
    print ("Entrez nombre:" )
    nbr = input()
    
    multi (nbr)
    


    Et j'aimerais que quand l'utilisateur entre un nombre, sa lui met la table de multiplication de ce nombre or la quand l'utilisateur rentre un nombre sa met:

    Entrez nombre:
    2
    1  *  2  =  2
    2  *  2  =  22
    3  *  2  =  222
    4  *  2  =  2222
    5  *  2  =  22222
    6  *  2  =  222222
    7  *  2  =  2222222
    8  *  2  =  22222222
    9  *  2  =  222222222
    10  *  2  =  2222222222


    Comment je peut remedier ce probleme ?

    Merci,

    Lonkoa
    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2011 à 22:10:52

      C'est très simple: input a le vilain défaut de renvoyer systématiquement un str().
      (J'en ai souffert...)

      Essaye nbr=int(input())
      • Partager sur Facebook
      • Partager sur Twitter
      Y s'taient cachés les steaks hachés.
        5 décembre 2011 à 22:12:08

        Citation : Estecka

        C'est très simple: input a le vilain défaut de renvoyer systématiquement un str().


        Ce n'est pas un défaut, d'ailleurs c'est le comportement qui est tout à fait attendu lorsqu'on demande à l'utilisation d'entrer du texte.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          5 décembre 2011 à 22:25:34

          Petite question : Pourquoi créer 2 fichiers?
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2011 à 3:33:23

            Parce que son but est apparemment d'apprendre à utiliser les modules.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              6 décembre 2011 à 9:36:38

              alors sans doute ne devrait-il pas commencer par là visiblement
              • Partager sur Facebook
              • Partager sur Twitter
                6 décembre 2011 à 12:01:52

                Tant qu'on y est, le shebang (#!/usr/bin/env python3) ne sert absolument à rien dans un module Python qui n'est pas destiné à être exécuté mais juste importé (en l'occurrence, dans multipli.py).

                Et cette fonction serait écrite plus proprement avec une boucle for, et sans name-clasher la builtin max :

                # -*- coding: utf-8 -*-
                
                def multi(nbr, vmax=10):
                    for i in range(1, vmax+1):
                        print(i, "*", nbr, "=", i*nbr)
                
                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !

                [RESOLU] probleme input()

                × 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