Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Premiers pas en Python : premier programme, variables et types

Par mis à jour le

Améliorer cette page

Logo Python

Python s'installe en deux commandes sous Linux, et un premier programme tient en une ligne : print("Hello, World!"). Cette leçon part de zéro. Vous installez l'interpréteur, vous écrivez puis lancez un script (un fichier texte qui contient du code), vous stockez des valeurs dans des variables, vous découvrez les quatre types de base (int, float, str, bool) et vous apprenez à lire les messages d'erreur les plus fréquents. À la fin, vous savez aussi rendre un script exécutable comme une commande. Comptez 30 à 35 minutes, exemples compris, et une trentaine de minutes de plus pour le TP facultatif de fin.

  • Installer Python 3 et vérifier la version installée.
  • Écrire un fichier .py, le lancer, et tester des instructions dans l'interpréteur interactif.
  • Créer des variables, les nommer correctement et connaître leur type.
  • Convertir une valeur d'un type à un autre, et comprendre pourquoi Python refuse certaines conversions.
  • Faire des calculs, manipuler du texte et combiner des conditions avec and, or, not.
  • Rendre un script exécutable avec un shebang et chmod +x.
  • Lire la dernière ligne d'une erreur pour trouver sa cause.

Aucune notion de programmation n'est nécessaire. Il faut seulement savoir ouvrir un terminal et y taper une commande (le prompt et le terminal), ainsi que se déplacer dans les dossiers (naviguer dans les fichiers). Prévoyez un éditeur de texte (Visual Studio Code, Sublime Text, nano, ou celui de votre système) et, sous Linux, les droits sudo pour installer un paquet.

Comment installer Python et vérifier sa version ?

Section intitulée « Comment installer Python et vérifier sa version ? »

Python est un langage interprété : un programme appelé interpréteur lit votre fichier et exécute les instructions (les ordres écrits dans le programme) une à une. Installer Python revient donc à installer cet interpréteur. Choisissez l'onglet de votre système.

Fenêtre de terminal
sudo apt update
sudo apt install python3

Si le gestionnaire de paquets vous est peu familier, le guide apt l'explique.

Vérifiez ensuite que l'installation a fonctionné :

Fenêtre de terminal
python3 --version

Vous obtenez le numéro de version, par exemple Python 3.12.3 sur Ubuntu 24.04 ou Python 3.13.5 sur Debian 13. Il faut Python 3.10 ou plus récent : les messages d'erreur montrés dans cette leçon ont pris leur forme actuelle en 3.10, et une version 3.9 affiche des messages plus pauvres (invalid syntax au lieu de invalid decimal literal, sans la suggestion Did you mean). Sous Windows, tapez py --version.

Pour installer plusieurs versions côte à côte, voyez pyenv et uv.

Comment écrire et lancer un premier programme Python ?

Section intitulée « Comment écrire et lancer un premier programme Python ? »

Un programme Python est un simple fichier texte qui porte l'extension .py. Créez un dossier de travail, ouvrez votre éditeur et saisissez cette seule ligne :

print("Hello, World!")

Une fonction est une commande déjà fournie par Python, que l'on appelle par son nom suivi de parenthèses. Ici, print() affiche à l'écran ce qu'on lui donne entre les parenthèses. Le texte est entouré de guillemets : c'est une chaîne de caractères. Enregistrez le fichier sous le nom hello.py, ouvrez un terminal dans ce dossier et lancez-le :

Fenêtre de terminal
python3 hello.py
Hello, World!

Vous venez d'écrire et d'exécuter votre premier programme. Le schéma ci-dessous montre les deux façons de lancer un script : en appelant l'interpréteur vous-même (celle que vous venez d'utiliser), ou directement par ./hello.py, ce qui exige un shebang et le droit d'exécution, vus plus bas. Dans les deux cas, c'est bien l'interpréteur python3 qui affiche le résultat dans le terminal.

