En python, les chaînes de caractères sont de type string (str).
c = 'hello'
type(c)
On peut obtenir une des lettres de la chaîne :
c[0]
c[4]
La longueur (length en anglais) de la chaîne est :
len(c)
On peut comparer deux chaînes :
'oui' == 'non'
'oui' != 'Oui'
Ecrire un programme qui cherche si la lettre 't' est présente dans une chaîne entrée. Si oui, afficher "la lettre t est présente", si non...
chaine = input("Entrer un mot ou une phrase : ")
longueur_chaine = len(chaine)
i = 0
while i < longueur_chaine:
if chaine[i] == 't':
print("La lettre t est présente dans la chaîne entrée.")
i = i+1
Les défauts du programme ci-dessus sont :
Amélioration :
chaine = input("Entrer un mot ou une phrase : ")
longueur_chaine = len(chaine)
i = 0
trouve = False
while (trouve == False) and (i < longueur_chaine):
if chaine[i] == 't':
print("La lettre t est présente dans la chaîne entrée.")
trouve = True
i = i+1
if trouve == False:
print("La lettre t n'est pas présente dans la chaîne entrée.")
Tests. On teste une chaîne sans t, une chaîne avec t au début, avec t à la fin, avec t vers le milieu.
Ecrire un programme qui demande à l'utilisateur d'entrer "bonjour" et qui recommence jusqu'à ce que la saisie soit correcte.
entree = ""
while entree != "bonjour":
entree = input("Entrez 'bonjour' : ")
Ecrire un programme qui renvoie VRAI si la chaîne entrée contient la suite de lettres 'ent' et FAUX sinon.
entree = input("Entrer un mot ou une phrase : ")
longueur_entree = len(entree)
retour = False
i = 0
while (i < longueur_entree-2) and (retour == False):
if (entree[i] == 'e') and (entree[i+1] == 'n') and (entree[i+2] == 't'):
retour = True
i = i+1
print(retour)
Pour présenter les différents tests effectués, remplaçons le programme ci-dessus par une fonction :
def chaine_contient_ent(entree):
longueur_entree = len(entree)
retour = False
i = 0
while (i < longueur_entree-2) and (retour == False):
if (entree[i] == 'e') and (entree[i+1] == 'n') and (entree[i+2] == 't'):
retour = True
i = i+1
return retour
chaine_contient_ent("fglendsfterfze"), chaine_contient_ent("fdfentfterfze"), chaine_contient_ent("ent"), chaine_contient_ent("trident")