Les bases de Python : valeurs, variables et expressions

Écris et exécute tes premiers programmes Python. Découvre comment Python stocke les nombres entiers, les nombres décimaux et le texte, comment les variables nomment les valeurs et permettent de les mettre à jour, et comment les opérateurs et les priorités opératoires transforment les valeurs en résultats. Lis les saisies de l’utilisateur, convertis-les dans le bon type, affiche des résultats clairs, explique ton code avec des commentaires et utilise les messages d’erreur pour corriger les erreurs.

DébutantUnité 1 sur 10 de la formation Formation : Python : variables, boucles, fonctions et fichiers

Ce que tu vas apprendre

  1. Exécute du code Python dans la console interactive et sous forme de fichiers de script enregistrés, suis l’exécution d’un programme de haut en bas, lis les messages d’erreur pour corriger les erreurs et explique le code avec des commentaires.
    • Exécuter du code dans la console et sous forme de script
      Distingue la console interactive d’un fichier de programme enregistré, exécute du code des deux façons et prévois ce que chacune affiche à l’écran.
    • Lire les messages d’erreur et corriger les erreurs courantes
      Reconnais les erreurs de syntaxe, d’exécution et de logique, lis une trace d’appels de bas en haut et corrige les erreurs les plus fréquentes chez les débutants.
    • Expliquer du code avec des commentaires
      Écris des commentaires qui aident à comprendre un programme et sache quel texte Python ignore et quel texte il traite comme du code ou des données.
  2. Reconnais les types de base des valeurs que Python manipule, nombres entiers, nombres décimaux, texte et valeurs vrai ou faux, et écris correctement chacune d’elles dans le code.
    • Distinguer les valeurs et les types
      Identifie le type d’une valeur, vérifie-le avec type() et explique pourquoi le type détermine ce que tu peux faire avec cette valeur.
    • Écrire des nombres entiers et des nombres décimaux
      Écris correctement des littéraux int et float, y compris de très grands et de très petits nombres, et explique pourquoi les résultats de type float sont parfois légèrement inexacts.
    • Écrire du texte sous forme de chaînes de caractères
      Crée des chaînes avec des guillemets simples, doubles ou triples, insère des guillemets et des caractères spéciaux à l’intérieur et distingue le texte du code.
  3. Utilise l’affectation pour donner des noms aux valeurs, choisis des noms valides et clairs et suis l’évolution des valeurs des variables pendant l’exécution d’un programme.
    • Affecter des valeurs à des variables
      Crée des variables avec des instructions d’affectation, explique le rôle du signe égal en Python et utilise les variables dans les instructions suivantes.
    • Choisir des noms de variables valides et parlants
      Suis les règles et les conventions de style de Python pour les noms, évite les mots-clés et les noms natifs, et choisis des noms qui indiquent le sens d’une valeur.
    • Mettre à jour des variables et suivre l’exécution d’un programme
      Modifie des variables avec l’affectation augmentée, échange correctement deux valeurs et suis un programme ligne par ligne avec un tableau de suivi pour prévoir son affichage.
  4. Construis des expressions avec les opérateurs arithmétiques et textuels de Python, prévois leurs résultats et leurs types, et utilise les priorités opératoires et les parenthèses pour calculer ce que tu souhaites.
    • Utiliser les opérateurs arithmétiques
      Calcule avec +, -, *, /, //, % et **, et prévois si chaque résultat est un int ou un float.
    • Appliquer les priorités opératoires
      Prévois comment Python évalue une expression contenant plusieurs opérateurs et utilise des parenthèses pour lui faire calculer ce que tu souhaites.
    • Répartir des quantités avec la division entière et le reste
      Utilise // et % pour répartir une quantité en groupes entiers et obtenir ce qui reste, puis applique-les au temps, à l’argent et aux chiffres.
    • Combiner du texte et des nombres dans des expressions
      Assemble et répète des chaînes avec + et *, et prévois ce qui se passe lorsqu’une expression mélange des entiers, des flottants et des chaînes.
  5. Écris de courts programmes complets qui demandent des données à l’utilisateur, les convertissent dans le bon type, effectuent des calculs et affichent des résultats clairs.
    • Convertir des valeurs d’un type à l’autre
      Utilise int(), float(), str() et round() pour changer le type d’une valeur ou l’arrondir, prévois le résultat et reconnais les conversions qui échouent.
    • Afficher des résultats avec print()
      Affiche du texte et des valeurs avec print(), contrôle les espacements et les fins de ligne avec sep et end, et présente un affichage facile à lire.
    • Lire une saisie et écrire un programme complet
      Demande des données à l’utilisateur avec input(), convertis-les avant de calculer et combine entrée, traitement et sortie dans un court programme fonctionnel.

Python : cours

5 chapitres

1

Exécuter du code et comprendre le résultat

Un programme court est plus facile à comprendre lorsque tu sais où l’exécuter et à quoi t’attendre à l’écran. Commence par des essais rapides dans la console Python, puis enregistre une suite d’instructions pour pouvoir l’exécuter à nouveau. Apprends à distinguer un calcul qui reste invisible d’un résultat affiché, à lire les indices dans les messages d’erreur et à laisser des commentaires utiles à la prochaine personne qui lira ton code. Cette personne pourrait être toi une semaine plus tard.

1.1 La console et un programme enregistré

Un programme est une suite d’instructions. L’interpréteur Python lit le code Python et exécute ces instructions. Utilise Python 3, où un appel comme print("Hello") comporte des parenthèses.

Essaie une ligne dans la console

La console interactive, ou REPL, affiche >>> lorsqu’elle est prête à recevoir du code Python. Saisis une instruction après l’invite et appuie sur Entrée. Tu ne saisis pas toi-même >>>.

>>> 3 + 4
7
>>> "hi"
'hi'

La console affiche automatiquement la valeur d’une expression. Elle place des guillemets autour d’une chaîne pour l’identifier comme du texte. Une invite ... signifie qu’une instruction est inachevée et que Python attend la suite. Par exemple, une parenthèse ouvrante peut encore avoir besoin de sa parenthèse fermante. Saisis exit() à une invite prête à recevoir une instruction pour quitter la console.

La console est utile pour tester une expression. Elle peut conserver un historique des commandes, mais cet historique n’est pas un programme enregistré. Place dans un script les instructions que tu souhaites exécuter à nouveau ensemble.

Enregistre et exécute un script

Un script est un fichier de code en texte brut portant l’extension .py. Utilise un éditeur de code comme IDLE, Thonny ou VS Code. IDLE est fourni avec la distribution standard de Python. Un traitement de texte peut remplacer les guillemets droits par des guillemets typographiques ; ces derniers ne peuvent pas délimiter des chaînes Python.

Saisis ces lignes dans l’éditeur et enregistre le script :

print("Hello, world!")
print("Welcome to Python.")

Dans IDLE, choisis Run → Run Module ou appuie sur F5. L’affichage est le suivant :

Hello, world!
Welcome to Python.

Python exécute ces instructions de haut en bas. Chaque print() affiche son texte et passe à la ligne. Inverser les instructions inverse l’ordre de l’affichage.

Tu peux aussi exécuter un script enregistré depuis un terminal. Ouvre le dossier qui contient ton script, puis saisis la commande de l’interpréteur suivie du nom sous lequel le script est enregistré. Sur macOS ou Linux, la commande est généralement python3 suivie du nom du script ; Windows utilise couramment python ou py. La commande du terminal démarre l’interpréteur et lui indique quel script exécuter. Cette commande se saisit à l’invite du terminal, pas après le >>> de Python. Un éditeur en ligne peut proposer un bouton d’exécution à la place.

Détermine ce qui doit être affiché

Un script contenant uniquement 3 + 4 calcule une valeur mais n’affiche rien. Écris print(3 + 4) pour afficher 7. De même, print("hi") affiche le texte sans les guillemets qui l’entourent. Les guillemets appartiennent au code ; ils marquent le début et la fin du texte.

Python est sensible à la casse. print et Print sont des noms différents, donc Print("hi") produit une NameError, sauf si cet autre nom a été défini. Respecte exactement l’orthographe et la casse des noms natifs.

Les espaces en début de ligne ont aussi un sens. Pour ces suites d’instructions simples, commence chaque instruction à la marge gauche. Une indentation involontaire avant print("hi") peut provoquer IndentationError: unexpected indent. Les espaces à l’intérieur du texte entre guillemets sont différents : Python les affiche comme faisant partie du message.

Points clés

  • La console affiche automatiquement les valeurs des expressions ; un script a besoin de print() pour les afficher.
  • Enregistre les instructions réutilisables dans un script Python en texte brut.
  • Exécute les commandes de terminal dans le terminal et les instructions Python dans la console ou l’éditeur.
  • L’ordre des instructions, la casse et les espaces en début de ligne peuvent modifier le déroulement du programme.

1.2 Utiliser un message d’erreur pour trouver la prochaine correction

Une erreur dans un programme est un bug. La rechercher et la corriger s’appelle le débogage. Détermine d’abord le type de problème : du code que Python ne peut pas lire, une opération qui échoue pendant l’exécution ou un résultat simplement incorrect.