Schéma : le fichier hello.py peut être lancé de deux façons. Avec python3 hello.py, vous appelez directement l'interpréteur. Avec ./hello.py, après un chmod +x, le système lit la première ligne du fichier, le shebang #!/usr/bin/env python3, et démarre lui-même l'interpréteur python3. Dans les deux cas, python3 exécute le script et affiche Hello, World! dans le terminal.hello.pydu texte Pythonpython3 hello.py./hello.py(après chmod +x)le système lit#!/usr/bin/env python3interpréteurpython3Hello, World!dans le terminal
Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Lancé sans fichier, l'interpréteur ouvre une session interactive : vous tapez une instruction, Python répond aussitôt. C'est le meilleur terrain d'essai pour une notion nouvelle, sans créer de fichier.

Fenêtre de terminal
python3

Le prompt >>> indique que Python attend une instruction :

>>> print("Bonjour, Python!")
Bonjour, Python!
>>> 2 + 3
5

Dans ce mode, la valeur d'une expression (un calcul qui produit un résultat, comme 2 + 3) s'affiche sans print(). Quittez avec exit() ou le raccourci Ctrl+D (Ctrl+Z puis Entrée sous Windows). Dans cette leçon, les lignes qui commencent par >>> se testent ici ; les autres peuvent aller dans un fichier.

Là où d'autres langages utilisent des accolades, Python regroupe les instructions par indentation : un décalage de quatre espaces en début de ligne. Une condition if en donne un premier aperçu, car elle exécute la ligne décalée seulement si la condition est vraie :

if 5 > 3:
print("5 est plus grand que 3")

Si vous oubliez le décalage, Python refuse d'exécuter le programme :

if 5 > 3:
print("5 est plus grand que 3")
IndentationError: expected an indented block after 'if' statement on line 1

Python affiche en réalité quelques lignes de plus (le traceback, expliqué en fin de leçon). Les exemples d'erreur de cette leçon n'en montrent que la dernière ligne, la plus utile.

Le message dit exactement ce qui manque : un bloc indenté après le if. Les conditions et les boucles sont traitées dans structures de contrôle et collections ; retenez ici que l'indentation fait partie de la syntaxe.

Une variable est un nom qui désigne une valeur gardée en mémoire. On la crée avec le signe =, appelé affectation : le nom à gauche reçoit la valeur à droite.

nom = "Alice"
age = 30
taille = 1.75
est_majeur = True
print(nom, age, taille, est_majeur)

Python ne demande aucune déclaration de type : la variable existe dès qu'on lui affecte une valeur, et son type est déduit de cette valeur. C'est le typage dynamique. On peut aussi lui affecter ensuite une valeur d'un autre type, mais ce n'est pas une bonne habitude : une variable doit garder le même sens du début à la fin.

Les noms de variables suivent quelques règles :

  • ils contiennent des lettres, des chiffres et le tiret bas _, sans espace ;
  • ils ne commencent jamais par un chiffre ;
  • ils sont sensibles à la casse : nom et Nom sont deux variables distinctes ;
  • la convention est le snake_case (minuscules séparées par _, comme est_majeur) et un nom qui dit ce que la variable contient.

Les deux premières erreurs de débutant viennent de ces règles. Écrire Nom au lieu de nom donne :

nom = "Alice"
print(Nom)
NameError: name 'Nom' is not defined. Did you mean: 'nom'?

Python ne connaît pas Nom, et il suggère le nom le plus proche. Quant à un nom qui commence par un chiffre, il est refusé dès la lecture :

2eme_essai = 1
SyntaxError: invalid decimal literal

Python lit 2eme comme un nombre mal écrit, d'où ce message qui ne parle pas de variable : renommez en essai_2 ou deuxieme_essai.

Le type d'une valeur détermine ce qu'on peut en faire : on additionne des nombres, on découpe du texte. Quatre types de base suffisent pour commencer.

