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

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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
Anonyme
 
oui mais je comprends toujours pas comment faire ^^
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > 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
Anonyme > Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention  
 
Okay merci je vais essayer ;)
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > Anonyme
 
Bonjour,

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

Tu pourrais nous dire si tu as réussi, quand même !
0
georges97 Messages postés 13761 Date d'inscription   Statut Contributeur Dernière intervention   2 648
 
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
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Alors Anonyme,

Tu l'a finie, ta boucle ?

(avec ma réponse de 15h03) ...
1
Anonyme
 
Oui!!
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > Anonyme
 
Ah super, fais voir ton code !
0
Anonyme > Phil_1857 Messages postés 1872 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
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > 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
Anonyme > Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci du conseil
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

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


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