Trois types de problèmes
TypeCe qui se passeExemple
Erreur de syntaxePython ne peut pas lire le code ; le script ne démarre pas.Dans print("hi", une parenthèse n’est pas fermée.
Erreur d’exécutionL’exécution atteint une opération qui échoue et s’arrête à cet endroit.10 / 0 lève une ZeroDivisionError.
Erreur de logiqueLe code s’exécute mais calcule un résultat incorrect.88 + 92 / 2 n’est pas la moyenne de 88 et 92.

Python vérifie la syntaxe du script entier avant de l’exécuter. Une erreur de syntaxe vers la fin empêche même la première ligne de s’exécuter. Une erreur d’exécution est différente : les instructions précédentes ont déjà été exécutées et leur affichage reste visible.

Pour la moyenne, la division a lieu avant l’addition. Python calcule 92 / 2, soit 46.0, puis ajoute 88 pour obtenir 134.0. L’expression voulue est (88 + 92) / 2, qui donne 90.0. Aucun message d’erreur n’apparaît, car les deux expressions sont valides. Un calcul à la main te donne un résultat à comparer avec celui du programme.

Lis une trace d’appels en commençant par le bas

Supposons que le code soit :

name = "Ada"
print("Hello", nme)

La trace d’appels se termine par un message comme NameError: name 'nme' is not defined. La dernière ligne nomme l’erreur et explique ce qui a échoué. Au-dessus, Python indique l’emplacement, le numéro de ligne et le code. Compare nme avec le nom affecté plus haut : name. Corriger cette orthographe permet d’obtenir l’affichage Hello Ada.

L’emplacement indiqué est celui où Python a remarqué le problème. Si une ligne semble correcte, vérifie aussi celle qui la précède. Un guillemet ou une parenthèse manquante plus haut peut empêcher Python de comprendre la suite. Les versions récentes pointent souvent directement vers la parenthèse ouvrante sans correspondance.

Laisse le type d’erreur guider ta recherche
  • NameError : Python ne trouve pas un nom, comme avec pirnt, Print ou une variable utilisée avant son affectation. Vérifie l’orthographe, la casse et l’ordre des lignes.
  • TypeError : l’opération ne fonctionne pas avec ces types. "5" + 5 tente d’assembler du texte et un nombre.
  • ValueError : une conversion reçoit un contenu inutilisable. int("abc") reçoit du texte, mais ce texte ne décrit pas un entier.
  • ZeroDivisionError : un diviseur vaut zéro. Examine la valeur utilisée après /, // ou %.

Pour une SyntaxError, associe chaque guillemet et chaque parenthèse ouvrante à son élément fermant. print('It's late') ferme la chaîne à l’apostrophe de « It's » ; utilise print("It's late"). Le code Python 2 comme print "hi" a besoin des parenthèses de Python 3 : print("hi"). Remplace les guillemets typographiques par des guillemets droits. En cas d’indentation inattendue, supprime les espaces superflus en début de ligne.

Corrige un problème, puis exécute à nouveau le programme. Le premier échec a pu empêcher Python d’atteindre un second problème. Construis un programme quelques lignes à la fois pour que chaque nouvel échec laisse une petite zone à examiner.

Points clés

  • Une erreur de syntaxe empêche un script de démarrer ; une erreur d’exécution l’arrête après l’exécution des lignes précédentes.
  • Lis la dernière ligne de la trace d’appels pour connaître le type d’erreur, puis examine le code indiqué.
  • Un programme peut s’exécuter correctement tout en contenant une erreur de logique.
  • Utilise des résultats attendus simples pour vérifier les calculs.
  • Corrige une erreur et exécute à nouveau le programme avant de modifier davantage de code.

1.3 Des commentaires qui expliquent le but

Le code indique à Python ce qu’il doit faire. Un commentaire indique à une personne pourquoi le code le fait ou ce que signifie une valeur. Python ignore un commentaire lorsqu’il exécute le programme.

Délimite clairement le commentaire

Un commentaire commence par # en dehors d’une chaîne et se poursuit jusqu’à la fin de la ligne. Il peut être seul ou suivre une instruction :

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = 68
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)  # Show the converted temperature.

Le commentaire qui occupe toute une ligne explique le but du programme. Le commentaire en fin de ligne suit du code sur la même ligne. PEP 8, le guide de style de Python, recommande au moins deux espaces avant le # d’un commentaire en fin de ligne et un espace après. Cet espacement rend la séparation facile à voir.

Un croisillon entre guillemets est du texte ordinaire :

print("#1 is not a comment")  # This part is a comment.

L’affichage est #1 is not a comment. Python lit toute la chaîne entre guillemets, y compris son croisillon, comme une donnée. Il ignore le texte après le # suivant, car ce signe est en dehors des guillemets.

Explique le sens, pas les étapes évidentes

Compare ces commentaires :

count = count + 1  # Add 1 to count.
attempts = attempts + 1  # One more failed login.

Le premier commentaire répète une opération déjà visible dans le code. Le second indique une raison de la modification. Le lecteur sait maintenant ce que la variable compte comme tentative. Un nom clair comme attempts fournit aussi une partie des informations qu’un nom vague laisserait aux commentaires.

Les commentaires utiles expliquent une unité, un choix ou un but que le code seul ne rend pas clair. Par exemple, tax_rate = 0.08 # 8% sales tax relie un taux décimal à son sens. Si tu modifies ce taux plus tard, vérifie aussi le commentaire. Un commentaire périmé peut induire le lecteur en erreur même lorsque le code fonctionne.

Empêche temporairement l’exécution d’une ligne

Pour mettre en commentaire une instruction, place # devant elle :

print("Start")
# print("Checking this step")
print("Finish")

Seuls Start et Finish apparaissent. Mettre une ligne en commentaire permet de la conserver pendant que tu testes le programme sans elle. Supprime l’ancien code désactivé lorsqu’il n’est plus utile ; sinon, un futur lecteur devra deviner s’il est encore nécessaire.

Pour une note sur plusieurs lignes, commence chaque ligne par # :

# Read the temperature in degrees Fahrenheit.
# Keep the calculation in Celsius for the next step.

Le texte entre guillemets triples est différent. Une ligne comme """Convert a temperature.""" est une expression de type chaîne, pas un commentaire. À certains emplacements, de telles chaînes peuvent servir de documentation appelée docstring. Utilise # pour un commentaire ordinaire. Une chaîne que rien n’utilise peut rester invisible dans un script, ce qui peut la faire ressembler à un commentaire même si Python la lit comme une valeur.

Points clés

  • Un # en dehors d’une chaîne commence un commentaire qui se termine à la fin de la ligne.
  • Explique un but, un choix ou une unité que le code ne rend pas déjà clair.
  • Mettre une instruction en commentaire empêche son exécution.
  • Mets à jour les commentaires lorsque le code change.
2

Reconnaître et écrire différents types de valeurs

Python traite un dénombrement, une mesure et un morceau de texte comme des types de données différents. Leurs types influencent à la fois leur écriture et ce qu’une opération peut en faire. Apprends à reconnaître une valeur à son écriture, à examiner son type et à choisir une forme utile pour une tâche concrète. Écris ensuite soigneusement les nombres et les chaînes, notamment les points décimaux, les guillemets et les caractères spéciaux, pour que Python lise bien les données que tu voulais lui transmettre.

2.1 Les valeurs ont des types

Une valeur est une donnée, comme 42, 3.5 ou "Ada". Chaque valeur possède un type, qui indique à Python de quelle sorte de donnée il s’agit. Un littéral est une valeur écrite directement dans le code. Son écriture compte : 7, 7.0 et "7" ont des types différents.

Quatre types de base
TypeSorte de donnéeExemples
intNombre entier42, 0, -7
floatNombre en virgule flottante3.5, 2.0, -0.25
strChaîne de caractères, ou texte"Ada", 'hello', "42"
boolValeur booléenne vrai ou fauxTrue, False

Un point décimal fait de 2.0 un flottant, même si sa valeur est égale à celle de l’entier 2. Les guillemets font de "42" du texte, même si les caractères ressemblent à un nombre. Le type dépend de la valeur écrite, et non de l’usage qu’un lecteur pourrait en faire.

Les littéraux booléens ont une majuscule initiale et pas de guillemets. True est un booléen ; "True" est une chaîne. Le mot en minuscules true est un nom, et l’utiliser sans le définir produit une NameError. Une comparaison peut produire un booléen : 3 < 5 s’évalue à True.

Demande son type à Python

La fonction native type() indique le type de son argument. Dans la console, ces appels affichent :

>>> type(7)
<class 'int'>
>>> type(7.0)
<class 'float'>
>>> type("7")
<class 'str'>
>>> type(True)
<class 'bool'>

Dans un script, utilise print() pour voir ces résultats :

print(type(42), type("42"))

Cela affiche <class 'int'> <class 'str'>. Le mot class fait partie de la réponse de Python ; les noms int et str désignent les types.

Les types changent le sens des opérateurs

Avec des nombres, + additionne. Avec deux chaînes, il assemble du texte :

print(5 + 3)
print("5" + "3")

La première ligne affiche 8. La seconde affiche 53. La seconde expression contient deux valeurs textuelles, donc Python assemble leurs caractères. Il n’examine pas les caractères représentant des chiffres pour décider de les additionner.

"5" + 5 lève une TypeError : un opérande est du texte et l’autre est un entier. Vérifie les types lorsqu’une opération se comporte autrement que prévu. En particulier, voir des chiffres à l’écran ne prouve pas que la valeur stockée est numérique.

Choisis un type adapté au sens

Utilise un entier pour un dénombrement et un flottant pour une mesure qui peut comporter une fraction. Conserve un identifiant comme un code postal américain sous forme de texte. La chaîne "02134" préserve le zéro initial ; ce zéro fait partie de l’identité du code et ne sert pas à un calcul. Les numéros de téléphone peuvent aussi contenir des signes de ponctuation qu’il est utile de conserver.

La console peut afficher 'Ada', tandis que print("Ada") affiche Ada. Les deux désignent le même texte. Les guillemets de la console identifient une chaîne ; print() présente les caractères à un lecteur. Aucun de ces affichages ne modifie le type stocké.

Points clés

  • L’écriture d’un littéral détermine son type : 7, 7.0 et "7" sont différents.
  • type() indique le type d’une valeur.
  • Les opérateurs tiennent compte des types : l’addition de nombres et l’assemblage de texte sont des opérations différentes.
  • Écris les littéraux booléens True et False sans guillemets.
  • Stocke les identifiants comme les codes postaux américains sous forme de chaînes pour conserver leurs caractères.

2.2 Nombres, points décimaux et précision des flottants

Python dispose de types distincts pour les nombres entiers et les nombres en virgule flottante. Les écrire clairement évite les erreurs de syntaxe et les modifications moins évidentes des données.

Écris les dénombrements sous forme d’entiers

Un entier n’a pas de partie fractionnaire. Écris un int sans point décimal, comme 42, 0 ou -7. Les entiers Python peuvent grandir autant que la mémoire disponible le permet, sans limite fixe de taille. L’addition, la soustraction et la multiplication d’entiers sont exactes. Par exemple, 2 ** 100 donne l’entier exact 1267650600228229401496703205376.

N’utilise pas de virgules pour grouper les milliers. Écris 1000000 ou utilise des caractères de soulignement pour faciliter la lecture : 1_000_000. Ces caractères ne changent pas la valeur.

Un littéral entier décimal non nul ne peut pas commencer par un zéro. Écrire 02134 est une erreur de syntaxe. Si ces chiffres forment un identifiant dont le premier zéro compte, écris "02134" comme du texte.

Écris les quantités fractionnaires sous forme de flottants

Un flottant utilise un point décimal ou une notation avec exposant. 3.5, 2.0 et -0.25 sont des flottants. Python accepte aussi .5 et 5., qui signifient 0.5 et 5.0 ; écrire le zéro supplémentaire les rend souvent plus faciles à lire. Utilise des flottants pour des mesures comme la température ou la distance, et pour des calculs d’initiation avec des prix comportant une partie fractionnaire.

Le code Python utilise un point décimal. Une virgule sépare des valeurs ; elle ne marque jamais la partie fractionnaire. Par exemple :

x = 3.5
print(x)

affiche 3.5, tandis que x = 3,5 crée une paire de valeurs, affichée sous la forme (3, 5). De même, x = 1,000 crée (1, 0), et non mille. Ces instructions peuvent s’exécuter : l’absence de message d’erreur ne signifie donc pas que le nombre a été écrit correctement.

Utilise la notation scientifique

La lettre e signifie « multiplié par dix à la puissance » dans un littéral numérique :

LittéralValeur
1.5e31500.0
2.5e-30.0025
1e31000.0

Un littéral avec exposant est un flottant même lorsque sa valeur est un entier. Le signe moins après e rend l’exposant négatif, donc 2.5e-3 signifie 2,5 divisé par 1 000.

Attends-toi à une précision limitée

Les flottants stockent les nombres en binaire avec une précision limitée, généralement d’environ 15 à 17 chiffres décimaux significatifs. De nombreuses fractions décimales, dont 0.1, n’ont pas de représentation exacte dans ce stockage. Par conséquent :

print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))

affiche 0.30000000000000004, puis 0.3. La très petite différence vient des approximations stockées. round(..., 2) arrondit le résultat à deux décimales pour l’affichage ; il ne change pas la façon dont les flottants stockent les valeurs. Garde le calcul d’origine jusqu’à la fin, puis arrondis le résultat affiché.

Un signe peut aussi être un opérateur. Le moins unaire change le signe d’une valeur : -7 signifie moins sept. Dans 5 - -3, le premier signe moins soustrait et le second donne moins trois, donc le résultat est 8. Distingue ce signe de l’exposant négatif dans un littéral comme 2.5e-3.

Points clés

  • Écris des points décimaux dans le code et utilise des caractères de soulignement, pas des virgules, pour grouper les grands nombres.
  • Les entiers Python n’ont pas de limite fixe de taille ; la mémoire disponible les limite toutefois.
  • Un littéral contenant un point décimal ou e est un flottant.
  • De nombreuses fractions décimales sont approximatives sous forme de flottants ; arrondis le résultat final à l’affichage.
  • Le moins unaire change le signe d’une valeur.

2.3 Guillemets et caractères à l’intérieur des chaînes

Une chaîne de caractères est une suite de caractères : lettres, chiffres, espaces, signes de ponctuation et autres symboles. Les guillemets indiquent à Python où cette suite commence et se termine. Les caractères à l’intérieur sont des données, même s’ils ressemblent à du code Python.

Choisis des guillemets assortis

Les guillemets simples et doubles créent le même type, str. 'Ada' et "Ada" contiennent tous deux les mêmes trois caractères. Commence et termine une chaîne avec le même type de guillemet.

Choisis les guillemets extérieurs de façon à faciliter l’écriture d’un guillemet intérieur :

print("It's late")
print('She said "hi"')

L’affichage est :

It's late
She said "hi"