TypeNom completContientExemple
intentierun nombre entier, positif ou négatif42
floatflottantun nombre décimal, avec un point3.14
strchaîne de caractèresdu texte entre guillemets simples ou doubles"Bonjour"
boolbooléenune valeur de vérité : True ou FalseTrue

Le séparateur décimal est le point, jamais la virgule. Pour connaître le type d'une valeur, la fonction type() répond. Reprenez les variables de la section précédente (dans le même fichier, ou la même session interactive) :

print(type(nom), type(age), type(taille), type(est_majeur))
<class 'str'> <class 'int'> <class 'float'> <class 'bool'>

age = 30 est donc un int et taille = 1.75 un float, sans que vous l'ayez précisé. Les booléens s'écrivent avec une majuscule : True et False.

Comment convertir une valeur d'un type à un autre ?

Section intitulée « Comment convertir une valeur d'un type à un autre ? »

Python ne mélange pas les types dans le dos du programmeur. Additionner un texte et un nombre est une erreur :

"123" + 1
TypeError: can only concatenate str (not "int") to str

Il faut convertir explicitement avec les fonctions du même nom que les types : int(), float(), str().

>>> int("123") + 1
124
>>> float("123")
123.0
>>> str(30) + " ans"
'30 ans'

Le résultat '30 ans' apparaît entre guillemets dans le mode interactif, qui montre la représentation d'une valeur ; avec print(), vous lirez 30 ans. Certaines conversions échouent : int() n'accepte pas un texte qui contient un point décimal.

int("12.5")
ValueError: invalid literal for int() with base 10: '12.5'

Passez par float() d'abord, puis int(). Notez que int() tronque : il coupe la partie décimale au lieu d'arrondir.

>>> int(float("12.5"))
12
>>> int(3.99)
3

Enfin, bool() suit une règle simple : une valeur vide ou nulle donne False, toute autre True. Attention, c'est la présence de texte qui compte, pas son sens.

>>> bool("")
False
>>> bool("False")
True
>>> bool(0)
False

Pour intégrer une variable dans une phrase sans passer par str(), les f-strings (f"{nom} a {age} ans" donne Alice a 30 ans) sont détaillées dans formater une chaîne.

Un commentaire est du texte ignoré par Python, écrit pour les humains : vous dans six mois, ou un collègue. Il commence par le symbole # et s'arrête à la fin de la ligne. Il peut occuper une ligne entière ou suivre une instruction.

# Calculer la somme de deux nombres
somme = 5 + 3
nom = "Alice" # un commentaire peut aussi suivre le code

Un bon commentaire explique pourquoi on fait quelque chose, pas ce que dit déjà le code : somme = 5 + 3 # additionne 5 et 3 n'apporte rien. Un script porte souvent en tête un en-tête qui donne son but, son auteur et sa date, comme on le voit plus bas avec le shebang.

Les variables servent à calculer, à assembler du texte et à poser des conditions. Trois familles d'opérateurs couvrent les besoins de départ : mathématiques, textuels et logiques. Un opérateur est un symbole qui combine des valeurs.

Python connaît les sept opérateurs arithmétiques courants. Avec a = 10 et b = 3 :

OpérateurRôleExempleRésultat
+additiona + b13
-soustractiona - b7
*multiplicationa * b30
/divisiona / b3.3333333333333335
//division entièrea // b3
%modulo (reste de la division)a % b1
**puissancea ** b1000

Un détail piège les débutants : / renvoie toujours un float, même quand la division tombe juste, car 10 / 2 vaut 5.0. Pour un résultat entier, utilisez //. Le modulo % donne le reste : 10 % 3 vaut 1, puisque 10 = 3 * 3 + 1. Il sert par exemple à tester si un nombre est pair (n % 2 vaut 0). Diviser par zéro lève une erreur :

1 / 0
ZeroDivisionError: division by zero

Les chaînes se combinent et se découpent avec quelques opérations de base.

