1c Lecture d'un caractère d'index précis avec [index]
On utilise le nom du string, un crochet d'ouverture, le numéro d'index et un crochet de fermeture.
index 0 veut dire le premier caractère.
index 1 veut dire le deuxième caractère .
..
index -1 veut dire le dernier caractère (avec Python, ce n'est pas une généralité)
index -2 veut dire l'avant-dernier caractère (avec Python, ce n'est pas une généralité).
une lecture sur un index impossible déclenche une erreur.
1
2
3
4
5
6
a="bonjour"n0=a[0]# La variable contient le 'b' initialn1=a[1]# La variable contient 'o'n2=a[2]# La variable contient 'n'n6=a[6]# La variable contient le 'r' finalnf=a[-1]# La variable contient le 'r' final
1d Parcours et lecture des éléments via une boucle FOR numérique
Il suffit de lire les éléments de l'index 0 jusqu'à l'index "longueur-1".
La variable caractere va prendre successivement les valeurs 'b', puis 'o', puis 'n' ...
1f Non mutabilité du string
En Python, le string est immuable ou non mutable : on ne peut pas modifier les caractères après création du string. Le code suivant provoquerait une erreur :
1
2
a="bonjour"a[0]="B"
Si on veut modifier un string, on ne peut pas réellement le faire : il faut récréer un string et écraser l'ancienne variable par une variable ayant le même nom.
Exemple avec un code qui transforme les o en X en créant par concaténation un nouveau string. Il ne s'agit donc pas réellement d'une modification : la variable mot de la ligne 7 est bien une nouvelle variable car son ID-mémoire n'est pas celui de la variable de la ligne 1.
Une fonction ne peut donc pas modifier un string : elle ne peut que renvoyer un nouveau string. Cette réponse pourra éventuellement écraser l'ancienne variable.
18.2 Tableaux
2a Déclaration avec des crochets [ ]
Un tableau (statique) est une structure de données ayant les propriétés suivantes :
nombre fixé de cases après la déclaration initiale du tableau.
même type de données dans chaque case
indexable par un numéro (comme les strings)
Avec Python, les tableaux sont implémentés via le type natif list qui est muable.
Depuis un tableau de base : on peut déclarer un nouveau tableau en définissant ses éléments à l'aide des éléments d'une autre structure indexable, comme un autre tableau de base par exemple.
1
2
base=[1,2,5]nouveau=[element*10forelementinbase]
Le tableau nouveau va alors contenir [10, 20, 50].
On peut également créer un nouveau tableau simplement à partir d'une succession numérique qu'on peut créer à l'aide d'un inrange :
1
nouveau=[x*10forxinrange(5)]
Le tableau nouveau va alors contenir [0, 10, 20, 30, 40].
Enfin, on peut même utiliser des tests pour savoir si on agit sur l'élément ou pas :
Comme avec les deux structures précédentes : deux façons de faire mais on perd la valeur de l'index avec le FOR nominatif.
3f Non mutable
Avec Python, le type natif tuple est immuable / non mutalbe : on peut pas peut modifier le contenu d'un tuple après création.
Comme avec le string, on peut par contre écraser l'ancienne variable par une variable qui porte le même nom.
3g Retour multiple
L'un des intérêts des tuples est lié à la capacité de renvoyer plusieurs variables via le return. On peut se passer des parenthèses autant dans le return qu'à la réception.
Néanmoins, autant les mettre, cela montre explicitement la nature du tuple qu'on envoie ou qu'on reçoit.
Exemple :
1
2
3
4
deftest():return(50,100)x,y=test()
18.4 Passage d'un type à l'autre
str tente de transformer les données fournies en une string
list tente de transformer les données fournies en un tableau (list)
tuple tente de transformer les données fournies en un p-uplet (tuple)
La transformation de string en tableau en utilisant un élément séparateur est possible avec la méthode des strings nommée split. Très pratique pour créer un tableau à partir d'un fichier texte.
>>>phrase="Voici un exemple de phrase, il permet de compter les mots.">>>mots=phrase.split()>>>mots['Voici','un','exemple','de','phrase,','il','permet','de','compter','les','mots.']>>>nbr_mots=len(mots)>>>nbr_mots
La version encapsulée dans une fonction : une tâche = une fonction.
Et du coup, nous pouvons en faire une fonction :
1
2
3
4
defcompter_mots(phrase)'''Renvoie le nombre de mots dans le string phrase'''mots=phrase.split()returnlen(mots)
18.5 Appartenance
On peut tester si un élément est présent dans un string, un tableau ou un tuple avec le mot-clé in.
>>>tableau=[12,5,18]>>>5intableauTrue>>>6intableauFalse>>>nuplet=("alors","ça","va","?")>>>"ça"innupletTrue>>>"ca"innupletFalse>>>chaine="Alors, ça va ?">>>"Alors"inchaine>>>"Bonjour"inchaineFalse