Bases & algorithmique · 6 mondes · 18 étapes

Python avancé

Le langage lui-même : texte, compréhensions, objets, erreurs, modules.

Progression

0 %

0/18 étapes terminées

Fondamental · 9 min de lecture

Chaînes et formats

Le texte est la matière première de tout programme

1Définition

Une chaîne est une séquence immuable de caractères. Toutes ses méthodes renvoient une nouvelle chaîne ; aucune ne modifie l'originale. Les tranches extraient par position, les f-strings composent l'affichage.

2Principes fondamentaux

01

Immuable veut dire immuable

nom.upper() sans affectation ne fait rien d'utile. Il faut nom = nom.upper().

02

Nettoyer avant de traiter

strip() sur toute donnée venue d'un fichier, d'un formulaire ou d'une API : les espaces invisibles sont la première cause de comparaisons qui échouent.

03

La borne de fin est exclue

texte[0:3] donne trois caractères. C'est la même convention que range, et c'est ce qui rend texte[:n] + texte[n:] égal au texte entier.

04

Formater plutôt que concaténer

f"Score : {points}" remplace "Score : " + str(points) : plus court, plus lisible, et sans conversion manuelle.

3Exemples pratiques

Découper une ligne de données

Exemple
1ligne = "  Codey ; 4200 ; YAOUNDE  "2 3champs = [c.strip() for c in ligne.strip().lower().split(";")]4print(champs)     # ['codey', '4200', 'yaounde']

On nettoie la ligne, on découpe, puis on renettoie chaque champ : les espaces autour des séparateurs ne partent pas tout seuls.

Formats utiles

Exemple
1prix = 1234.56782 3print(f"{prix:.2f}")        # 1234.57  deux décimales4print(f"{prix:>12.2f}")     #      1234.57  cadré à droite5print(f"{'nom':<8}|")       # nom     |  cadré à gauche6print(f"{0.4237:.1%}")      # 42.4%  pourcentage

Ces quatre formats couvrent l'essentiel d'un tableau affiché en console ou d'un montant présenté à un humain.

4Erreurs courantes

Oublier l'affectation

À éviter

nom = "codey"nom.upper()print(nom)   # codey

À faire

nom = nom.upper()

Pourquoi : La méthode renvoie une copie. Sans affectation, le résultat est calculé puis jeté.

Comparer sans normaliser

À éviter

if saisie == "oui":

À faire

if saisie.strip().lower() == "oui":

Pourquoi : « Oui » et « oui » sont deux chaînes différentes. Toute comparaison de saisie exige une normalisation.

Concaténer un nombre

À éviter

print("Score : " + 40)

À faire

print(f"Score : {40}")

Pourquoi : TypeError. La f-string convertit d'elle-même, sans str().

5Subtilités à connaître

  • ◆split() sans argument découpe sur n'importe quelle succession d'espaces et ignore les espaces de tête et de queue — souvent exactement ce qu'on veut.
  • ◆"".join(liste) est la bonne façon de recoller des morceaux : une addition dans une boucle recrée une chaîne à chaque tour.
  • ◆Les tranches ne lèvent jamais d'IndexError : texte[5:99] renvoie ce qui existe. Un accès direct texte[99], si.

6Vérifie ta compréhension

Question 1/3

Score 0

Que vaut "PYTHON"[1:4] ?

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.