chaine1 = "Bonjour"
chaine2 = "Python"
print(chaine1 + ", " + chaine2) # Bonjour, Python
print(len(chaine1)) # 7
print(chaine1[0]) # B
print(chaine2[0:3]) # Pyt
print(chaine2[-1]) # n
print("ab" * 3) # ababab

La concaténation + colle deux chaînes bout à bout. len() donne la longueur. L'indexation chaine[0] désigne un caractère par sa position, et la première position est 0, pas 1. Un indice négatif compte depuis la fin : [-1] est le dernier caractère. Le découpage chaine2[0:3] extrait une tranche : il part de l'indice 0 inclus et s'arrête avant l'indice 3, d'où Pyt (trois caractères, pas quatre). Enfin * répète une chaîne. Les méthodes de texte (split, strip, replace) sont dans les chaînes de caractères et la notation par tranches dans le slicing.

Les opérateurs logiques combinent des booléens, ce qui servira à écrire des conditions.

  • and : vrai seulement si les deux côtés sont vrais.
  • or : vrai si au moins un côté est vrai.
  • not : inverse la valeur.
>>> True and False
False
>>> True or False
True
>>> not True
False
>>> 5 > 3 and 2 > 1
True

Les comparaisons (>, <, et == qui teste l'égalité) produisent elles-mêmes des booléens, ce qui permet de les combiner comme dans le dernier exemple.

Comme en mathématiques, Python évalue la multiplication avant l'addition. Les parenthèses imposent un autre ordre, et c'est le moyen le plus lisible de lever le doute.

>>> 5 + 2 * 3
11
>>> (5 + 2) * 3
21

Jusqu'ici vous avez lancé vos fichiers avec python3 hello.py. Sous Linux et macOS, on peut les lancer comme n'importe quelle commande, par ./hello.py. Il faut pour cela une première ligne spéciale, le shebang, et le droit d'exécution. Le shebang indique au système quel interpréteur démarrer. Voici un script complet, avec un en-tête de commentaires :

#!/usr/bin/env python3
# Auteur : Jean Dupont
# Date : 2026-10-14
# Description : affiche un message de bienvenue
print("Hello, World!")

La ligne #!/usr/bin/env python3 doit être la toute première du fichier. /usr/bin/env retrouve python3 où qu'il soit installé. Pour Python, ce n'est qu'un commentaire puisqu'elle commence par # : seul le système la lit. Sur RHEL 9, où python3 désigne la 3.9, écrivez #!/usr/bin/env python3.12. Enregistrez ce script sous mon_script.py, puis tentez de le lancer directement :

Fenêtre de terminal
./mon_script.py
bash: ./mon_script.py: Permission denied

Sous zsh, le shell par défaut de macOS, le même refus s'écrit zsh: permission denied: ./mon_script.py. Le fichier n'a pas encore le droit d'exécution ; chmod +x l'ajoute (le principe des droits est expliqué dans les permissions Linux) :

Fenêtre de terminal
chmod +x mon_script.py
./mon_script.py
Hello, World!

Sans shebang, ou sans chmod +x, il reste la méthode sûre : python3 mon_script.py, qui fonctionne toujours. Sous Windows hors WSL, le shebang et chmod ne s'appliquent pas : lancez le script avec py mon_script.py.

Comment corriger les erreurs les plus fréquentes ?

Section intitulée « Comment corriger les erreurs les plus fréquentes ? »

Une erreur n'est pas un échec : Python vous dit précisément ce qui ne va pas. Quand un programme plante, il affiche un traceback, la liste des lignes traversées. La partie utile est la dernière ligne : elle donne le type de l'erreur (NameError, TypeError…) puis un message. Au-dessus, il indique le fichier et le numéro de la ligne fautive. Lisez toujours de bas en haut : type, message, puis ligne.

SymptômeCauseSolution
python: command not foundSur Debian, Ubuntu, RHEL ou AlmaLinux, seule la commande python3 existeUtiliser python3, ou installer python-is-python3 sous Ubuntu
bash: ./mon_script.py: Permission denied (sous zsh : zsh: permission denied)Le droit d'exécution manquechmod +x mon_script.py, ou lancer avec python3 mon_script.py
IndentationError: expected an indented blockLa ligne après if (ou autre bloc) n'est pas décaléeIndenter de quatre espaces
NameError: name 'Nom' is not definedFaute de casse, ou variable pas encore crééeVérifier l'orthographe et créer la variable avant de l'utiliser
SyntaxError: invalid decimal literalUn nom de variable commence par un chiffreRenommer (essai_2 plutôt que 2eme_essai)
TypeError: can only concatenate str (not "int") to strUn texte et un nombre additionnésConvertir avec str() ou int()
ValueError: invalid literal for int()int() reçoit un texte qui n'est pas un entier, comme "12.5"Passer par float() d'abord, ou corriger la donnée
ZeroDivisionError: division by zeroDivision par zéroVérifier le diviseur avant de diviser

Un exemple recopié apprend peu ; le TP 00 : Intro Python vous fait construire pas à pas un script fondamentaux.py qui reprend chaque notion de la leçon. Il se trouve dans le dépôt python-training : clonez-le, ouvrez le dossier 00-Intro-Python et suivez le README.md de l'étape 1 à l'étape 9, le script complet. Lancez le script après chaque étape et lisez les erreurs plutôt que de les contourner. Comptez une trentaine de minutes en plus de la leçon.

Le TP affiche ses résultats avec des f-strings (f"Age: {age}" insère la valeur de age dans le texte) et type(age).__name__, qui donne le nom du type, int, sans le <class '...'> ; \n dans une chaîne insère un saut de ligne. Ces trois écritures servent seulement à l'affichage : recopiez-les telles quelles ; les f-strings sont détaillées dans formater une chaîne.

Arrêtez-vous avant la section « Challenge » du README : elle demande des conditions et des boucles, pas encore vues. Revenez-y après la leçon structures de contrôle et collections.

Vous avez réussi si, sans relire la leçon, vous savez :

  • créer un script avec un shebang et le lancer par ./, après chmod +x (sous Windows hors WSL, par py fondamentaux.py) ;
  • commenter votre code avec # ;
  • créer des variables, afficher leur type, et convertir entre int, float et str ;
  • faire des calculs, manipuler des chaînes et tester and, or, not avec des comparaisons, et prédire le résultat de 5 + 2 * 3 ;
  • observer bool() sur 1, 0, '' et 'Hello'.

Le TP ne provoque pas d'erreurs volontaires : si l'une des erreurs du tableau précédent apparaît pendant votre travail, vous devez savoir la reconnaître et la corriger.

  • On lance un programme par python3 fichier.py (la commande python n'existe pas toujours ; py sous Windows), avec Python 3.10 ou plus récent ; le mode interactif python3 teste une instruction à la fois.
  • Python délimite ses blocs par l'indentation, pas par des accolades.
  • Une variable se crée par affectation, age = 30, sans déclarer de type. Les noms sont sensibles à la casse (nom et Nom diffèrent) et ne commencent jamais par un chiffre (2eme_essai est refusé).
  • Les quatre types de base sont int, float (taille = 1.75), str et bool ; type() les révèle et int(), float(), str() convertissent (int("123") + 1 vaut 124).
  • / renvoie toujours un float, % donne le reste (10 % 3 vaut 1), et la multiplication passe avant l'addition sauf parenthèses (5 + 2 * 3 vaut 11).
  • Une chaîne s'indexe à partir de 0 : "Python"[0:3] vaut "Pyt".
  • # ouvre un commentaire, et le shebang #!/usr/bin/env python3 en est un aussi pour Python.
  • Pour lancer ./mon_script.py, il faut un shebang et le droit d'exécution donné par chmod +x.

Ces questions portent uniquement sur ce que cette leçon enseigne : variables, types, conversions, opérations et lancement d'un script.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn