Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide simple boucle while

    23 janvier 2024 à 14:45:18

    >>> dec = 1,17
    >>> while dec < 23.61:
    ...   dec +=2.07
    ...
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '<' not supported between instances of 'tuple' and 'float'
    >>> sib = 23.61
    >>> while dec < sib:
    ...   dec +=2.07
    ... print(dec)
      File "<stdin>", line 3
        print(dec)
        ^^^^^
    SyntaxError: invalid syntax
    >>> while dec < sib:
    ...   dec +=2.07
    ...
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '<' not supported between instances of 'tuple' and 'float'
    >>> type(dec)
    <class 'tuple'>
    >>> dec = "1.17"
    >>> sib = "23.61"
    >>> type(dec)
    <class 'str'>
    >>> while dec < sib:
    ...   dec +=2.07
    ... print(dec)
      File "<stdin>", line 3
        print(dec)
        ^^^^^
    SyntaxError: invalid syntax
    >>> while dec < sib:
    ...   dec +=2.07
    ...
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
    TypeError: can only concatenate str (not "float") to str
    >>> while dec < sib:
    ...   "dec" +=2.07
      File "<stdin>", line 2
        "dec" +=2.07
        ^^^^^
    SyntaxError: 'literal' is an illegal expression for augmented assignment
    >>> while dec < sib:
    ...   dec += 2.07
    ...
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
    TypeError: can only concatenate str (not "float") to str
    Bonjour je cherche juste à savoir comment faire en sorte que cette simple boucle while fonctionne. L'idée est simple, c'est de faire en sorte que le prog s'arrête dès que dec > sib merci
    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2024 à 15:03:34

      Salut,

      Si tu utilises la virgule à la place du point, ta variable dec est un tuple non un float.

      -
      Edité par Garkam 23 janvier 2024 à 15:04:32

      • Partager sur Facebook
      • Partager sur Twitter
        23 janvier 2024 à 15:11:28

        Garkam a écrit:

        Salut,

        Si tu utilises la virgule à la place du point, ta variable dec est un tuple non un float.

        -
        Edité par Garkam il y a 3 minutes


        Salut, je m'en suis rendu compte à un moment donné donc j'ai mis des guillemets pour les chiffres, la classe a changé. Mais y'a toujours une erreur après 

        Que dois-je changer ou écrire? :( merci

        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2024 à 15:29:35

          Eh bien présente l'erreur indiquée pour commencer
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            23 janvier 2024 à 15:34:13

            si tu mets des guillemets, ça devient une chaine, non ? donc même message d'erreur avec str à la place de tuple
            Dans ton 2nd test, le problème est que tu n'as pas laissé une ligne vide pour terminer la boucle dans l'interpréteur avant d'afficher le résultat (ou tu n'as pas ajouter l'indentation si tu voulais afficher les étapes) et tu as inversé le rôle des variables, donc dec est toujours un tuple à ce moment.

            et sur la fin, dec étant devenu une chaine, tu ne peux pas faire d'opération dessus à moins de le convertir en float ici avant (et attention une comparaison de chaines n'est pas la même chose qu'une comparaison de nombres)

            • Partager sur Facebook
            • Partager sur Twitter
              23 janvier 2024 à 15:35:27

              Si tu mets des guillemets ta variable devient une chaine de charactères.

              dec = 1.17 # Le point
                  while dec < 23.61:
                      dec +=2.07





              -
              Edité par Garkam 23 janvier 2024 à 15:35:54

              • Partager sur Facebook
              • Partager sur Twitter
                23 janvier 2024 à 17:18:19

                >>> while dec < sib:
                ...   dec += 0.26
                ...
                >>> print(dec)
                2.21
                >>> med = 26.41
                >>> while dec < med:
                ...   dec += 2.07
                ...   print(dec)
                ...
                4.279999999999999
                6.35
                8.42
                10.49
                12.56
                14.63
                16.7
                18.77
                20.84
                22.91
                24.98
                27.05
                • Partager sur Facebook
                • Partager sur Twitter
                  23 janvier 2024 à 19:16:17

                  avec ces lignes juste avant (histoire de définir dec et sib avec les valeurs qui vont bien, a priori sib ne vaut plus 23.61 dans ce que tu nous montres)

                  dec=1.17
                  sib=23.61



                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 janvier 2024 à 13:30:34

                    Bonjour

                    dec = "1.17"	#dec est une chaine de caractères
                    sib = "23.61"   #sib est une chaine de caractères
                    while dec < sib: dec +=2.07

                    TypeError: can only concatenate str (not "float") to str

                    Erreur de type: on ne peut que concaténer des chaines (pas des 'float') à des chaines

                    -
                    Edité par Phil_1857 25 janvier 2024 à 13:31:34

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Aide simple boucle while

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown