Finir ma boucle

Jules -  
 Anonyme -
J'ai créé programme qui en utilisant le modulo indique si un nombre entier est pair ou impair en le tapant au clavier. Je voudrais faire en sorte de pouvoir sortir de ce programme en tapant la lettre la lettre « s » avec break mais je n'y arrive pas.

code qui marche :
while True:
n=int(input("entrez un nombre :"))
if n%2==0:
print("pair")
else:
print("impair")


code qui n marche pas :
while True:
n=int(input("entrez un nombre :"))
if n%2==0:
print("pair")
else:
print("impair")
if ("s")
break

4 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour Anonyme,

    lorsque tu saisi n avec input, c'est un entier

    or s est une chaine de caractères apparemment : if ("s")

    donc : problème !

    n=int(input("entrez un nombre :"))


    si tu entre la lettre s, ca plante ici
    1
    1. Anonyme
       
      oui mais je comprends toujours pas comment faire ^^
      0
    2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Anonyme
       
      Pourtant, c'est logique: ne saisi pas un entier mais une chaine !
      si n='s', on sort tout de suite
      sinon on converti n en int et on fait le test

      boucle
          reponse = input('Entrer un nombre ou s pour arrêter') 
          si reponse == 's' : break
      
          reponse = int(reponse)
          et la on fait le test avec %2
      0
    3. Anonyme > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
       
      Okay merci je vais essayer ;)
      0
    4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Anonyme
       
      Bonjour,

      Alors, ca donne ?
      0
    5. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Anonyme,

      Tu pourrais nous dire si tu as réussi, quand même !
      0
  2. georges97 Messages postés 14565 Date d'inscription   Statut Contributeur Dernière intervention   2 919
     
    Bonjour Anonyme,

    Quand on signale une erreur, il faut en indiquer le contenu et la ligne sur laquelle elle est notifiée.

    En l'occurrence, sur la ligne 7, puisque vous testez le modulo 2 de n, il faut écrire:

    if n%2=="s" : break et non if n%=="s" : break

    Les messages d'erreur servent à identifier, sinon l'endroit exact, mais l'indication erreur de syntaxe invite à examiner caractère par caractère la ligne en question.

    Cordialement
    1
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Alors Anonyme,

    Tu l'a finie, ta boucle ?

    (avec ma réponse de 15h03) ...
    1
    1. Anonyme
       
      Oui!!
      0
      1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Anonyme
         
        Ah super, fais voir ton code !
        0
      2. Anonyme > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
         
        while True:
        n = input("entrez un nombre :")
        if n == "s":
        break

        if int(n) % 2 == 0:
        print("pair")
        else:
        print("impair")


        merci en tt cas
        0
      3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > Anonyme
         
        Bonjour,

        Tu va pouvoir marquer cet appel comme résolu...

        Mais, si je peux me permettre, une dernière chose:

        si tu tapes 'a' (par exemple) au lieu de 's'
        if int(n) % 2 == 0:  
        va se planter

        moi je ferais ca:

        try:
            n=int(n)
        
            if n % 2 == 0:
               print("pair")
            else:
               print("impair")
        except:
            print("erreur, n n'est pas un entier !")


        Il faut toujours assurer tous les cas
        0
      4. Anonyme > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
         
        Ok merci du conseil
        0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

    La lettre "s" .. tu la renseignes dans l'input non ?
    Dans ce cas, elle est stockée dans ta variable n ....

    0
    1. Anonyme
       
      okay mais je comprends pas bien ou l’insérer
      0