On commence: بسم الله

Une chaîne de caractères est tout simplement un texte.

En Python, il est nécessaire d’entourer le texte de guillemets, soit doubles (") ou simples (‘), pour que le système le reconnaisse comme tel et non comme une variable (comme nous l’avons déjà discuté dans l’introduction).

Si ta question est: Pour quoi ils existent deux symboles pour la meme chose (chaine de caractères) ,

Voilà une petite mission pour que tu comprend:

En utilisant seulement un des symboles qu’on a vu, Ecris un code qui affiche les textes suivants:

  • j’attends
  • il a dit: "Non"

N’oublie pas que tu doit afficher toutes les caractères dans les textes, je te laisse la cellule en dessous pour tester ton code*

C’est possible à le faire, mais ça va nécessiter un syntaxe un peut compliqué pour les débuteurs.

Voilà comment on peut afficher les 2 messages en Python:

Je pense que l’utilité de l’existance de 2 symboles est claire: On va avoir des erreurs si on la chaine contient le symbole à l’extremité

Hmmm, je pense que ta question maintenant est:

Qu’est ce qu’on va faire si on veut une chaine de caratères qui contient les 2 symboles, par exemple si on veut afficher il a dit « j’attends ».

C’est totalement possible, mais pour ne pas avoir mal à la tete voilà la solution:

Itération sur les éléments de la chaine de caractères

Soit s une chaine de caractères, si on veut accéder au premier caractère/élément de s on écrit « s[0] ». Non, ce n’est pas s[1] car …

En Python, tout commence par 0.

Donc le n-éme caractère de s est s[n-1] (Bien sur n ne doit pas dépasser la longueur de s)

Et si on note x le nombre de caractères de s, s[x] n’existe pas !!

Dans l’exemple précédent, s contient 18 caractères, donc s[18] n’existe pas.
En écrivant s[18] dans le code, une erreur va etre générée (tu peux essayer pour etre sur)
L’élément s[n] est aussi une chaine caractère.
A ton avis, si on écrit s [ -1 ], ça va donner une erreur ou pas ?

Comme tu vois: s[-1] est le dernier caractère et s[-3] le 3-ème avant dernier . Pour l’itération négative, on ne peut pas avoir une indice inférieure à moins la longueur (dans le cas de s = "Python", on ne peut pas écrire s[p] si p<-6)

Maintenant si on veut accéder à un extrait d’une chaine de caractère s.

Soit n et p, L’extrait commençant par le n-ème caractère et p-ème caractère est s[n, p + 1] (!!! Si on écrit s[n,p], p ne vas pas etre inclu dans l’extrait)

Remarque:

Soit une chaine s de taille/longueur n, s est égale à s[0,n]

En Python ce syntaxe est défini:

Remarque: s est égale à s [ : ]

Je te recommande de commencer à créer des codes en utilisant les notions que nous avons vu. Essaye des syntaxes que tu penses etre logique et vois s’il y a une erreur ou tout va bien. Adapte à la logique des chaines de caractères avant de passer au reste du cours:

Comment savoir la longueur d’une chaine de caractères?

Tout simplement, on utilise la fonction len() (vient du mot anglais length).

Si s est une chaine de caractères, écrire len(s) c’est dire au pc de donner la taille de s (nombre de caractères).

NB : Toute chaine de caractères s est égale à s [ 0 : len(s) ]

Chaine vide:

Cette notion donne un sens contradictoire; une chaine de caractères implique qu’il y’a plusieurs caractères, donc comment une chaine sans caractère? C’est la faute de traduction, en anglais c’est String donc ça ne pose pas de problème de dire An empty string mais les français ont choisi de traduire string en chaine de caratère (C’est leur faute 🤷‍♂️🤷‍♂️)

Nevermind, une chaine vide c’est à dire ça longueur vaut 0 et s’écris ""

NB:

Soit s une chaine de caractère, on ne peut pas modifier s sauf si on affecte une autre valeur.

Par exemple si s = « Yaszir » et je veux changer le « z » en « s », je ne peut pas changer s[3] (par contre pour les listes on peut le faire), pour le faire je dois changer toute la chaine: s = « Yassir » .

Opérations sur les chaines de caractères

Concaténation :

C’est l’opération qui permet de coller deux chaines de caractères ou plus.

Tout simplement on utilise l’opérateur « + »:

NB :

Tu peux revoir le cours de l’introduction si tu n’as pas bien compris la logique de la nommination des variables

Essaye des syntaxes que tu penses etre logique et vois s’il y a une erreur ou tout va bien

Opérateur Format:

Ecris un code qui prend le nom de l’utilisateur comme input est affiche *Bonjour xxxx, je m’appelle Yassir » (tu dois remplacer « xxxx » par son nom ).

C’est simple, tu peux le faire.

Voilà le corrigé, Je vais utiliser 2 méthodes:
Comme tu vois les symboles « { » et « } » ne sont pas inclus.

NB :

Si tu as des difficultés, tu peux me contacter via l’email yassiramhot@almouahndis.com

Multiplier une chaine par un entier:

En Python en peut utiliser l’opérateur « * » entre un entier n et une chaine de caractères s.

Cette commande va créer une nouvelle chaine de caractères égale à s répétée n fois. (NB: toute s est égale à s1*)

Multiplier une chaine par un booléen:

La multiplication d’une chaine de caractères par un booléen donne la meme chaine si c’est Vrai (True) et ça donne une chaine vide si c’est Faux (False)

Si tu veux savoir l’utilité de cette notion, voilà un petit exercice:

Ecris un code qui prend un entier comme input. Le code doit afficher « Positif », « Négatif » ou « Nul » selon la signe de l’input.

Solution:

les fonctions chr ( ) et ord ( ): C'EST TRES IMPORTANT !!

Tu dois premièrement savoir que les programmers ont classé toutes les caractères qui existent dans une table qui s'appelle ASCII *American Standard Code for Information Interchange *.

Donc on a affecté un nombre à chaque caractère dans ton clavier.

Tu peux visiter ce lien pour voir la liste exaustive (regarde seulement les colonnes DEC et Char).

La liste commence par l'élément null si on parle en français c'est la notion rien (oui rien existe dans Python 😂😂).

La fonction qui donne l'indice des caractère en ASCII est la fonction ord ( ).

Le caractère A est le 65-ème élément dans la liste, donc: ord("A") est égale à 65.

NB:

Note que:

  1. J'ai utilisé "caractère" et pas "lettre", c'est parce qu'on parle en Python.
  2. J'ai écrit ord('A') et pas ord(A) car Python va comprendre que je parle d'une variable appelée A

Fait attention:

  • Si on veut savoir l'indice/ordre d'un chiffre, par exemple 5, on doit écrire ord ("5") (et pas ord (5)).
  • La fonction ord ( ) ne peut pas prendre plus qu'un seul caractère, par exemple si on écrit ord ( "Yassir" ) on va avoir une erreur.

Tu peut tester ces 2 remarques dans cette cellule:

La fonction chr ( ) est la fonction réciproque de ord ( ).

Donc, si x est une caractère : x = char ( ord( x ) )

NB:

La fonction ord ( ) retourne un entier, et chr ( ) retourne un charactère

Laisser un commentaire

Retour en haut