01 - Syntaxe

Python est un langage de programmation inventé par Guido van Rossum en 1991. Sa syntaxe claire et lisible en fait un excellent premier langage. Ce cours présente les briques fondamentales : variables, affectation, types, affichage et saisie.

Variables et affectation

En programmation, une variable est un nom qui désigne une donnée stockée en mémoire. On crée une variable en lui affectant une valeur à l’aide de l’opérateur = :

age = 17
nom = "Alice"
taille = 1.65
print(nom, "a", age, "ans et mesure", taille, "m")
Alice a 17 ans et mesure 1.65 m

Le nom de la variable est à gauche du signe =, la valeur est à droite. Ce n’est pas une égalité mathématique : c’est une instruction qui associe un nom à une valeur. La variable n’est pas une boîte qui contient la donnée : c’est une étiquette collée sur un objet.

Règles de nommage

Un nom de variable en Python doit respecter certaines règles :

  • il ne contient que des lettres, des chiffres et le caractère _ (underscore) ;
  • il ne commence jamais par un chiffre ;
  • il est sensible à la casse : Age, age et AGE sont trois variables différentes ;
  • il ne doit pas être un mot réservé du langage (if, for, while, def, etc.) ; on évite aussi de réutiliser le nom d’une fonction intégrée comme print, len ou input, sous peine de la rendre inutilisable.

Par convention, on utilise le snake_case en Python : les mots sont séparés par des underscores et écrits en minuscules.

nombre_de_joueurs = 4
temperature_max = 38.5
nom_de_famille = "Dupont"

La fonction print()

La fonction print() affiche à l’écran ce qu’on lui passe en paramètre. On peut lui donner plusieurs paramètres séparés par des virgules : print les affichera tous, séparés par un espace.

prenom = "Alice"
age = 17
print(prenom, "a", age, "ans")
Alice a 17 ans

Les f-strings

Les f-strings (chaînes formatées) permettent d’insérer directement des variables et des expressions dans du texte :

print(f"{prenom} a {age} ans et mesure {taille} m")
print(f"Dans 10 ans, {prenom} aura {age + 10} ans")

La fonction input()

La fonction input() permet de demander une saisie à l’utilisateur. Elle renvoie toujours une chaîne de caractères (str), même si l’utilisateur tape un nombre.

nom = input("Quel est votre nom ? ")
age = int(input("Quel est votre âge ? "))
print(f"Bonjour {nom}, vous avez {age} ans")

Attention : si l’on veut travailler avec des nombres saisis par l’utilisateur, il faut convertir le résultat de input() avec int() (entier) ou float() (décimal).

Piège fréquent : oublier la conversion provoque une erreur, car Python ne sait pas additionner une chaîne et un nombre :

age = input("Votre âge ? ")  # age est une chaîne, par ex. "17"
print(age + 1)                # TypeError: can only concatenate str to str

La solution : age = int(input("Votre âge ? ")).

Réaffectation

Une variable peut changer de valeur au cours du programme :

score = 0
print(score)     # 0

score = score + 10
print(score)     # 10

score = score + 5
print(score)     # 15

L’expression score = score + 10 n’est pas une équation mathématique (qui serait absurde). Elle signifie : « calculer la valeur de score + 10, puis affecter le résultat à score ».

Le type d’une donnée

Chaque donnée possède un type qui détermine ce qu’on peut en faire. La fonction type() permet de connaître le type :

print(type(42))         # <class 'int'>    (entier)
print(type(3.14))       # <class 'float'>  (flottant)
print(type("Bonjour"))  # <class 'str'>    (chaîne)
print(type(True))       # <class 'bool'>   (booléen)

En Python, c’est la donnée qui est typée, pas la variable. Une variable peut donc changer de type :

x = 42
print(type(x))  # <class 'int'>

x = "quarante-deux"
print(type(x))  # <class 'str'>

Piège classique : 42 est un entier, mais "42" est une chaîne de caractères. Les guillemets font toute la différence.

Les commentaires

Un commentaire commence par le caractère #. Tout ce qui suit sur la même ligne est ignoré par Python. Les commentaires servent à expliquer le code :

# Calcul de la moyenne de trois notes
note1 = 15
note2 = 12
note3 = 18
moyenne = (note1 + note2 + note3) / 3  # division par 3
print(f"La moyenne est {moyenne}")

Échange de deux variables

Comment échanger les valeurs de deux variables ? La première idée ne fonctionne pas :

a = 5
b = 3
a = b   # a vaut maintenant 3, mais on a perdu le 5 !
b = a   # b vaut 3 aussi... raté !

Il faut utiliser une variable temporaire :

a = 5
b = 3
temp = a   # on sauvegarde a
a = b      # a prend la valeur de b
b = temp   # b récupère l'ancienne valeur de a

En Python, il existe un raccourci élégant grâce à l’affectation multiple :

a, b = b, a

Résumé

ConceptSyntaxeExemple
Affectationvariable = valeurage = 17
Affichageprint(...)print("Bonjour")
f-stringf"...{var}..."f"J'ai {age} ans"
Saisieinput(...)nom = input("Nom ?")
Conversionint(), float()int(input("Âge ?"))
Typetype(...)type(42)int
Commentaire# texte# ceci est ignoré
Échangea, b = b, aéchange les valeurs