Chaînes : travailler avec du texte
Python compte les lettres de "Python" à partir de 0, donc "Python"[5] est la dernière lettre, n, et "Python"[6] est une erreur.
Une étiquette de nom a besoin de texte assemblé à partir de morceaux
Pense aux badges d'un événement scolaire ou d'une réunion de club. Chaque badge a la même mise en page et un nom différent, un programme peut donc les imprimer tous à partir d'un seul modèle. Le texte en Python est une chaîne, et le moyen le plus rapide d'en construire une à partir de morceaux est une f-string : mets la lettre f devant le guillemet ouvrant et écris des noms de variables entre accolades. Python remplace chaque {name} par la valeur de cette variable.
name = "Mina"
club = "Robotics"
print(f"Hello, {name}!")
print(f"{name} joined {club}.")Hello, Mina!
Mina joined Robotics.Il existe deux façons plus anciennes d'assembler du texte. L'opérateur + colle les chaînes bout à bout, et * répète une chaîne. Les deux côtés de + doivent être des chaînes : un nombre doit donc d'abord être converti en texte avec str(). Les f-strings font cette conversion pour toi, ce qui explique en partie pourquoi elles sont le choix habituel.
item = "gimbap"
count = 2
print(item + " x " + str(count))
print("-" * 12)
print(f"{item} x {count}")gimbap x 2
------------
gimbap x 2Chaque caractère a un numéro de position, à partir de 0
Une chaîne est une suite de caractères, et chacun a un indice. Le premier caractère est à l'indice 0, pas 1. Les crochets désignent un caractère : word[0] est le premier. Les indices négatifs comptent depuis la fin, donc word[-1] est toujours le dernier caractère, quelle que soit la longueur. len() donne le nombre de caractères, espaces et ponctuation compris.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])P n n
6
Py thonword[0:2] est une tranche : elle commence à l'indice 0 et s'arrête juste avant l'indice 2, ce qui donne "Py". Omets la fin, comme dans word[2:], et la tranche va jusqu'à la fin de la chaîne. La règle « s'arrêter avant » paraît étrange au début, mais elle fait que word[0:2] + word[2:] redonne toujours le mot entier.
Les méthodes de chaîne renvoient une nouvelle chaîne
Les chaînes viennent avec des outils intégrés appelés méthodes, écrites après un point. upper() et lower() changent la casse, replace(old, new) remplace chaque exemplaire d'un morceau de texte par un autre, et strip() retire les espaces aux deux bouts, ce qui aide quand quelqu'un tape une espace en trop dans un formulaire. Le mot-clé in vérifie si une chaîne apparaît dans une autre et donne True ou False. Aucune d'elles ne modifie la chaîne d'origine. Une chaîne ne peut plus être modifiée une fois créée ; chaque méthode renvoie une nouvelle chaîne, que tu gardes en l'affectant à un nom.
menu = " tteokbokki "
clean = menu.strip()
print(clean.upper())
print(clean.replace("k", "K"))
print("bok" in clean, len(menu), len(clean))TTEOKBOKKI
tteoKboKKi
True 14 10Pour mettre un guillemet dans une chaîne, entoure-la de l'autre sorte de guillemet : "It's fine". Une barre oblique inverse commence une séquence d'échappement : \n dans une chaîne veut dire « va à la ligne ici », un seul print peut donc afficher deux lignes.
print("It's lunch time.")
print("Line one\nLine two")It's lunch time.
Line one
Line two| f-string | f"...{name}..." place des valeurs dans du texte |
| indice | Numéro de position d'un caractère, à partir de 0 |
| tranche | s[a:b] : de l'indice a jusqu'à b exclu |
| len() | Nombre de caractères d'une chaîne |
| méthode | Un outil écrit après un point, comme s.upper() |
| \n | Séquence d'échappement pour un retour à la ligne |
| in | "a" in "cat" donne True |
- Qu'affiche ce code ?
word = "banana" print(word[1]) - Qu'affiche ce code ?
word = "banana" print(word[-2]) - Qu'affiche ce code ?
print(len("Hi there!")) - Qu'affiche ce code ?
word = "school" print(word[1:4]) - Qu'affiche ce code ?
name = "Jun" print(f"Hi {name}, you are {13 + 1}.") - Qu'affiche ce code ?
print("ab" * 3) - Qu'affiche ce code ?
s = "hello" s.upper() print(s)HELLOhelloHelloUne erreur
- Qu'affiche ce code ?
print("rice" in "fried rice") - Qu'affiche ce code ?
name = "Mina" print(f"{name}") print("{name}")Mina
MinaMina
{name}{name}
Mina{name}
{name}
- Qu'affiche ce code ?
print("Total: " + str(3 * 1000))Total: 3000Total: 3 * 1000Total: 31000Une erreur
- « La première lettre est word[1]. » Les indices commencent à 0, donc word[1] est la deuxième lettre. Le dernier indice valide est len(word) - 1 ; "Python"[6] s'arrête avec IndexError: string index out of range.
- « "Age: " + 15 affiche Age : 15 » Une chaîne et un int ne peuvent pas être assemblés avec +. Python s'arrête avec TypeError: can only concatenate str (not "int") to str. Utilise str(15) ou une f-string.
- « Je peux corriger une lettre avec word[0] = "J". » Les chaînes ne peuvent pas être modifiées sur place : TypeError: 'str' object does not support item assignment. Construis plutôt une nouvelle chaîne, par exemple "J" + word[1:].
- f"...{x}..." place des valeurs dans du texte.
- Les indices commencent à 0 ; -1 est le dernier caractère.
- s[a:b] va de a jusqu'à b exclu.
- Les méthodes comme upper() renvoient une nouvelle chaîne ; l'original est inchangé.
- "\n" est un saut de ligne dans une chaîne.
Sources de ce cours (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Consulté le: 2026-10-19