Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boucle pour ajouter des valeurs dans une liste

Sujet résolu
Anonyme
    1 mars 2016 à 9:44:47

    Bonjour,

    J'ai ce programme:

    x0 = input("Entrez x0: ")
    n = input("Entrez n: ")
    
    Termes = []
    i = 0
    while i!=(n+2):
        print("Entrez le ",(i+1),"eme terme: ")
        a = input()
        Termes.append(a)
        i+=1

    et j'ai essayé avant avec un while mais j'ai la même erreur:

    line 6, in <module>

        while i!=(n+2):

    TypeError: Can't convert 'int' object to str implicitly

    Pourquoi veut-il me changer mon int en str alors qu'il n'y a pas a? Et corriger cette erreur? 

    Merci de votre aide!

    PS: Je suis sous Python 3.5

    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2016 à 9:48:50

      Le problème vient de la fonction input. Cette fonction retourne systématiquement un str et non un nombre. Tu dois convertir ce que te renvoie ta ligne 2 en int :

      >>> n = input("Entrez n: ")
      Entrez n: 2
      >>> n
      '2'
      >>> type(n)
      <class 'str'>
      >>> n = int(n)
      >>> n
      2
      >>> type(n)
      <class 'int'>

      Par contre dans ton code à quoi sert x0 ?

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        1 mars 2016 à 9:50:50

        Ah je ne savais pas que c'était un retour systématique d'un str merci!

        pour le x0 il sert dans d'autre calculs par la suite mais cette erreur empêchait toutes poursuites :)

        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2016 à 10:40:41

          Une boucle for serait plus adaptée pour faire le traitement (et input permet d'afficher un message. Donc pas besoin d'utiliser un print ;)):

          termes = []  #Pas de majuscule (par convention)
          for i in range(1, n+3):
              val = input("Entrez le {}eme terme:\n".format(i))
              termes.append(val)

          -
          Edité par Olygrim 1 mars 2016 à 10:41:40

          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien

          Boucle pour ajouter des valeurs dans une liste

          × 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