Dans print('It's late'), l’apostrophe après It ferme la chaîne trop tôt. Python ne peut alors pas lire le reste de l’instruction. Des guillemets doubles à l’extérieur gardent l’apostrophe à l’intérieur du texte.

Utilise une séquence d’échappement

Une barre oblique inverse commence une séquence d’échappement. Chacune de ces séquences courantes représente un caractère :

Écriture dans le codeCaractère dans la chaîne
\nSaut de ligne
\tTabulation
\\Une barre oblique inverse
\'Guillemet simple
\"Guillemet double

Par exemple, print("Line 1\nLine 2") affiche deux lignes. La barre oblique inverse et le n dans le code représentent ensemble un saut de ligne, pas une lettre n visible. De même, print('It\'s late') affiche It's late : le guillemet échappé devient un caractère sans terminer la chaîne.

Pour afficher une barre oblique inverse littérale suivie d’une lettre, écris une double barre oblique inverse. print("A\\B") affiche A\B. La première barre oblique inverse indique que la suivante doit être un caractère.

Conserve les sauts de ligne ou aucun caractère

Les guillemets triples permettent à une chaîne de s’étendre sur plusieurs lignes physiques. Les sauts de ligne font partie de sa valeur :

print("""Line one
Line two""")

Cela affiche Line one et Line two sur des lignes distinctes. Les guillemets triples simples fonctionnent aussi. Les guillemets triples créent toujours une chaîne ; ils ne créent pas un commentaire #.

La chaîne vide, "", ne contient aucun caractère. Elle diffère de " ", qui contient un espace. Cet espace peut être difficile à voir à l’affichage, mais il reste une partie des données.

Distingue le texte d’une expression ou d’un nom

Compare ces instructions :

name = "Ada"
print("3 + 4")
print(3 + 4)
print("name")
print(name)

L’affichage est 3 + 4, puis 7, puis name, puis Ada. Les guillemets font du premier et du troisième argument du texte littéral. Sans guillemets, Python évalue un calcul ou recherche une variable.

Oublier les guillemets autour d’un message comme Hello pousse Python à rechercher un nom. Si Hello n’a pas été défini, print(Hello) lève une NameError. Écris print("Hello") lorsque tu veux ce mot.

Les chaînes peuvent contenir des caractères de nombreuses langues et des symboles comme "café", "naïve" et "°F". Des chiffres peuvent apparaître à leurs côtés : "Room 101" est entièrement du texte. Un caractère représentant un chiffre entre guillemets ne devient pas un entier.

Points clés

  • Les guillemets simples et doubles créent tous deux des chaînes ; le type de guillemet ouvrant et fermant doit correspondre.
  • Choisis des guillemets extérieurs ou des séquences d’échappement qui gardent un guillemet intérieur dans le texte.
  • Les séquences d’échappement courantes comprennent \n, \t et \\.
  • Les guillemets triples conservent les sauts de ligne dans une chaîne.
  • Une chaîne vide ne contient aucun caractère ; un espace est un caractère.
  • Le texte entre guillemets est une donnée ; les noms et calculs sans guillemets sont évalués.
3

Nommer les valeurs et suivre leurs changements

Les variables permettent à un programme de réutiliser une valeur et de lui donner un sens reconnaissable par un lecteur. Une affectation relie un nom au résultat d’une expression ; une affectation ultérieure peut modifier ce lien. Apprends à lire ces étapes dans l’ordre, à choisir des noms que Python accepte et à distinguer un résultat enregistré d’une formule qu’il faudrait exécuter à nouveau. Les tableaux de suivi rendent ces changements visibles, y compris les étapes nécessaires pour échanger deux valeurs sans erreur.

3.1 L’affectation donne un nom à une valeur

Une variable est un nom qui désigne une valeur en mémoire. Une instruction d’affectation relie un nom à gauche de = à la valeur d’une expression située à droite.

Lis d’abord le côté droit

Dans age = 30, Python évalue 30, puis fait en sorte que age désigne cet entier. Le côté gauche doit être un emplacement valide pour affecter une valeur. 30 = age est une erreur de syntaxe : tu ne peux pas affecter une nouvelle valeur au littéral 30.

Le signe = signifie « affecter ». Il ne demande pas si deux valeurs sont égales. Le test d’égalité utilise ==. Lire l’affectation comme une opération qui va de droite à gauche rend compréhensibles des instructions comme x = x + 1 : utilise l’ancienne valeur de x à droite, calcule la nouvelle valeur, puis affecte-la à x à gauche.

Prenons un rectangle :

width = 4
height = 2.5
area = width * height
print(area)

Après la première ligne, width désigne 4. Après la deuxième, height désigne 2.5. Pour la troisième ligne, Python recherche les deux valeurs actuelles et évalue 4 * 2.5, ce qui produit 10.0. Il affecte ce résultat à area. La dernière ligne affiche 10.0.

L’affectation elle-même n’affiche pas la valeur. Utilise le nom dans un appel ultérieur à print() lorsque tu veux l’afficher.

Affecte une valeur avant d’utiliser un nom

Python suit l’ordre des instructions. Ce code échoue à la première ligne :

print(total)
total = 10

À ce stade, total n’a pas de valeur. L’affectation ultérieure ne peut pas fournir une valeur à une instruction antérieure. Déplace total = 10 avant print(total).

Une console peut conserver des noms issus d’essais précédents. Un programme enregistré doit fournir les affectations dont il a besoin dans son propre ordre d’exécution, afin que son résultat ne dépende pas de ce que tu as saisi auparavant.

Réaffecte une valeur à un nom existant

La réaffectation fait désigner une nouvelle valeur à un nom :

score = 10
score = 15

Maintenant, score vaut 15 ; l’ancienne valeur 10 n’est plus accessible par ce nom. Pour une mise à jour fondée sur l’ancienne valeur :

x = 3
x = x + 1

La deuxième ligne évalue 3 + 1, puis affecte 4 à x. Il n’y a aucune équation à résoudre et aucune contradiction.

Un type appartient à la valeur, pas définitivement au nom de variable. Python autorise temp = 3 suivi de temp = "three" ; après cela, type(temp) indique str. Garder un sens et un type attendu cohérents pour un nom rend généralement un programme plus facile à suivre.

Une valeur copiée ne crée pas de lien pour la suite
a = 5
b = a
a = 10
print(a, b)

Cela affiche 10 5. À l’instruction b = a, les deux noms désignent l’entier actuel 5. Réaffecter une valeur à a change la valeur que a désigne ; b continue de désigner 5. De même, stocker width * height enregistre son résultat, pas une formule qui se met à jour lorsque width change.

Une instruction peut affecter des valeurs à plusieurs noms. a = b = 0 donne aux deux noms la valeur 0. Dans x, y = 1, 2, les valeurs correspondent aux noms selon leur position : x vaut 1 et y vaut 2.

Points clés

  • L’affectation évalue l’expression de droite avant d’affecter sa valeur au nom de gauche.
  • Une variable doit avoir une valeur avant qu’une expression l’utilise.
  • La réaffectation change la valeur accessible par un nom.
  • Affecter une variable à une autre ne lie pas leurs affectations futures.
  • Une valeur a un type ; un même nom peut ensuite désigner une valeur d’un autre type.

3.2 Des noms que Python accepte et que les lecteurs comprennent

Un nom doit respecter la grammaire de Python et aider une personne à comprendre le programme. Ce sont deux critères distincts : Python peut accepter un nom qui rend malgré tout le code difficile à lire.

Suis les règles de nommage

Un nom de variable peut contenir des lettres, des chiffres et des caractères de soulignement. Il ne peut pas commencer par un chiffre, contenir un espace ou utiliser des signes de ponctuation comme un trait d’union.

NomCe qui se passe
total, item_count, price2, _tempNoms valides
2nd_placeInvalide : commence par un chiffre
first nameInvalide : contient un espace
first-nameLu comme une soustraction, pas comme un seul nom

Python accepte aussi les lettres d’autres alphabets. Les lettres anglaises sont un choix courant pour les identificateurs. Quelles que soient les lettres choisies, respecte toujours la même orthographe : age, Age et AGE sont trois noms différents. L’affectation age = 30 ne définit pas Age.

Distingue les mots-clés et les noms natifs

Un mot-clé est réservé à la grammaire de Python. Tu ne peux pas l’utiliser comme nom de variable. Les mots-clés réservés sont :

False None True and as assert async await break class
continue def del elif else except finally for from
global if import in is lambda nonlocal not or pass
raise return try while with yield

Tu n’as pas besoin de mémoriser cette liste avant d’écrire un programme. Pour l’instant, retiens qu’un nom comme class n’est pas disponible : class = 3 est une erreur de syntaxe. Les éditeurs affichent souvent les mots-clés dans une couleur particulière.

Les noms de fonctions natives, notamment print, input, int, str, type, sum et max, ne sont pas des mots-clés. Python t’autorise à leur affecter une valeur, mais cette affectation masque la fonction d’origine :

print = 5
print("hi")

La deuxième ligne tente d’appeler l’entier 5 et lève une TypeError. Choisis un nom qui décrit tes données, comme total, pour que la fonction native reste disponible. Redémarrer une console efface les remplacements accidentels effectués pendant les essais.

Écris les noms selon un style cohérent

PEP 8 recommande snake_case pour les noms de variables : des mots en minuscules reliés par des caractères de soulignement, comme dans hourly_rate et first_name. Le caractère de soulignement maintient ensemble les mots d’un nom sans utiliser d’espaces.

Une constante est une valeur que tu prévois de garder inchangée. Par convention, son nom s’écrit en majuscules :

SALES_TAX_RATE = 0.08

Python ne verrouille pas ce nom. Une affectation ultérieure peut le modifier ; les majuscules indiquent une intention au lecteur.

Indique le sens et les unités

hours_worked = 38 t’en dit plus que h = 38. Un nom comme distance_miles ou temp_f indique aussi l’unité, ce qui réduit le risque d’utiliser des miles comme s’il s’agissait de kilomètres ou des degrés Fahrenheit comme s’il s’agissait de degrés Celsius. Les noms courts comme x et y conviennent pour des coordonnées ou une formule brève dont le sens est déjà clair.

Évite les noms presque identiques comme total et totl. Une faute de frappe peut produire une NameError ou utiliser accidentellement une autre variable existante. PEP 8 déconseille aussi les noms d’une seule lettre l, O et I, qui peuvent ressembler à des chiffres. Quelques lettres supplémentaires peuvent rendre un calcul beaucoup plus facile à examiner.

Points clés

  • Commence un nom par une lettre ou un caractère de soulignement, puis utilise des lettres, des chiffres ou des caractères de soulignement.
  • Les mots-clés sont réservés ; les noms natifs peuvent être réutilisés, mais il vaut mieux les garder disponibles.
  • Utilise des noms descriptifs en snake_case et indique les unités utiles.
  • Les noms de constantes en majuscules indiquent une intention ; ils n’empêchent pas la réaffectation.

3.3 Mises à jour, tableaux de suivi et échanges

Une mise à jour utilise la valeur actuelle d’une variable pour calculer sa valeur suivante. Suivre chaque mise à jour dans l’ordre permet de prévoir l’affichage et de trouver des erreurs de logique avant d’exécuter le programme.

Donne une valeur initiale avant de la mettre à jour

count = count + 1 ajoute un à l’ancien décompte. Ce changement est une incrémentation. Une variable qui recueille un total cumulé est un accumulateur ; donne-lui une valeur initiale comme total = 0 avant d’ajouter des quantités.

L’affectation augmentée combine une opération et une affectation. Pour les nombres, x += 3 a le même effet que x = x + 3. Les formes disponibles comprennent +=, -=, *=, /=, //=, %= et **=.

score = 10
score -= 3
score **= 2
print(score)

La soustraction donne à score la valeur 7. L’élévation à la puissance lui donne ensuite la valeur 49, qui est affichée. Sans l’affectation initiale, une mise à jour tenterait d’utiliser un nom non défini et lèverait une NameError.

L’opérateur choisi influe aussi sur le type. En partant de n = 7, n /= 2 produit le flottant 3.5. En repartant de n = 7, n //= 2 produit l’entier 3. Python n’a pas d’opérateur d’incrémentation ++ : x++ est invalide. Écrire ++x applique deux fois le plus unaire et ne met pas x à jour ; utilise x += 1.

Suis une instruction à la fois

Un tableau de suivi enregistre les valeurs des variables après chaque instruction. Écris une colonne par variable et une ligne par étape :

price = 20
quantity = 3
total = price * quantity
price = 25
total += 5
print(total, price)
Instruction exécutéepricequantitytotal
price = 2020Non affectéNon affecté
quantity = 3203Non affecté
total = price * quantity20360
price = 2525360
total += 525365

L’affichage est 65 25. Modifier price n’a pas répété la multiplication précédente. La variable total contenait la valeur calculée 60 ; ce n’était pas une formule de tableur liée à price. Seule sa propre mise à jour ultérieure lui a donné la valeur 65.

Pour un suivi à la main, évalue le côté droit à l’aide de la ligne immédiatement au-dessus, puis mets à jour le nom auquel la valeur est affectée. Laisse toutes les autres colonnes inchangées. Compare ta prévision avec l’affichage réel du programme.

Préserve les deux valeurs lors d’un échange

Supposons que a = 1 et b = 2. La tentative a = b suivie de b = a donne 2 2. La première affectation fait perdre l’accès à la valeur initiale de a par ce nom ; la deuxième ligne recopie donc la nouvelle valeur.

Une variable temporaire garde la valeur initiale accessible :

a = 1
b = 2
temp = a
a = b
b = temp
print(a, b)

Cela affiche 2 1. Tu peux aussi écrire a, b = b, a. Python évalue les deux valeurs à droite avant d’affecter l’un ou l’autre des noms à gauche : les deux valeurs initiales sont donc disponibles pour l’échange. Suis la version avec la variable temporaire lorsque tu veux voir exactement où chaque valeur initiale est préservée.

Points clés

  • Une affectation augmentée nécessite une valeur existante.
  • Utilise += 1 pour une incrémentation ; ++ ne met pas à jour une variable Python.
  • Un tableau de suivi enregistre les valeurs après chaque instruction.
  • Modifier une variable d’entrée ne recalcule pas un résultat enregistré auparavant.
  • L’opérateur d’une mise à jour peut changer le type du résultat.
  • Un échange nécessite les deux valeurs initiales : conserve-en une temporairement ou utilise une affectation simultanée.
4

Construire des calculs avec les bons opérateurs

Une expression combine des valeurs pour obtenir un résultat. Python utilise des notions arithmétiques familières, mais tu dois écrire les multiplications, les puissances et les divisions avec les bons symboles. Découvre comment l’ordre des opérateurs détermine un calcul, comment la division entière et le reste répartissent des quantités et comment les types changent le sens de l’addition et de la multiplication. Décomposer les expressions en petites étapes t’aide à vérifier si le résultat, son type et son sens correspondent tous à ton intention.

4.1 Symboles arithmétiques et types des résultats

Une expression s’évalue à une valeur. Elle peut être un littéral seul, une variable ou une combinaison comme 2 + 3. Le signe + est un opérateur ; les valeurs sur lesquelles il agit sont ses opérandes.

Choisis l’opérateur

Les opérateurs arithmétiques de Python fonctionnent ainsi :

OpérationExpressionRésultat
Addition7 + 29
Soustraction7 - 25
Multiplication7 * 214
Division7 / 23.5
Division entière7 // 23
Reste7 % 21
Puissance7 ** 249

Écris explicitement la multiplication avec *. Une notation mathématique comme 2x ne fonctionne pas comme une multiplication en Python. Écris 2 * x ou 2 * (x + 1). Avec x = 1, 2(x + 1) tente d’appeler l’entier 2 comme s’il s’agissait d’une fonction et lève une TypeError.

L’opérateur de puissance est **, pas ^. Par exemple, 7 ** 2 vaut 49, tandis que 7 ^ 2 vaut 5, car l’accent circonflexe effectue une autre opération. Un programme peut donc s’exécuter tout en calculant un résultat que tu ne souhaitais pas.

Prévois le type autant que le nombre

La division avec / donne un flottant pour des opérandes entiers, même lorsque la division est exacte : 6 / 2 vaut 3.0. Pour obtenir un nombre entier de groupes complets, utilise // : 6 // 2 vaut 3.

Avec deux opérandes entiers, l’addition, la soustraction, la multiplication, la division entière et le reste donnent des résultats entiers. Les puissances entières non négatives aussi : 2 ** 10 donne l’entier exact 1024. Un exposant négatif change cela : 2 ** -1 donne le flottant 0.5.

Dans un calcul arithmétique ordinaire avec un entier et un flottant, le calcul utilise des valeurs en virgule flottante. 3 + 4.0 donne 7.0 ; 7.0 // 2 donne 3.0. La division entière décrit comment le quotient est arrondi, sans garantir que son type soit toujours int.

Une puissance fractionnaire permet de calculer une racine d’un nombre positif. 4 ** 0.5 donne 2.0 et 2 ** 0.5 donne environ 1.4142135623730951.

Construis un calcul à partir de valeurs nommées

Une voiture parcourt 287 miles en utilisant 10,25 gallons :

miles = 287
gallons = 10.25
mpg = miles / gallons
print("Miles per gallon:", mpg)

La division calcule 28.0, donc l’affichage est Miles per gallon: 28.0. Les noms identifient les quantités et l’indication affichée précise l’unité du résultat. Multiplier 28.0 * 10.25 permet de retrouver 287 miles et de vérifier la division.

Un diviseur nul provoque une erreur avec /, // et %. Par exemple, 10 / 0 lève une ZeroDivisionError. Examine la variable utilisée comme diviseur lorsque cette erreur se produit.

Les espaces autour des opérateurs ne changent pas leur sens : 2+3 et 2 + 3 donnent tous deux 5. Les espaces autour de = et de la plupart des opérateurs facilitent la lecture des différentes parties. Ils ne peuvent pas remplacer un opérateur ; 2 x ne signifie toujours pas une multiplication.

Points clés

  • Utilise * pour la multiplication et ** pour les puissances.
  • / donne un flottant lors d’une division d’entiers, même si le quotient est exact.
  • // avec deux entiers donne un entier ; un opérande flottant donne un résultat flottant.
  • Un exposant entier négatif produit un résultat flottant.
  • /, // et % lèvent une ZeroDivisionError lorsque le diviseur est nul.

4.2 Ordonner les opérations et regrouper les formules

Python ne calcule pas simplement une expression de gauche à droite. La priorité détermine les opérations effectuées en premier. Les parenthèses permettent de choisir un autre regroupement ou de rendre le regroupement voulu plus clair.

Applique les niveaux dans l’ordre

Pour les opérateurs présentés ici, utilise cet ordre :

  1. Expressions entre parenthèses.
  2. Puissances, **.
  3. Signes unaires, comme le moins dans -x.
  4. Multiplications et divisions : *, /, //, %.
  5. Additions et soustractions : +, -.

Pour 3 + 4 * 2 ** 2, évalue 2 ** 2 pour obtenir 4. L’expression devient 3 + 4 * 4. La multiplication donne 16 et l’addition donne 19. Avec (3 + 4) * 2 ** 2, la somme entre parenthèses vaut 7 ; la puissance vaut 4 ; le produit vaut 28.

Les opérateurs au niveau de la multiplication et de la division ont la même priorité. Procède de gauche à droite : 8 / 2 * 4 signifie (8 / 2) * 4, ce qui donne 16.0. La multiplication ne passe pas avant la division. De même, 100 / 10 / 5 donne 2.0 et 10 - 4 - 3 donne 3.

Fais attention aux puissances et aux signes

Les puissances successives se regroupent de droite à gauche. 2 ** 3 ** 2 signifie 2 ** (3 ** 2). D’abord, 3 ** 2 donne 9 ; puis 2 ** 9 donne 512. Un regroupement depuis la gauche donnerait 64, un résultat différent.

Un signe moins placé devant une puissance est appliqué après celle-ci : -2 ** 2 signifie -(2 ** 2) et donne -4. Dans (-2) ** 2, les parenthèses font de moins deux la base, donc le résultat est 4. Un signe moins après ** peut appartenir à l’exposant : 2 ** -1 donne 0.5.

Traduis tout le regroupement d’une formule

Pour calculer une moyenne, il faut additionner les deux valeurs avant de diviser par deux :

average = (88 + 92) / 2

La somme vaut 180, puis la division donne 90.0. Sans parenthèses, 88 + 92 / 2 ne divise que 92 et donne 134.0.

Une barre de fraction regroupe aussi tout ce qui se trouve au-dessus et au-dessous. Un numérateur contenant a + b et un dénominateur contenant c + d deviennent (a + b) / (c + d). Omettre l’une ou l’autre paire de parenthèses peut changer les termes qui sont divisés.

Le même problème apparaît dans une conversion de température :

celsius = (98.6 - 32) * 5 / 9

La soustraction donne 66.6, la multiplication donne 333.0 et la division donne 37.0. Sans ce regroupement, 98.6 - 32 * 5 / 9 donne 80.82222222222222.

Utilise les bons signes de regroupement

Les parenthèses rondes regroupent une expression. Les crochets et les accolades ont d’autres sens en Python. Par exemple, [2 + 3] * 4 produit [5, 5, 5, 5], et non 20.

Des parenthèses autour d’une opération qui serait de toute façon effectuée en premier ne changent pas le résultat : (2 * 3) + 1 et 2 * 3 + 1 donnent tous deux 7. Des parenthèses qui modifient le regroupement peuvent changer la valeur : 2 * (3 + 1) donne 8. Ajoute des parenthèses là où elles rendent le sens du calcul plus facile à comprendre.

Points clés

  • Évalue les parenthèses, les puissances, les signes unaires, les multiplications et divisions, puis les additions et soustractions.
  • Procède de gauche à droite à l’intérieur d’un niveau, sauf pour les puissances qui se regroupent de droite à gauche.
  • Un signe moins placé devant une puissance diffère d’une base négative : -2 ** 2 et (-2) ** 2 sont différents.
  • Regroupe le numérateur et le dénominateur entiers lorsque tu traduis une fraction en code.
  • Utilise des parenthèses rondes pour regrouper les calculs.

4.3 Groupes entiers et reste

La division entière et le reste répondent à deux questions liées : combien de groupes entiers peuvent être formés et que reste-t-il après avoir pris ces groupes ? Pour des quantités entières non négatives, cette paire est utile pour le temps, l’argent, les emballages et les chiffres.

Trouve ensemble le quotient et le reste

17 // 5 donne 3, le nombre de groupes complets de cinq. 17 % 5 donne 2, la quantité restante. Les deux résultats permettent de reconstituer la quantité de départ :

print((17 // 5) * 5 + 17 % 5)

L’expression donne 17 : trois groupes de cinq plus deux. Plus généralement, pour des entiers et un diviseur non nul, (a // b) * b + a % b est égal à a. Utilise cette relation pour vérifier les deux réponses.

Répartis des quantités concrètes

Pour 135 minutes :

hours = 135 // 60
minutes = 135 % 60

Il y a 2 heures entières et 15 minutes restantes. Le diviseur est 60, car une heure contient 60 minutes. La division avec / donne 2.25, qui exprime des heures fractionnaires ; elle ne donne pas séparément les minutes restantes.

La même structure fonctionne avec une taille de groupe différente :

QuantitéGroupes completsReste
347 centimes, 100 centimes par euro347 // 100 donne 3 euros347 % 100 donne 47 centimes
75 œufs, 12 par boîte75 // 12 donne 6 boîtes complètes75 % 12 donne 3 œufs

Le nombre de boîtes est celui des boîtes complètes. Si tu as aussi besoin d’un contenant pour les œufs restants, c’est une question différente de celle du nombre de groupes complets qu’on peut former.

Utilise la valeur de position et la parité

Pour un entier positif, la division par dix permet de séparer son dernier chiffre. 1234 % 10 donne 4 et 1234 // 10 donne 123. Recombiner 123 * 10 + 4 permet de retrouver 1234.

Pour tout entier n, n % 2 vaut 0 s’il est pair et 1 s’il est impair. Cela fonctionne aussi pour les nombres négatifs : -7 % 2 vaut 1. Pour des entiers et un diviseur positif b, le reste est compris entre 0 et b - 1 inclus.

Comprends la division avec des nombres négatifs

La division entière arrondit vers l’infini négatif, pas vers zéro. Comme moins sept divisé par deux vaut -3,5, -7 // 2 donne -4. Le reste vaut alors 1, car -4 * 2 + 1 est égal à -7.

Un reste non nul a le signe du diviseur. Avec un diviseur négatif, 7 % -2 donne -1 et 7 // -2 donne -4. Ces résultats permettent toujours de reconstituer la valeur initiale : -4 * -2 + -1 vaut 7.

C’est différent de la conversion d’un quotient avec int() : int(-7 / 2) donne -3, car la conversion tronque vers zéro.

Les deux opérateurs acceptent aussi les flottants. 7.5 // 2 vaut 3.0 et 7.5 % 2 vaut 1.5. Ils ont le même niveau de priorité que * et /, donc 5 * 3 + 17 % 5 donne 17. L’opérateur % signifie ici le reste, pas le pourcentage : calcule 8 % d’un prix avec price * 0.08 ou price * 8 / 100.

Points clés

  • // donne un quotient arrondi à l’entier inférieur ; % donne le reste correspondant.
  • Pour des entiers, (a // b) * b + a % b permet de retrouver a lorsque b est non nul.
  • Choisis un diviseur qui correspond à la taille du groupe ou à la conversion d’unités.
  • La division entière arrondit les quotients négatifs vers le bas, pas vers zéro.
  • Un reste non nul a le signe du diviseur.
  • Le reste est différent d’un pourcentage.

4.4 Assembler du texte, le répéter et vérifier les types

Le symbole d’un opérateur ne représente qu’une partie de son sens. Python utilise aussi les types de ses opérandes. Les opérateurs + et * fonctionnent avec les chaînes, mais ils effectuent alors des opérations sur le texte.

Assemble des chaînes avec le signe plus

La concaténation ajoute une chaîne à la fin d’une autre :

print("ab" + "cd")
print("Hello" + "Ada")
print("Hello " + "Ada")

Ces lignes affichent abcd, HelloAda et Hello Ada. La concaténation n’ajoute pas d’espace d’elle-même. L’espace dans le troisième résultat vient du dernier caractère de "Hello ".

Les caractères représentant des chiffres suivent la même règle : "5" + "3" donne la chaîne "53". Sans guillemets, 5 + 3 donne l’entier 8. Choisis des valeurs numériques pour les calculs et des chaînes pour le texte.

Répète une chaîne avec la multiplication

Une chaîne multipliée par un entier répète ses caractères. "3" * 2 donne "33", tandis que 3 * 2 donne 6. Le nombre de répétitions peut être placé d’un côté ou de l’autre : 3 * "ab" donne "ababab". Répéter zéro fois donne la chaîne vide, donc "ab" * 0 vaut "".

Le nombre de répétitions doit être un entier. "ab" * 2.5 lève une TypeError, tout comme "ab" * "cd". Cette opération ne permet pas d’obtenir un nombre fractionnaire de copies.

Combine les opérations dans l’ordre

La multiplication est aussi prioritaire sur l’addition dans ces expressions :

print("-" * 4 + "Menu" + "-" * 4)

D’abord, chaque répétition crée "----". Ensuite, les additions assemblent les trois chaînes et produisent ----Menu----. L’ordre des assemblages préserve l’ordre de leurs caractères.

Pour un calcul qui devient une partie d’une chaîne :

print("7" + str(3 * 2))

Le calcul interne donne l’entier 6. str(6) crée la chaîne "6". Enfin, la concaténation produit "76". Elle ne produit pas 13, car le dernier + a deux chaînes pour opérandes.

Résous volontairement les incompatibilités de types

"Age: " + 30 lève une TypeError. Convertis l’entier avant de concaténer :

print("Age: " + str(30))

Cela produit Age: 30. Tu peux aussi utiliser print("Age:", 30), qui affiche les deux valeurs avec un espace entre elles. C’est le comportement de print() avec des arguments distincts, pas une addition de texte.

Les entiers et les flottants peuvent être mélangés dans les calculs arithmétiques ordinaires : 2 * 3.0 donne le flottant 6.0. Python ne transforme pas de la même façon une chaîne numérique en nombre pendant une opération +. Si tu dois calculer avec "30", convertis-la d’abord en type numérique.

La soustraction ne fonctionne pas sur ces opérandes de type chaîne. "10" - 3 lève une TypeError, même si les caractères 10 pourraient représenter un nombre. Pour prévoir le résultat d’une expression de types mixtes, identifie le type de chaque opérande, évalue les opérations prioritaires, puis vérifie à nouveau les types à l’opération suivante. Une conversion peut changer la règle que l’opérateur suivant applique.

Points clés

  • Avec des chaînes, + assemble les caractères sans ajouter d’espaces.
  • Avec une chaîne, * répète le texte un nombre entier de fois.
  • Pour assembler du texte, convertis un nombre avec str() ou transmets-le séparément à print().
  • Suis à la fois les priorités et les types des opérandes lorsque tu examines une expression de types mixtes.
5

Lire des données, les convertir et afficher des résultats utiles

Un programme complet doit pouvoir recevoir des données et communiquer un résultat. Les saisies arrivent sous forme de texte : décide donc si le programme doit conserver ce texte ou le convertir en nombre. Effectue le calcul avec des valeurs des bons types, puis affiche le résultat avec une indication claire et des espacements utiles. Les conversions, l’arrondi et les options de print() permettent à un programme court de transformer des réponses saisies en un résultat compréhensible et vérifiable.

5.1 Les conversions créent de nouvelles valeurs

La conversion de type crée une valeur d’un type différent. Les fonctions int(), float() et str() permettent de choisir la forme nécessaire à l’opération suivante.

Conserve le résultat converti
x = "42"
int(x)
print(type(x))

Cela affiche toujours <class 'str'>. La conversion a créé un entier, mais aucune affectation ne l’a conservé. Écris x = int(x) pour que x désigne cet entier, ou affecte-le à un autre nom si tu veux conserver les deux formes.

Choisis une conversion numérique

int() accepte une chaîne représentant un entier, éventuellement précédé d’un signe et entouré d’espaces. int("42"), int("-12") et int(" 42 ") produisent 42, -12 et 42.

Un point décimal dans une chaîne empêche sa conversion directe en entier. int("3.5") et int("4.0") lèvent une ValueError ; int("abc") et int("") aussi. Le fait que 4,0 soit mathématiquement entier ne fait pas de "4.0" une chaîne écrite sous forme d’entier.

float() accepte le texte décimal et la notation avec exposant. float("3.5") donne 3.5, float("3") donne 3.0 et float("1e3") donne 1000.0. Il convertit aussi les entiers : float(7) donne 7.0. Une virgule décimale provoque un échec : float("3,5") lève une ValueError.

Tronque ou arrondis volontairement

Convertir un flottant en int supprime sa partie fractionnaire vers zéro. int(3.99) donne 3 et int(-3.99) donne -3. Cette conversion ne choisit pas l’entier le plus proche. Pour convertir un texte décimal puis le tronquer, utilise int(float("3.5")), qui donne 3.

round() choisit une valeur parmi les plus proches. round(3.7) donne l’entier 4 ; round(3.14159, 2) donne le flottant 3.14. Le deuxième argument fixe le nombre de décimales.

À mi-chemin exact, Python choisit le voisin pair : round(2.5) donne 2, tandis que round(3.5) donne 4. Les fractions décimales stockées comme flottants peuvent ne pas être exactement à mi-chemin. round(2.675, 2) donne 2.67 à cause de sa représentation binaire.

ExpressionRésultatRaison
int(-3.5)-3Troncature vers zéro
round(-3.5)-4Entier le plus proche ; en cas d’égalité, choix du pair
-7 // 2-4Quotient arrondi à l’entier inférieur

Ces opérations répondent à des questions différentes. Choisis celle qui correspond au résultat voulu, surtout lorsque des valeurs négatives sont possibles.

Convertis en texte pour assembler

str(42) produit "42" et str(3.0) produit "3.0". Après conversion, + assemble leurs caractères :

print("7" + "3")
print(int("7") + int("3"))
print(str(7) + str(3))
print(float("7") + 3)

Les résultats affichés sont 73, 10, 73 et 10.0. Les conversions déterminent si le dernier + reçoit du texte ou des nombres.

Une ValueError indique un contenu inadapté à une conversion, comme dans int("abc"). Une TypeError indique une opération incompatible avec ses opérandes, comme dans "5" + 5. Utilise cette différence pour décider si tu dois examiner le texte saisi ou modifier l’opération.

Points clés

  • Une conversion renvoie une nouvelle valeur ; affecte-la si tu dois la conserver.
  • int() tronque les flottants vers zéro et nécessite un texte représentant un entier pour convertir directement une chaîne.
  • float() accepte le texte avec un point décimal ou un exposant.
  • round() utilise la valeur la plus proche et choisit le nombre pair en cas d’égalité exacte.
  • str() fournit du texte pour la concaténation.
  • ValueError et TypeError désignent des types d’échecs différents.

5.2 Contrôler ce que print() affiche

print() affiche des valeurs destinées à être lues. Ses arguments sont les valeurs ou expressions placées entre ses parenthèses. Des virgules séparent les arguments ; Python les évalue avant d’en afficher les résultats.

Affiche des valeurs avec des indications utiles
print("Total:", 5)
print(3 + 4)
print("3 + 4")

Les lignes affichent Total: 5, 7 et 3 + 4. Une indication précise au lecteur ce que signifie une valeur. Un calcul sans guillemets est évalué ; une expression entre guillemets est affichée comme du texte.

Par défaut, print() place un espace entre les arguments et termine par un saut de ligne. Il convertit chaque valeur pour l’affichage, donc print("Total:", 5) peut mélanger du texte et un entier sans appel explicite à str().

Compare avec print("Total:" + str(5)), qui affiche Total:5. Ici, + construit une chaîne avant que print() la reçoive. La concaténation ne fournit pas d’espace automatiquement et il n’y a qu’un seul argument à afficher.

Définis le séparateur

L’argument nommé sep définit le texte placé entre les arguments :

print("a", "b", sep="-")
print(1, 2, 3, sep=", ")
print("A", 12, sep="")

L’affichage est :

a-b
1, 2, 3
A12

Utilise le nom sep. Écrire print("a", "b", "-") fournit une troisième valeur, donc le résultat est a b -. Un séparateur vide assemble directement les arguments affichés ; il ne supprime pas les espaces déjà présents dans leurs chaînes.

Définis la fin de ligne

L’argument nommé end modifie ce qui suit la dernière valeur. Par défaut, c’est un saut de ligne. Une fin vide garde l’affichage suivant sur la même ligne :

print("a", end="")
print("b")

Cela affiche ab sur une ligne. Tu peux associer un signe de ponctuation et un saut de ligne :

print("Hello,", "Ada", end="!\n")

L’affichage est Hello, Ada!, suivi d’un saut de ligne. sep s’applique entre les arguments d’un même appel ; end s’applique après le dernier argument de cet appel. Ils contrôlent des emplacements différents.

Ajoute des sauts de ligne et choisis la précision affichée

Appeler print() sans argument affiche une ligne vide. Un \n dans une chaîne crée un saut de ligne à l’intérieur de celle-ci, comme dans print("Line 1\nLine 2"). Du texte répété peut former un séparateur : print("=" * 20) affiche vingt signes égal.

Python affiche un flottant sous une forme courte qui représente sa valeur stockée. print(1 / 3) affiche 0.3333333333333333. Pour afficher une valeur arrondie, calcule-la d’abord dans l’appel : print(round(1 / 3, 2)) affiche 0.33.

L’arrondi ne garantit pas un nombre fixe de décimales visibles. round(2.50, 2) s’affiche sous la forme 2.5, car le flottant ne stocke pas les zéros finaux comme une instruction d’affichage. Utilise le résultat exactement comme Python le produit lorsque tu vérifies un programme.

Points clés

  • print() évalue ses arguments et affiche les chaînes sans les guillemets qui les entourent.
  • Par défaut, un espace sépare les arguments et un saut de ligne est ajouté à la fin.
  • sep modifie l’espace entre les arguments ; end modifie ce qui suit le dernier argument.
  • print() sans argument ajoute une ligne vide.
  • L’arrondi modifie la précision d’une valeur, mais ne fixe pas le nombre de décimales affichées.

5.3 Construire et tester un programme entrée–traitement–sortie

input() affiche une invite, attend qu’une personne saisisse du texte et appuie sur Entrée, puis renvoie le texte saisi sous forme de chaîne, sans la touche Entrée. Un programme court complet lit les données nécessaires, les traite et affiche un résultat.

Lis du texte et convertis les nombres
name = input("What is your name? ")
print("Hello", name)

L’espace à la fin de l’invite sépare la réponse saisie de la question. La variable stocke le texte comme du texte, même lorsque l’utilisateur saisit des chiffres. Saisir 30 dans input() produit "30", et non l’entier 30.

Choisis une conversion avant de calculer :

age = int(input("Age in whole years: "))
print("Next year:", age + 1)

L’appel interne à input() s’exécute en premier. Si l’utilisateur saisit 30, il renvoie "30" ; int() convertit cette chaîne en 30 ; l’affectation conserve l’entier. L’addition produit ensuite 31.

Utilise float(input(...)) lorsque les valeurs fractionnaires sont autorisées. Une invite doit indiquer quel type de réponse est attendu. Saisir 2.5 ou thirty pour une conversion avec int() lève une ValueError. Saisir 98,6 pour une conversion avec float() échoue aussi ; le séparateur décimal doit être un point.

Une conversion oubliée ne lève pas toujours une erreur. Si deux appels à input reçoivent 5 et 3, leurs valeurs non converties s’additionnent comme des chaînes et produisent 53. Les deux opérandes ont un type qui accepte +, mais ce n’est pas la bonne opération pour additionner des quantités.

Examine un calcul complet

Le schéma entrée–traitement–sortie rend les étapes principales faciles à examiner :

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = float(input("Temperature in °F: "))
celsius = (fahrenheit - 32) * 5 / 9
print(fahrenheit, "°F is", round(celsius, 1), "°C")

Avec la saisie 98.6, le programme lit le flottant 98.6. Il soustrait 32 pour obtenir 66.6, multiplie par 5 pour obtenir 333.0 et divise par 9 pour obtenir 37.0. La ligne affichée est 98.6 °F is 37.0 °C. La saisie 50 devient 50.0, donc la ligne est 50.0 °F is 10.0 °C.

Voici un programme avec des données entières :

total_minutes = int(input("Enter a whole number of minutes: "))
hours = total_minutes // 60
minutes = total_minutes % 60
print("Hours:", hours, "Minutes:", minutes)

La saisie 135 produit Hours: 2 Minutes: 15. Les indications conviennent pour zéro, un et des résultats plus grands sans changer la formulation. Les deux lignes de traitement utilisent le même total initial ; affecter une valeur à hours ne retire rien de total_minutes.

Teste des valeurs ordinaires et des valeurs limites

Choisis des saisies dont tu peux calculer les réponses à la main. Pour le programme de température, 32 devrait produire 0.0 °C et 212 devrait produire 100.0 °C. Pour les minutes, teste 0, 59 et 60 : ces valeurs vérifient la valeur de départ et le passage de zéro heure complète à une heure complète.

Teste aussi une valeur courante comme 135. Compare les indications exactes, les espacements, les résultats numériques et les types avec ta prévision. Si le code s’exécute mais que le résultat est incorrect, suis les valeurs stockées et l’ordre des opérations. Si une conversion échoue, examine le texte saisi et le type demandé par ton invite.

Points clés

  • input() renvoie du texte, même lorsqu’un utilisateur saisit des chiffres.
  • Convertis la saisie avant d’effectuer des calculs numériques.
  • Utilise des invites claires et accompagne les résultats d’indications.
  • Sépare la lecture des données, le calcul et l’affichage du résultat.
  • Teste des valeurs ordinaires et des valeurs limites en les comparant à des réponses calculées à la main.

Python : exemples

5 Leçons Interactives

1

Exécuter un petit programme et le corriger

13 étapes
Passe de la console à un script enregistré, analyse un échec et explique une ligne avec un commentaire.
  1. 1
    IntroductionCommencer par prévoir ce qui sera visible

    Un programme peut calculer une valeur sans l’afficher. Avant d’exécuter du code, prévois deux choses : ce que Python fera et ce qu’une personne verra.

    Nous allons d’abord comparer un essai dans la console avec un script enregistré. Nous examinerons ensuite les erreurs et les commentaires. Garde à l’esprit la distinction entre exécution du code et affichage visible : une ligne peut s’exécuter correctement sans produire de texte à l’écran.

  2. 2
    ExempleEssayer une expression dans la console

    À l’invite >>> de la console Python, saisis 9 * 3. Python évalue l’expression et affiche automatiquement 27.

    L’invite est fournie par la console ; tu ne saisis que l’expression. Une invite ... signifie que Python attend la suite de la même instruction. La console est pratique pour une vérification rapide comme celle-ci, tandis qu’un script enregistré conserve une suite d’instructions prête à être exécutée à nouveau.

  3. 3
    ExplicationFaire afficher son calcul à un script

    Un script contenant uniquement 9 * 3 évalue le produit mais n’affiche rien. Pour l’afficher, écris :

    print(9 * 3)
    print("Calculation finished")
    

    L’affichage est 27, puis Calculation finished sur la ligne suivante. L’interpréteur suit l’ordre des instructions. Exécute le script avec la commande d’exécution de l’éditeur ou une commande de terminal ; ne saisis pas cette commande de terminal à l’invite Python.

  4. 4
    DéfiPrévoir ce qui s’affiche réellement

    Un script enregistré contient ces deux lignes. Qu’est-ce qui s’affiche ?

    11 + 5
    print("Ready to check")
    

    ---reveal---

    Seul Ready to check apparaît. La première ligne calcule 16 mais ne l’affiche pas. Si tu saisissais directement cette première expression dans la console interactive, la console afficherait automatiquement sa valeur. La différence vient de l’endroit où l’expression est exécutée.

  5. 5
    ExplicationDistinguer une exécution arrêtée d’une réponse incorrecte

    Une erreur de syntaxe signifie que Python ne peut pas lire le script : l’exécution ne démarre donc jamais. Une erreur d’exécution se produit après le début de l’exécution et l’arrête à l’opération qui échoue.

    Un programme contenant une erreur de logique peut s’exécuter sans message. Par exemple, un regroupement incorrect dans une formule produit quand même un calcul valide. Compare son résultat à un calcul fait à la main au lieu d’attendre que Python repère l’erreur.

  6. 6
    ExempleLire d’abord la dernière ligne de l’erreur

    Examine ce code :

    distance = 21
    print(distnace)
    

    Une trace d’appels se termine en indiquant NameError et le nom non défini distnace. Lis ce dernier message, puis examine la ligne indiquée au-dessus. Le nom affecté plus tôt est distance ; les deux orthographes diffèrent. Corrige la recherche en écrivant print(distance), qui affiche 21.

  7. 7
    ConseilChoisir la prochaine vérification utile

    Laisse le type d’erreur orienter ta recherche. Pour une NameError, vérifie l’orthographe, la casse et si une valeur a été affectée à la variable plus tôt. Pour une TypeError, examine les types utilisés par l’opération. Pour une ValueError, examine le texte transmis à une conversion.

    Si la ligne indiquée semble correcte, cherche un guillemet ou une parenthèse non fermée sur la ligne précédente. Corrige une erreur et exécute à nouveau le programme pour trouver le prochain problème que l’exécution peut atteindre.

  8. 8
    DéfiLe premier message reste-t-il visible ?

    Qu’est-ce qui s’affiche avant que ce programme s’arrête ? Aucune valeur n’a été affectée à items.

    print("Checking")
    print(items)
    print("Finished")
    

    ---reveal---

    Checking s’affiche. La ligne suivante lève une NameError, laissant la dernière ligne sans exécution. C’est un échec à l’exécution : Python a pu lire le script, mais n’a pas pu trouver une valeur pendant son exécution. L’affichage précédent reste visible.

  9. 9
    ExplicationAjouter le sens dont un lecteur a besoin

    Un commentaire commence par # en dehors d’une chaîne et se poursuit jusqu’à la fin de la ligne. Il peut expliquer la raison d’une valeur :

    service_rate = 0.03  # 3% processing fee
    

    Le commentaire indique au lecteur ce que représente le taux. Python l’ignore lors de l’exécution de l’affectation. Laisse au moins deux espaces avant le symbole d’un commentaire en fin de ligne et un espace après. Un nom clair et un commentaire utile se complètent.

  10. 10
    DéfiRepérer le début du commentaire

    Qu’affiche cette ligne et quels mots Python ignore-t-il ?

    print("Order #16")  # Packing label
    

    ---reveal---

    Elle affiche Order #16. Le croisillon entre guillemets appartient à la chaîne. Le second croisillon commence le commentaire, donc Packing label est ignoré. La position d’un caractère, à l’intérieur ou à l’extérieur d’une chaîne, change la façon dont Python le lit.

  11. 11
    ConseilGarder un commentaire correct après une modification

    Si les frais de traitement passent de 3 % à 5 %, remplace la valeur de service_rate par 0.05 et le commentaire par 5% processing fee.

    Python ne t’avertira pas qu’un commentaire est périmé, car les commentaires ne sont pas exécutés. Un lecteur peut tout de même être induit en erreur. Pour un test temporaire, # peut désactiver une instruction ; supprime les anciennes lignes désactivées lorsqu’elles ne t’aident plus à comprendre le programme.

  12. 12
    DéfiCombiner affichage, commentaires et échec

    Qu’apparaît-il lorsque ce script enregistré s’exécute ? Supposons qu’aucun nom n’ait été défini auparavant.

    print("Status #1")  # Show the status.
    Print("Done")
    

    ---reveal---

    Le commentaire est ignoré et Status #1 s’affiche. Print lève ensuite une NameError, car Python distingue les noms en majuscules et en minuscules. Le nom natif est print. Le premier affichage, valide, reste visible parce que l’échec se produit pendant l’exécution.

  13. 13
    RécapitulatifUtiliser l’affichage comme indice

    La console affiche les valeurs des expressions, tandis qu’un script nécessite un appel explicite pour les afficher. Un échec à l’exécution laisse l’affichage précédent visible ; une erreur de syntaxe empêche le script de démarrer.

    Pour ton prochain programme court, écris le résultat attendu avant de l’exécuter. Si ta prévision est incorrecte, utilise le type d’erreur ou un suivi des valeurs pour choisir la prochaine vérification. Concentre les commentaires sur le sens que le code n’explique pas déjà.

2

Lire le type dans l’écriture d’une valeur

14 étapes
Compare des littéraux, examine leurs types et construis des chaînes avec les caractères voulus.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDes valeurs qui se ressemblent peuvent se comporter différemment
  2. 2
    ExempleExaminer trois formes des mêmes chiffres
  3. 3
    LienChoisir les données selon leur usage
  4. 4
    DéfiDistinguer un texte booléen d’un booléen
  5. 5
    ExplicationModifier l’ordre de grandeur d’un flottant avec un exposant
  6. 6
    Point cléUne virgule change les données
  7. 7
    DéfiÉcrire une petite valeur décimale
  8. 8
    ConseilInterpréter les petits chiffres supplémentaires
  9. 9
    ExempleChoisir des guillemets extérieurs adaptés au message
  10. 10
    ExplicationIntégrer un saut de ligne à une chaîne
  11. 11
    DéfiPrévoir l’effet des guillemets autour des noms
  12. 12
    Point cléUn espace compte aussi comme donnée
  13. 13
    DéfiRelier l’écriture au comportement
  14. 14
    RécapitulatifVérifier la valeur avant l’opération
3

Suivre une valeur à travers les affectations

14 étapes
Lis des affectations, améliore des noms et suis les mises à jour et les échanges sans perdre une ancienne valeur.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionSuivre un instant à la fois
  2. 2
    ExempleÉvaluer d’abord, affecter ensuite
  3. 3
    Point cléUn résultat stocké ne conserve pas de formule
  4. 4
    DéfiSuivre une copie avant une réaffectation
  5. 5
    LienChoisir un nom lisible
  6. 6
    ExempleGarder les noms natifs disponibles
  7. 7
    DéfiCorriger un nom sans changer son sens
  8. 8
    ExplicationMettre à jour à partir d’une valeur existante
  9. 9
    ExempleNoter uniquement ce qui a changé
  10. 10
    DéfiObserver une mise à jour changer le type
  11. 11
    ExplicationConserver une valeur initiale avant de l’écraser
  12. 12
    ExplicationLire un échange simultané
  13. 13
    DéfiCombiner noms, copies et mises à jour
  14. 14
    RécapitulatifSuivre les valeurs actuelles, pas les intentions
4

Évaluer des expressions une opération à la fois

18 étapes
Choisis des opérations arithmétiques et des opérations sur les chaînes, applique les regroupements et répartis des quantités en groupes complets et restes.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionSuivre à la fois l’ordre et le type
  2. 2
    ExplicationAssocier le symbole à l’opération
  3. 3
    ExempleGarder le type à côté du quotient
  4. 4
    DéfiChoisir une puissance et son résultat
  5. 5
    ExempleEffectuer d’abord l’opération la plus prioritaire
  6. 6
    Point cléÀ priorité égale, procéder de gauche à droite
  7. 7
    ExplicationLes puissances se regroupent dans l’autre sens
  8. 8
    DéfiCorriger le regroupement d’un calcul
  9. 9
    ExempleRépartir une quantité en groupes complets
  10. 10
    ExplicationArrondir vers le bas, même sous zéro
  11. 11
    LienUtiliser les chiffres comme groupes de dix
  12. 12
    DéfiTrouver les deux parties de la durée
  13. 13
    ExplicationLe texte utilise différemment les mêmes symboles
  14. 14
    ExempleConstruire une bordure avant de l’assembler
  15. 15
    DéfiConvertir le résultat interne en texte
  16. 16
    ConseilRepérer une opération incompatible
  17. 17
    DéfiCombiner reste, puissance et texte
  18. 18
    RécapitulatifVérifier le résultat intermédiaire
5

Transformer des données saisies en un résultat vérifié

15 étapes
Choisis des conversions, contrôle l’affichage et construis un programme qui sépare lecture, calcul et affichage.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionLire, calculer, puis expliquer le résultat
  2. 2
    ExplicationConserver la nouvelle valeur d’une conversion
  3. 3
    ExempleUn flottant et un texte décimal se convertissent différemment
  4. 4
    DéfiDistinguer troncature et arrondi
  5. 5
    ExplicationPasser des valeurs distinctes à print
  6. 6
    ExempleChanger le séparateur et la fin
  7. 7
    DéfiPrévoir le résultat de deux appels à print
  8. 8
    ConseilArrondir une valeur sans promettre de zéros supplémentaires
  9. 9
    ExempleLire une saisie entière
  10. 10
    ExempleCalculer deux résultats à partir du même total
  11. 11
    ExempleAccompagner les valeurs finales d’indications
  12. 12
    DéfiTrouver la conversion manquante
  13. 13
    LienTester l’endroit où la réponse change
  14. 14
    DéfiCombiner conversion, division et affichage
  15. 15
    RécapitulatifVérifier chaque étape séparément

Python : QCM

50 Questions Pratiques en 5 séries

Série 1 : Lire de courts programmes et prévoir leurs résultats10 Questions Pratiques

Question 1 sur 10

Un script enregistré contient uniquement 18 - 6. Qu’apparaît-il lorsqu’il s’exécute ?
  1. Le nombre 12 apparaît.
  2. L’expression 18 - 6 apparaît.
  3. Rien ne s’affiche.
  4. Une erreur de syntaxe apparaît.
Afficher la réponseMasquer la réponse
Réponse : C
Un script évalue une expression seule sans afficher son résultat : rien n’apparaît donc. La console interactive afficherait 12 pour la même expression, ce qui peut prêter à confusion. Dans un script, utilise print(18 - 6) lorsque le résultat doit être visible.

Question 2 sur 10

Un script contient ce code. Quel affichage apparaît avant son arrêt ?

print("Ready")
print(missing_total)
print("Done")

Aucune valeur n’a été affectée à missing_total.

  1. Seulement Ready
  2. Ready et Done
  3. Aucun affichage
  4. Seulement Done
Afficher la réponseMasquer la réponse
Réponse : A
La première instruction affiche Ready. La suivante lève une NameError, donc l’exécution n’atteint jamais le dernier appel à print. C’est un échec à l’exécution, qui laisse l’affichage précédent visible ; une erreur de syntaxe empêcherait tout le script de démarrer.

Question 3 sur 10

Quel type type("False") indique-t-il ?
  1. bool
  2. int
  3. float
  4. str
Afficher la réponseMasquer la réponse
Réponse : D
Les guillemets font de "False" une chaîne contenant cinq caractères ; son type est donc str. Le littéral booléen False n’a pas de guillemets et commence par une majuscule. Un mot qui ressemble à un booléen à l’intérieur d’une chaîne reste du texte ; Python ne réinterprète pas les caractères comme du code.

Question 4 sur 10

Quelle expression Python calcule cinq à la puissance trois ?
  1. 5 ^ 3
  2. 5 ** 3
  3. 5 * 3
  4. 5 + 3
Afficher la réponseMasquer la réponse
Réponse : B
** est l’opérateur de puissance de Python, donc 5 ** 3 calcule 125. L’accent circonflexe ^ effectue une autre opération et ne signifie pas l’élévation à la puissance. Multiplier par trois reviendrait à additionner trois fois cinq, tandis qu’une puissance trois multiplie trois fois le nombre cinq.

Question 5 sur 10

Qu’affiche print("North\nSouth") ?
  1. North\nSouth sur une ligne
  2. North et South sur deux lignes
  3. North South sur une ligne
  4. NorthnSouth sur une ligne
Afficher la réponseMasquer la réponse
Réponse : B
La séquence d’échappement \n représente un saut de ligne dans la chaîne, donc South commence sur une deuxième ligne. Python n’affiche pas ici la barre oblique inverse et le n comme deux caractères visibles. Pour conserver une barre oblique inverse littérale avant n, la chaîne source devrait comporter une double barre oblique inverse.

Question 6 sur 10

Qu’est-ce que ceci affiche ?

stock = 14
saved = stock
stock = 9
print(stock, saved)
  1. 9 9
  2. 14 9
  3. 14 14
  4. 9 14
Afficher la réponseMasquer la réponse
Réponse : D
À l’instruction saved = stock, le nom saved reçoit la valeur actuelle 14. La réaffectation de stock fait ensuite désigner 9 à ce seul nom, donc l’affichage est 9 14. Obtenir 9 9 reviendrait à considérer l’affectation précédente comme un lien durable entre les noms, ce qu’elle n’est pas.

Question 7 sur 10

Quel nom de variable valide en snake_case convient pour compter les places disponibles ?
  1. available_seats
  2. available-seats
  3. 2available_seats
  4. available seats
Afficher la réponseMasquer la réponse
Réponse : A
available_seats relie des mots en minuscules par un caractère de soulignement et commence par une lettre. Un trait d’union est lu comme une soustraction, donc available-seats n’est pas un seul nom de variable. Les espaces sont interdits dans un nom et un chiffre ne peut pas être son premier caractère.

Question 8 sur 10

Quelle valeur et quel type 24 / 6 produit-il ?
  1. 4, un entier
  2. 0, un entier
  3. 4.0, un flottant
  4. 0.0, un flottant
Afficher la réponseMasquer la réponse
Réponse : C
La division avec / donne un flottant pour des opérandes entiers, donc 24 / 6 produit 4.0. Le fait que la division soit exacte ne change pas cette règle de type. 24 // 6 produirait l’entier 4, tandis que % trouverait le reste nul plutôt que le quotient.

Question 9 sur 10

Quelle valeur 40 - 18 / 3 * 2 + 1 produit-il ?
  1. 29.0
  2. 38.0
  3. 15.666666666666666
  4. 28.0
Afficher la réponseMasquer la réponse
Réponse : A
La division et la multiplication ont la même priorité et sont effectuées de gauche à droite : 18 / 3 donne 6.0, puis la multiplication par 2 donne 12.0. Le calcul restant est 40 - 12.0 + 1, soit 29.0. Multiplier 3 * 2 en premier formerait à tort un dénominateur de six.

Question 10 sur 10

Qu’affiche print("Zone", 4, sep="-") ?
  1. Zone 4
  2. Zone4-
  3. Zone 4 -
  4. Zone-4
Afficher la réponseMasquer la réponse
Réponse : D
sep="-" place un trait d’union entre les deux arguments affichés, ce qui donne Zone-4. Il n’ajoute pas le trait d’union après la dernière valeur ; la fin reste le saut de ligne par défaut. Sans l’argument nommé sep, l’espace habituel resterait entre les arguments.
Série 2 : Manipuler des valeurs changeantes et des données typées10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Qu’est-ce que ceci affiche ?

print("Bay #7")  # Pickup point
  1. Bay
  2. Bay #7
  3. Bay #7 Pickup point
  4. Bay Pickup point
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

L’identifiant d’un badge est "00482" et ne sera pas utilisé dans des calculs. Quel type permet le mieux de le conserver ?
  1. Un entier
  2. Un flottant
  3. Un booléen
  4. Une chaîne
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Quelle valeur cost a-t-il à la fin ?

units = 6
rate = 4
cost = units * rate
units = 8
  1. 24
  2. 32
  3. 8
  4. 6
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Qu’est-ce que ceci affiche ?

points = 12
points -= 5
points *= 3
print(points)
  1. 7
  2. 31
  3. 21
  4. 36
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Quelle valeur et quel type le littéral 6e2 a-t-il ?
  1. 600, un entier
  2. 6.2, un flottant
  3. 600.0, un flottant
  4. 62, un entier
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une plaque contient 8 petits pains. Un boulanger a 53 petits pains. Combien y a-t-il de plaques complètes et de petits pains restants ?
  1. 6 plaques complètes et 5 petits pains
  2. 6 plaques complètes et 6 petits pains
  3. 7 plaques complètes et 3 petits pains
  4. 5 plaques complètes et 6 petits pains
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Qu’affiche print("Go" * 2 + "!") ?
  1. Go Go!
  2. Go!Go!
  3. Go2!
  4. GoGo!
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Quel est le résultat de int(-8.9) ?
  1. -9
  2. -8
  3. 8
  4. -8.0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Qu’apparaît-il sur la première ligne affichée ?

print("P", "Q", sep=":", end="|")
print("R", "S", sep="-")
  1. P:Q| R-S
  2. P:Q:R-S
  3. P-Q|R:S
  4. P:Q|R-S
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un utilisateur saisit 7 à la première invite et 4 à la seconde. Qu’affiche ce programme ?

first = input("First: ")
second = input("Second: ")
print(int(first + second) + 2)
  1. 76
  2. 13
  3. 742
  4. 11
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Suivre des expressions et diagnostiquer des erreurs10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Dans une console Python fraîchement ouverte, tu saisis amount = 11, puis amount + 4. Qu’affiche la console pour ces deux saisies ?
  1. 11 pour l’affectation, puis 15
  2. Rien pour les deux saisies
  3. 11 pour l’affectation, puis amount + 4
  4. Rien pour l’affectation, puis 15
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un script contient ce code. Quel affichage apparaît avant le message d’erreur ?

print("Loading")
value = 6
print("Value:", value
  1. Seul Loading apparaît.
  2. Aucun affichage n’apparaît.
  3. Loading et Value: 6 apparaissent.
  4. Seul Value: 6 apparaît.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Quel littéral Python représente correctement l’entier deux millions cinq cent mille ?
  1. 2,500,000
  2. 2.500.000
  3. 2_500_000
  4. 2_500_000.0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Qu’affiche print('He said "yes"') ?
  1. He said "yes"
  2. He said yes
  3. 'He said "yes"'
  4. He said 'yes'
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un programmeur écrit MAX_ATTEMPTS = 5. Qu’indiquent les majuscules ?
  1. Python rejettera toute affectation ultérieure.
  2. La variable ne peut contenir que des entiers.
  3. Le nom est un mot-clé réservé de Python.
  4. La valeur est destinée à rester inchangée.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Qu’est-ce que ceci affiche ?

a = 4
b = 9
a, b = b, a
a += b
print(a, b)
  1. 18 9
  2. 13 4
  3. 13 9
  4. 9 13
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Quelle valeur (-3) ** 2 + 2 ** 3 produit-il ?
  1. 17
  2. -1
  3. 25
  4. 15
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Quelles sont les valeurs de -17 // 5 et de -17 % 5, dans cet ordre ?
  1. -3 et -2
  2. -4 et -3
  3. -4 et 3
  4. -3 et 2
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Que se passe-t-il lorsque Python évalue int("12.0") ?
  1. Il renvoie l’entier 12.
  2. Il lève une ValueError.
  3. Il renvoie le flottant 12.0.
  4. Il lève une TypeError.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un utilisateur saisit 84.5. Le programme doit convertir des degrés Fahrenheit en degrés Celsius. Par quoi remplacer la ligne de calcul pour corriger son résultat ?

fahrenheit = float(input("Temperature in °F: "))
celsius = fahrenheit - 32 * 5 / 9
print(round(celsius, 1))
  1. celsius = fahrenheit - (32 * 5 / 9)
  2. celsius = (fahrenheit - 32 * 5) / 9
  3. celsius = (fahrenheit - 32) * 5 / 9
  4. celsius = fahrenheit - 32 * (5 / 9)
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Choisir l’opération adaptée à la tâche10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un script contient les lignes ci-dessous. Quel message apparaît ?

# print("Check")
print("Open #2")
  1. Open #2
  2. Check et Open #2
  3. Open
  4. Check et Open
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Quelle valeur et quel type 3 + 2.0 produit-il ?
  1. 5, un entier
  2. "32.0", une chaîne
  3. 5.0, un flottant
  4. "5.0", une chaîne
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Après label = "Desk", qu’affiche print("label", label, sep=":") ?
  1. Desk:Desk
  2. label:Desk
  3. label:label
  4. "label":"Desk"
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Qu’est-ce que ceci affiche ?

base = 8
double = base * 2
copy = double
base = 10
double = base * 2
print(copy, double)
  1. 20 20
  2. 16 16
  3. 8 20
  4. 16 20
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Quelles valeurs int(-6.5), round(-6.5) et -13 // 2 produisent-ils, dans cet ordre ?
  1. -6, -6, -7
  2. -7, -6, -7
  3. -6, -7, -6
  4. -7, -7, -6
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Quelles valeurs 9.0 // 4 et 9 // 4 produisent-ils, dans cet ordre ?
  1. 2 et 2
  2. 2.25 et 2
  3. 2.0 et 2
  4. 2.0 et 2.0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Le même texte valide est exécuté dans un nouveau script, puis saisi une instruction à la fois dans une nouvelle console : n = 6, n * 3, print(n). Quelle différence apparaît ?
  1. Les deux affichent 18 puis 6 ; il n’y a pas de différence.
  2. Le script affiche 18 ; la console affiche 6 puis 18.
  3. Le script affiche 6 ; la console affiche 6, 18, puis 6.
  4. Le script affiche 6 ; la console affiche 18 puis 6.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Pourquoi la dernière ligne échoue-t-elle ?

input = "Leah"
name = input("Name: ")
  1. Le mot input est un mot-clé réservé.
  2. Le nom input désigne maintenant une chaîne.
  3. Une invite ne peut pas contenir de deux-points.
  4. Une conversion numérique manque autour de l’appel.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Qu’affiche print("Row", 8, "|", end="!") avant que le curseur s’arrête ?
  1. Row|8!
  2. Row8|!
  3. Row 8 |!
  4. Row 8 !|
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Un programme de conversion de minutes en heures donne le résultat attendu pour la saisie 145. Un utilisateur saisit ensuite 119. Qu’affiche-t-il et quelle modification permet à hours de compter les heures complètes ?

total_minutes = int(input("Whole minutes: "))
hours = round(total_minutes / 60)
minutes = total_minutes % 60
print(hours, minutes)
  1. 2 59 ; utiliser hours = total_minutes // 60.
  2. 1 59 ; utiliser hours = total_minutes // 60.
  3. 2 59 ; utiliser hours = int(total_minutes) / 60.
  4. 1 59 ; utiliser hours = total_minutes % 60.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Combiner suivi, conversions et vérifications de programmes10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Qu’affiche print("6" + str(2 + 3) * 2) ?
  1. 6565
  2. 610
  3. 655
  4. 16
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un utilisateur saisit 4. Qu’apparaît-il, en dehors de l’invite de saisie et du message d’erreur ?

count = input("Count: ")
print("Received")
next_count = count + 1
print(next_count)
  1. Received, puis 5 s’affiche.
  2. Received, puis 41 s’affiche.
  3. Rien ; aucune instruction ne peut s’exécuter.
  4. Received, puis l’exécution s’arrête.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un commentaire doit expliquer un taux. Le code passe de fee_rate = 0.04 # 4% service fee à fee_rate = 0.06 # 4% service fee. Que faut-il corriger ?
  1. Modifier le commentaire pour indiquer des frais de 6 %.
  2. Garder le commentaire puisque Python l’ignore.
  3. Mettre le commentaire entre guillemets pour l’actualiser.
  4. Supprimer le point décimal du taux.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Pourquoi 0.1 + 0.2 peut-il s’afficher sous la forme 0.30000000000000004 ?
  1. L’opérateur plus assemble les chiffres décimaux comme du texte.
  2. Les flottants binaires stockés approchent les fractions décimales.
  3. L’interpréteur arrondit chaque somme d’un chiffre vers le haut.
  4. Le point décimal sépare deux valeurs indépendantes.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Qu’est-ce que ceci affiche ?

rate = 6
hours = 4
pay = rate * hours
rate += 2
pay += rate
hours /= 2
print(pay, hours)
  1. 40 2.0
  2. 32 2
  3. 24 2.0
  4. 32 2.0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Quelle valeur -2 ** 3 ** 2 + 20 // 3 % 4 produit-il ?
  1. -62
  2. -510
  3. -506
  4. 514
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un ajustement avec signe vaut -23. Son quotient et son reste dans la division par 6 doivent permettre de le reconstituer. Quels sont les deux résultats ?
  1. Quotient -3, reste -5
  2. Quotient -4, reste -1
  3. Quotient -4, reste 1
  4. Quotient -3, reste 5
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Qu’affiche print("Code: " + str(3 * 4)) ?
  1. Code: 12
  2. Code: 34
  3. Code: 121212
  4. Code: 3 * 4
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Qu’est-ce que ceci affiche ?

reading = "18"
float(reading)
print(reading + "2")
  1. 20.0
  2. 182
  3. 18.02
  4. 20
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une machine facture 3 dollars pour chaque tranche complète de 15 minutes et 1 dollar pour chaque minute restante. Par quoi remplacer la ligne de calcul pour déterminer le montant à partir d’une saisie entière ?

minutes = int(input("Minutes: "))
charge = 0
print("Charge in dollars:", charge)
  1. charge = (minutes / 15) * 3 + minutes % 15
  2. charge = (minutes // 15) * 3 + minutes // 15
  3. charge = minutes // (15 * 3) + minutes % 15
  4. charge = (minutes // 15) * 3 + minutes % 15
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

71 Mots-Clés, chacun avec sa définition

A

Accumulateur
Un accumulateur est une variable qui recueille un total cumulé, en partant d’une valeur initiale et en changeant à mesure que des quantités sont ajoutées.
Initialise total = 0 avant d’utiliser des mises à jour comme total += cost pour accumuler plusieurs montants.
Affectation
L’affectation évalue une expression et fait désigner la valeur obtenue à un nom cible, à l’aide de = avec le nom à gauche.
Dans area = width * height, la multiplication est évaluée avant que son résultat soit stocké sous area.
Affectation augmentée
L’affectation augmentée combine une opération et une réaffectation : elle utilise une valeur existante pour calculer et stocker la valeur qui la remplace.
Pour des nombres, score += 6 ajoute six au score actuel et réaffecte la somme au même nom.
Affectation simultanée
L’affectation simultanée évalue toutes les expressions de droite avant d’affecter leurs valeurs aux noms de gauche selon leur position.
Dans x, y = 4, 8, le premier nom reçoit quatre et le second reçoit huit en une seule instruction.
Argument
Un argument est une valeur ou une expression fournie entre les parenthèses d’un appel de fonction, qui permet à la fonction d’agir sur cette donnée.
Dans print("Score:", 9), l’indication et l’entier sont des arguments distincts affichés dans cet ordre.
Arrondi
L’arrondi choisit une valeur parmi les plus proches à une précision donnée ; la fonction round() de Python choisit le voisin pair pour les valeurs exactement à mi-chemin.
L’appel round(6.5) donne six, tandis que round(7.5) donne huit, car les deux voisins choisis sont pairs.
Associativité
L’associativité détermine comment les opérations de même priorité sont regroupées ; la plupart se regroupent de gauche à droite, tandis que les puissances se regroupent de droite à gauche.
L’expression 16 / 4 * 2 se regroupe comme (16 / 4) * 2 : le résultat est donc 8.0, et non 2.0.

B

Booléen
Un booléen est une valeur de type bool qui prend l’une des deux valeurs True ou False, écrites avec une majuscule et sans guillemets.
La comparaison 4 < 9 produit le booléen True, tandis que le texte entre guillemets "True" est une chaîne.
Bug
Un bug est une erreur dans un programme qui empêche le comportement voulu, qu’elle provoque un message d’erreur ou un résultat incorrect.
Une paire de parenthèses manquante dans un calcul de moyenne peut être un bug même si le code s’exécute.

C

Chaîne de caractères
Une chaîne de caractères est une suite de caractères de type str, contenant du texte comme des lettres, des chiffres, des espaces, des signes de ponctuation et des symboles.
La valeur "Bus 09" conserve ses lettres, son espace et son identifiant commençant par zéro dans une seule valeur textuelle.
Chaîne vide
La chaîne vide est une chaîne qui ne contient aucun caractère, écrite "" ou '' ; elle diffère d’une chaîne contenant un espace.
Répéter une chaîne zéro fois produit un texte vide, tandis qu’ajouter " " insère un caractère espace.
Commentaire
Un commentaire est une note qui commence par # en dehors d’une chaîne et se termine à la fin de la ligne ; Python l’ignore lors de l’exécution du programme.
Une note expliquant qu’un taux comprend des frais de service aide le lecteur à comprendre pourquoi il a été choisi.
Commentaire en fin de ligne
Un commentaire en fin de ligne est placé après du code exécutable sur la même ligne, généralement séparé du code par au moins deux espaces.
Dans rate = 0.07 # 7% tax, l’affectation s’exécute et les derniers mots expliquent le sens du taux.
Concaténation
La concaténation assemble des chaînes bout à bout avec +, en conservant l’ordre de leurs caractères et sans insérer d’espaces ni de signes de ponctuation supplémentaires.
Assembler "Room " et "12" conserve l’espace déjà présent dans la première chaîne et donne "Room 12".
Console interactive
La console interactive est un environnement où l’on saisit les instructions Python une à la fois et où l’on voit immédiatement les résultats des expressions. Elle est aussi appelée REPL.
À l’invite >>>, saisir 14 + 2 fait afficher 16 par la console sans appel à print.
Constante
Une constante est une valeur destinée à rester inchangée, à laquelle on donne par convention un nom en majuscules même si Python autorise sa réaffectation.
Le nom FEE_RATE indique au lecteur de considérer ce taux comme fixe lorsqu’il suit le programme.
Conversion de type
La conversion de type crée une nouvelle valeur du type demandé, par exemple un entier à partir d’un texte numérique, sans modifier la valeur d’origine elle-même.
Stocke int(text) dans une variable lorsqu’un calcul ultérieur nécessite la valeur convertie plutôt que le texte.

D

Débogage
Le débogage consiste à trouver et à corriger les erreurs dans le code en examinant les messages, en vérifiant les valeurs et en comparant les résultats attendus.
Lire la dernière ligne d’une trace d’appels t’aide à décider quelle orthographe, valeur ou opération vérifier ensuite.
Délimiteur de chaîne
Un délimiteur de chaîne est un guillemet ouvrant ou fermant qui indique une extrémité de la chaîne sans faire partie de son texte.
Les guillemets doubles extérieurs dans "We're ready" permettent à l’apostrophe de rester dans la chaîne.
Division entière
La division entière divise deux valeurs numériques et arrondit le quotient vers le bas, y compris vers des valeurs plus négatives lorsque le quotient est négatif.
L’expression -10 // 3 donne -4, car -3,333… s’arrondit vers le bas, pas vers zéro.
Docstring
Une docstring est une chaîne utilisée comme documentation à un emplacement prévu dans le code Python ; elle diffère d’un commentaire marqué par #.
Une chaîne entre guillemets triples au début d’un script peut décrire le programme sans être un commentaire.

E

Entier
Un entier est une valeur de type int sans partie fractionnaire ; les entiers Python n’ont pas de limite fixe de taille.
Utilise item_count = 24 pour un dénombrement et écris les grands littéraux entiers avec, si besoin, des caractères de soulignement.
Entrée
Une entrée est une donnée fournie à un programme ; la fonction native input() lit une ligne saisie et renvoie ses caractères sous forme de chaîne.
Saisir 45 produit le texte "45", qui doit être converti avant de pouvoir être utilisé comme un entier.
Entrée–traitement–sortie
L’entrée–traitement–sortie est une structure de programme qui lit et convertit des données, calcule avec les valeurs et affiche des résultats qui ont un sens.
Un programme de trajet peut lire des miles et des gallons, calculer des miles par gallon, puis afficher le résultat avec son unité.
Erreur d’exécution
Une erreur d’exécution est un échec pendant l’exécution qui arrête le programme à l’opération en échec après l’exécution des instructions précédentes.
Si une ligne ultérieure divise par zéro, le texte affiché par une ligne précédente reste visible à l’écran.
Erreur de logique
Une erreur de logique est une erreur qui laisse le code s’exécuter mais donne un résultat qui ne correspond pas au calcul ou au comportement voulu par le programmeur.
Un total qui omet des frais peut être incorrect sans que Python produise d’exception ni d’avertissement.
Erreur de syntaxe
Une erreur de syntaxe est une violation de la grammaire de Python qui empêche un script enregistré de démarrer, comme une parenthèse fermante manquante.
Un guillemet non fermé vers la fin d’un script peut empêcher même la première instruction d’affichage de s’exécuter.
Expression
Une expression est du code Python qui s’évalue à une valeur, qu’il s’agisse d’un seul littéral ou nom ou d’une combinaison de plusieurs opérations.
Dans print(7 * 6), l’expression 7 * 6 est évaluée avant que sa valeur soit affichée à l’écran.
Expression de types mixtes
Une expression de types mixtes combine des valeurs de types différents ; il faut donc vérifier que chaque opération utilise une combinaison d’opérandes compatible.
Le calcul 2 + 0.5 fonctionne avec des nombres, tandis que "2" + 0.5 échoue sans conversion explicite.

É

Élévation à la puissance
L’élévation à la puissance élève une base à une puissance avec ** ; avec des opérandes entiers et un exposant non négatif, le résultat est un entier.
L’expression 4 ** 3 multiplie trois fois le nombre quatre et donne l’entier 64.

F

Fin de ligne
Une fin de ligne est le texte affiché après le dernier argument d’un appel à print ; elle est contrôlée par end et vaut un saut de ligne par défaut.
Utiliser end="" ne laisse aucun caractère de fin, donc l’appel suivant à print continue sur la même ligne.
Flottant
Un flottant est un nombre en virgule flottante de précision limitée, utilisé pour des quantités pouvant contenir des fractions, comme des mesures.
Le littéral 6.0 est un flottant même si sa valeur numérique est exactement égale à l’entier six.
Fonction native
Une fonction native est une opération appelable disponible sans importation, comme print() ou input(), dont le nom peut être masqué par une affectation.
Utiliser un nom de donnée comme item_total garde le nom natif int disponible pour les conversions.

I

Identificateur
Un identificateur est un nom utilisé dans le code, comme un nom de variable, qui doit suivre les règles de Python sur les caractères et éviter les mots-clés réservés.
L’identificateur seat_count2 est valide, mais un nom qui commence par un chiffre ou contient un espace ne l’est pas.
Incrémentation
Une incrémentation est une augmentation de la valeur d’une variable, généralement de un, effectuée par une affectation qui utilise sa valeur existante.
Après visits = 4, la mise à jour visits += 1 enregistre une visite supplémentaire et porte le décompte à cinq.
Instruction
Une instruction est une commande dans le code Python, comme une affectation ou un appel à print, qui s’exécute dans le cadre d’un programme.
Dans un script simple, count = 6 affecte une valeur avant que l’instruction ultérieure print(count) l’utilise.
Interpréteur
Un interpréteur est un programme qui lit le code Python et exécute ses instructions en utilisant les valeurs et les opérations indiquées par le code.
Dans print(6 * 7), l’interpréteur évalue 6 * 7 et fournit la valeur obtenue à l’appel à print.
Invite
Une invite est un message qui demande à l’utilisateur de saisir des données et qui indique idéalement le type de valeur attendu et toute unité de mesure.
L’invite "Whole minutes: " indique que le programme attend du texte écrit sous forme d’entier et laisse un espace pour la saisie.

L

Littéral
Un littéral est une valeur écrite directement dans le code source, dont l’écriture, notamment les guillemets ou un point décimal, détermine le type.
Les littéraux 12, 12.0 et "12" sont respectivement un entier, un flottant et une chaîne.

M

Mise en commentaire
La mise en commentaire consiste à placer un symbole de commentaire devant une instruction pour qu’elle ne s’exécute pas, tout en conservant son texte.
Placer # devant un appel temporaire à print désactive cet affichage sans supprimer la ligne de l’éditeur.
Moins unaire
Le moins unaire est un opérateur qui change le signe d’une valeur, contrairement à la soustraction qui combine deux opérandes pour obtenir une différence.
Dans 10 - -2, le second signe moins donne moins deux ; le soustraire donne donc la valeur 12.
Mot-clé
Un mot-clé est un mot réservé à la grammaire de Python ; il ne peut donc pas être utilisé comme nom de variable ordinaire dans une affectation.
Utiliser class comme cible d’une affectation provoque une erreur de syntaxe avant que le script puisse s’exécuter.

N

Notation scientifique
La notation scientifique écrit un flottant à l’aide de e et d’une puissance de dix, ce qui permet d’exprimer de façon compacte de très grandes ou de très petites valeurs numériques.
Le littéral 8e-3 signifie huit divisé par mille et représente le flottant 0.008.

O

Opérande
Un opérande est une valeur ou une expression sur laquelle agit un opérateur ; son type contribue à déterminer ce que cette opération peut faire.
Dans hours * rate, les valeurs actuelles de hours et de rate sont les opérandes de la multiplication.
Opérateur
Un opérateur est un symbole ou une combinaison de symboles qui effectue une opération sur des opérandes, comme + pour l’addition ou ** pour une puissance.
Remplacer 6 * 2 par 6 ** 2 change l’opération : la multiplication devient une élévation à la puissance.

P

Parenthèses
Les parenthèses sont des signes de regroupement ronds qui font agir l’expression qu’elles entourent comme une seule partie d’un calcul plus vaste ou qui entourent les arguments d’une fonction.
Dans (10 + 6) / 4, les parenthèses garantissent que toute la somme est divisée par quatre pour donner 4.0.
Parité
La parité indique si un entier est pair ou impair ; on peut la déterminer à partir de son reste dans la division par deux.
Le résultat de -5 % 2 est un, ce qui montre que moins cinq est impair selon la même règle du reste.
Priorité
La priorité est l’ordre qui détermine quels opérateurs sont appliqués en premier lorsqu’une expression en contient plusieurs sortes.
Dans 4 + 3 * 5, la multiplication est prioritaire sur l’addition, donc le résultat est dix-neuf.
Programme
Un programme est une suite d’instructions qui indique à un ordinateur ce qu’il doit faire, par exemple calculer une valeur et afficher le résultat.
Un programme court peut calculer le coût de plusieurs articles, puis afficher le total accompagné d’une indication.

Q

Quotient
Un quotient est le résultat d’une division ; la division entière choisit le plus grand entier inférieur ou égal au quotient exact.
Pour 22 // 5, le quotient arrondi à l’entier inférieur est quatre et le reste correspondant est deux.

R

Réaffectation
La réaffectation donne une nouvelle valeur à un nom existant, en remplaçant la valeur accessible par ce nom sans mettre à jour les autres noms.
Après level = 2, puis level = 5, lire level donne cinq au lieu de la valeur précédente, deux.
Répétition de chaîne
La répétition de chaîne utilise * avec une chaîne et un nombre entier de répétitions pour créer le nombre demandé de copies directement assemblées.
L’expression "ab" * 3 produit "ababab" ; aucun espace n’est ajouté entre les copies répétées.
Reste
Le reste est la valeur fournie par % qui complète une division ; avec des entiers et un diviseur positif, il est non négatif et inférieur au diviseur.
Avec 43 éléments répartis par groupes de 8, 43 % 8 donne 3 éléments restants après cinq groupes complets.

S

Script
Un script est un fichier texte brut contenant des instructions Python que l’on peut enregistrer, modifier et exécuter ensemble dans l’ordre où elles sont écrites.
Enregistrer des instructions dans un script permet de refaire le même calcul après avoir changé une valeur d’entrée.
Sensibilité à la casse
La sensibilité à la casse signifie que les majuscules et les minuscules distinguent les noms : modifier la casse peut donc désigner un autre nom.
Après avoir affecté une valeur à total, écrire print(Total) échoue, sauf si cet autre nom avec une majuscule existe aussi.
Séparateur
Un séparateur est le texte inséré par print() entre les arguments affichés ; il est contrôlé par l’argument nommé sep et vaut un espace par défaut.
L’appel print("A", "B", sep="-") utilise un trait d’union comme séparateur et affiche A-B sur la ligne de sortie.
Séquence d’échappement
Une séquence d’échappement commence par une barre oblique inverse et représente un caractère, comme un saut de ligne ou un guillemet qui doit rester dans une chaîne.
Dans "Up\nDown", la séquence d’échappement crée un saut de ligne entre les deux mots lorsque la chaîne est affichée.
snake_case
Le snake_case est un style de nommage qui relie des mots en minuscules par des caractères de soulignement, rendant les noms de variables composés de plusieurs mots valides et lisibles.
Le nom total_seconds suit le snake_case et indique l’unité utilisée dans un calcul de durée.
Sortie
La sortie est une information affichée par un programme, comme un nombre calculé et son indication, afin qu’une personne puisse lire le résultat.
La ligne Distance: 18 miles donne à la fois une valeur et l’unité nécessaire pour l’interpréter.

T

Tableau de suivi
Un tableau de suivi enregistre la valeur de chaque variable après chaque instruction, ce qui rend visibles l’ordre et les effets de l’exécution pour une vérification à la main.
Une nouvelle ligne après price = 10 modifie la colonne du prix tandis qu’un total enregistré auparavant reste inchangé.
Trace d’appels
Une trace d’appels est un rapport d’erreur qui indique où l’exécution a échoué, suivi du type d’exception et d’un message décrivant l’échec.
Lis d’abord la dernière ligne d’erreur, puis examine le code et l’emplacement indiqués juste au-dessus.
Troncature
La troncature supprime la partie fractionnaire d’un nombre vers zéro, comme le fait int() pour un flottant, sans arrondir à l’entier le plus proche.
Convertir -9.8 avec int() donne -9, tandis qu’arrondir cette même valeur négative à l’entier inférieur donnerait -10.
Typage dynamique
Le typage dynamique permet à un nom de désigner des valeurs de types différents au fil du temps, car le type appartient à chaque valeur et non au nom.
Python autorise entry = 3 suivi de entry = "three", même si un sens cohérent est plus clair.
Type
Un type indique la sorte de valeur dont dispose Python et contribue à déterminer les opérations qu’il peut effectuer avec cette valeur.
Le type de "25" est str : ajouter une autre chaîne assemble donc du texte au lieu d’additionner des quantités numériques.
type()
La fonction type() indique le type de son argument et permet d’examiner une valeur stockée ou le résultat d’une expression.
Afficher type("12") révèle une chaîne, même si les caractères affichés ressemblent à un nombre.
TypeError
Une TypeError est une exception levée lorsqu’une opération ou un appel reçoit un type incompatible, par exemple lorsqu’on tente d’assembler une chaîne et un entier.
L’expression "Count: " + 7 échoue, car la concaténation nécessite du texte des deux côtés de +.

V

Valeur
Une valeur est une donnée que Python manipule, comme un nombre, du texte ou un résultat booléen ; chaque valeur a un type.
Les valeurs 25 et "25" se ressemblent à l’affichage mais acceptent des opérations différentes dans un programme.
Valeur limite
Une valeur limite est une entrée située à un point où un résultat change de forme, ou près de ce point ; elle sert à vérifier que le programme se comporte comme prévu.
Pour répartir des secondes en minutes, tester 59, 60 et 61 permet de vérifier la limite de la première minute complète.
ValueError
Une ValueError est une exception levée lorsqu’une opération reçoit une valeur d’un type accepté, mais dont le contenu ne peut pas être utilisé comme demandé.
La chaîne "ten" est du texte, mais int("ten") échoue parce que ce texte ne décrit pas un entier.
Variable
Une variable est un nom qui désigne une valeur stockée et permet à un programme d’utiliser ou de remplacer cette valeur dans des instructions ultérieures.
Après length = 6, l’expression length * 2 lit la valeur actuelle par le nom length.
Variable temporaire
Une variable temporaire contient une valeur nécessaire pendant une courte suite d’étapes, par exemple pour préserver une valeur initiale pendant l’échange de deux autres valeurs.
Dans un échange séquentiel, temp = left préserve l’ancienne valeur de gauche avant que left soit écrasé.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer