Finir ma boucle

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. Alors Anonyme,

    Tu l'a finie, ta boucle ?

    (avec ma réponse de 15h03) ...
    1. @Phil_1857
      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
    2. @AnonymeBonjour,

      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
  2. Contributeur
    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. 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. oui mais je comprends toujours pas comment faire ^^
      2. @AnonymePourtant, 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
      3. @Phil_1857Bonjour Anonyme,

        Tu pourrais nous dire si tu as réussi, quand même !
    2. Modérateur
      Bonjour

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

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