Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Séquences, bases
P-uplets, tableaux et chaînes de caractères
Dans ce chapitre, Nous abordons trois structures de données servant dans des contextes différents mais dont la syntaxe est très proche en Python.
- Les p-uplets. Exemple :
x = (4, 8, 19, 32), en Python c'est le typetuple - Les tableaux. Exemple :
x = [4, 8, 17, 32], en Python c'est le typelist - Les chaînes de caractères. Exemple :
x = "ay$2", en Python c'est le typestr
Dans les trois cas, on parle d'une variable x qui contient plusieurs données. Les deux premiers contiennent les entiers 4, 8, 19 et 32 ; la chaîne contient les caractères 'a', 'y', '$' et '2'.
- Les chaînes servent pour contenir du texte,
- p-uplets et tableaux servent pour contenir n'importe quoi.
L'unique différence est qu'on ne peut pas modifier le contenu du p-uplet une fois qu'il est créé. Cela peut sembler contraignant mais c'est c'est souvent utile.
Notion de rang
Défintion du Larousse : item = Tout élément d'un ensemble considéré en tant que terme particulier.
Dans les 3 cas, on parle d'une séquence d'items qui sont placés dans un certain ordre et chaque item a donc un numéro d'ordre, c'est à dire un rang ou indice – index en anglais.
Le rang du premier item est 0.
- Dans
x = "ay$2", l'item de rang0est'a', l'item de rang2est'$'. - Dans
x = [4, 8, 17, 32], l'item de rang0est4, l'item de rang2est17.
Quand vous manipulerez une séquence dans un programme, vous devrez toujours bien réfléchir : telle variable que vous utilisez représente-t-elle un item ou le rang d'un item ?
Accès à un item de rang connu
On peut facilement accéder à un item dont on connaît le rang.
>>> x = "ay$2" >>> x[1] 'y'
IndexError
En ligne 1, x[1] signifie que l'on veut l'item de rang 1 dans la chaîne x.
>>> x = "ay$2" >>> x[5] IndexError: string index out of range
Il n'y a pas d'item de rang 5, on a donc une IndexError → Erreur de rang.
not subscriptable
>>> x = 152 >>> x[1] TypeError: 'int' object is not subscriptable
Dans ce cas, x est un entier, pas une séquence. En écrivant x[1], on essaie d'atteindre l'item de rang 1 dans x, mais cela n'a aucun sens pour un entier.
Le message d'erreur signifie que l'on ne peut pas utiliser l'écriture [] pour un entier.
Soyez attentif à ces messages d'erreur. Il est fréquent que l'on se trompe en écrivant [] au lieu de (). Si on comprend le sens des messages d'erreurs, on sait tout de suite quoi corriger.
Retenez bien : En Python, la syntaxe nom_de_variable[indice] sert à atteindre un item dans une séquence, que la séquence soit str, tuple ou list – ou autre chose…
Longueur de la séquence
On peut avoir besoin de connaître le nombre d'éléments de la séquence. On parle de longueur, en anglais length. On utilise la fonction len.
>>> x = "ay$2" >>> len(x) 4
Appartenance et énumération
Python est un langage très expressif : Les lignes de programmes Python sont très proches d'un énoncé très rigoureux comme un énoncé mathématique. Cela est rendu possible par certains mots clés du langage comme le in.
>>> x = "ay$2" >>> '$' in x True >>> 'z' in x False
Le mot clé inproduit une expression logique : item in sequence est vrai si et seulement si item est contenu au moins une fois dans sequence.
Le mot clé in va également servir dans le cadre d'une énumération, avec une boucle POUR.
for item in sequence:
# la boucle se répète pour chaque item
# contenu de la séquence, dans l'ordre
print(item)
# par exemple on affiche l'item
Comparez le pseudo-code et le Python, vous pouvez voir que c'est presque du mot à mot :
FONCTION contient_voyelle(texte)
ENTRÉE: texte, une chaîne de caractère
SORTIE: vrai si texte contient une voyelle
DÉBUT
POUR CHAQUE lettre parmi a, e, i, o, u, y RÉPÉTER
SI lettre dans texte ALORS
RENVOYER vrai
FIN
FIN
RENVOYER faux
FIN
def contient_voyelle(texte:str) -> bool:
"""
texte: chaîne de caractère
renvoie True si texte contient une voyelle
"""
for lettre in "aeiouy":
if lettre in texte:
return True
return False
Le mot clé in peut être inversé par not. Par exemple :
if 'e' not in texte:
print("la lettre e n'est pas présente dans texte.")
