Bonsoir,
Je ne peux pas exécuter python, mais essaie ceci:
car = "i" # Texte à rechercher
chaine = "Je veux dormir un instant"
if car in chaine:
print "La lettre -i- se trouve dans la chaîne !"
else
print "La chaîne ne contient pas la lettre -i- !"
Peux-tu me dire si cela fonctionne, merci.
Heliotte
En faisant une boucle sur chacun des caractères de la chaîne de caractères
heyquem
Heliote,
si tu ne maîtrise pas un sujet , il vaut mieux t'abstenir
Heliotte
Comme demandé, avec le "while":
car = "i" # Texte à rechercher
chaine = "Je veux dormir un instant"
Introuvable = True
# parcours avec while
i = 0
while i < len(chaine) :
if car in chaine:
Introuvable = False
print chaine[i]
i += 1
if Introuvable == False:
print "La lettre -i- se trouve dans la chaîne !"
else
print "La chaîne ne contient pas la lettre -i- !"
Peux-tu me dire si cela fonctionne, merci.
Léa
Comment ? Je connais avec la méthode For in mais je cherche à connaitre comment on le fait avec WHILE ?
Heliotte
Veux-tu vraiment utiliser le "while" ?
Léa
Bonsoir,
Le premier marche nickel. Le deuxième invalid syntax,. Je sais pas si ça vient de moi
car="i"
chaine = "je veux dormir un instant"
introuvable = True
i = 0
while i < len (chaine):
if car in chaine:
introuvable = False
print chaine [i]
i + = 1
if introuvable == False:
print (" La lettre 'i' se trouve dans la chaine ")
else:
print (" la chaine ne contient pas la lettre 'i' ")
L'erreur viendrait de chaîne.
Heliotte
Bonjour Léa,
Je ne sait pas si tu as fait exprès pour me le présenter, mais si il y a un espace entre "chaine" et "[" .. la syntaxe peut être très pointilleuse .. alors, si c'est le cas essaie : print chaine[i], sans espace .. pour voir !
Autre chose, mais je suppose que tu le sait. En python, il n'y a pas accolades ou autre symbole pour dire "je commence ici" ou "je termine là". Alors, l'important est l'indentation .. quand il y a 1 tabulation il ne faut pas en mettre 0 ou 2 ...
Léa
Bonjour,
Pour l'indentation, ça va je fais attention :)
Alors, même sans l'espace y a erreur. Du coup j'ai mis chaine [i] entre guillemets et entre parenthèses parce que y a print avant, eh ben ça a marché (c'est bien à cause de ça ou je fais fausse route ?)
heyquem
Salut Léa
Python émet des messages d'erreurs. Ce n'est pas pour décorer, c'est pour apporter des renseignements sur l'erreur. Lis bien ce que dit le message d'erreur.
En faisant tourner ton code je vois un curseur rouge au niveau du + =
Il faut accoler + et =, il ne faut pas de blanc entre ces deux caractères.
Léa
J'ai bien précisé que c'est une erreur de syntaxe.
heyquem
Tu as raison, le message d'erreur n'est pas trés disert. Mais dans IDLE, une erreur de syntaxe s'accompagne d'un curseur rouge ou d'une position aberrante du curseur normal qui donnent un renseignement sur l'endroit où se produit l'erreur dans le code.
Quel IDE utilises-tu ?
Léa
Oui oui j'ai dit que l'erreur viendrait de chaîne (le curseur rouge est sur chaîne) J'ai finalement mis les parenthèses et guillemets et ça a marché. C'est bien sauf que j'ai pas très bien compris le principe (que vient faire la longueur par exemple)
J'utilise le idle 3.3
heyquem
Ah mais excuse moi, je n'avais pas compris en fait, parce que j'ai fait tourner ton code avec Python 2.7 dans lequel l'erreur est au niveau du + = alors que tu utilises Python 3 dans lequel effectivement, l'erreur se produit sur print chaine [i] La raison est qu'en Python 3, print() est devenue une fonction, alors que dans les versions précédentes print est un statement qui n'a pas besoin de parenthèses.
Par contre, je ne vois pas ce que tu veux dire en disant que tu as mis des guillemets.
Et de quelle longueur parles-tu ?
heyquem
chaine = 'le petit chaperon rouge'
print 'b' in chaine
print 'i' in chaine
for x in 'azerty':
if x in chaine:
print ('le caractere %r '
'se trouve dans %r'
% (x,chaine))
else:
print ('le caractere %r '
'ne se trouve pas '
'dans %r'
% (x,chaine))
Le résultat:
False
True
le caractere 'a' se trouve dans 'le petit chaperon rouge'
le caractere 'z' ne se trouve pas dans 'le petit chaperon rouge'
le caractere 'e' se trouve dans 'le petit chaperon rouge'
le caractere 'r' se trouve dans 'le petit chaperon rouge'
le caractere 't' se trouve dans 'le petit chaperon rouge'
le caractere 'y' ne se trouve pas dans 'le petit chaperon rouge'
PS: regarde ce qu'il se passe si tu remplace %r par %s