Premiers pas

Ce chapitre a pour but d'introduire les éléments incontournables qui constituent un script Python : des variables, des instructions, des tests et des boucles.

Variables et types

La variable est un mécanisme permettant de stocker en mémoire des valeurs. Une variable est caractérisée par un nom choisi par le concepteur du script (je vous encourage à utiliser des noms explicites afin de faciliter la compréhension de votre code) et par son type qui renseigne sur sa nature. Le tableau ci-dessous recense les types simples les plus usuels :

Type Description
bool Booléen : valeur binaire vraie (True) ou fausse (False)
int Entier relatif
float Nombre décimal
str Chaîne de caractères délimitée par des apostrophes ou des guillemets
# -------------------------
# Mon premier script Python
# essai.py
# -------------------------

# Variable de type bool (boolean)
stop = False
start = True

# Variable de type int (integer)
maxDistance = 42

# Variable de type float (floating point value)
diameter = 15.673

# Variable de type srt (string)
message = 'Hello World!'

Info

Le caractère # est utilisé pour les commentaires. Tous les caractères situés à droite de celui-ci sont ignorés par l'interprète Python.

Python est un langage à typage dynamique, c'est à dire que vous n'avez pas à préciser le type d'une variable. Celui-ci est déterminé dynamiquement en fonction de la valeur qui lui est affectée.

Attention !

Le caractère = est utilisé pour l'affectation d'une valeur à une variable et non pour exprimer une égalité au sens mathématique. Nous aborderons un peu plus tard les opérateurs de comparaison utilisés en Python.

Instructions élémentaires

Maintenant que nous avons clarifié la notion de variable, nous allons nous intéresser aux opérations que nous pouvons effectuer sur celles-ci.

Opérations sur les variables booléennes (bool)

Ce tableau recense les opérateurs les plus usuels qui s'appliquent à des variables binaires.

Opérateur Description
or OU logique
and ET logique
not NON logique

Le code Python ci-dessous illustre l'utilisation de ces opérateurs dans l'interprète en ligne de commande.

print(True and False)       # False
print(not(True and False))  # True

Opérations sur les types numériques (int et float)

Ce tableau recense les opérateurs les plus usuels qui s'appliquent à des variables de type numérique.

Opérateur Description
+ Addition
* Multiplication
** Élévation à la puissance
/ Division
// Quotient de la division euclidienne
% Reste de la division euclidienne
print(2+3)    # 5
print(2*3)    # 6
print(2**3)   # 8
print(10/3)   # 3.3333333333333335
print(10//3)  # 3
print(10%3)   # 1

On peut aussi comparer deux variables grâce aux opérateurs suivants :

Opérateur Description
== Égal
!= Différent
> Strictement supérieur
>= Supérieur ou égal
< Strictement inférieur
<= Inférieur ou égal

Opérations sur les chaines de caractères (str)

Il existe des opérateurs spécifiques aux chaînes de caractères.

Opérateur Description
+ Concaténation
[] Extraction de caractères
begin = 'Hello'
end = 'World!'
message = begin + ' ' + end
print(message)        # Hello World!
print(message[0])     # H
print(message[6:11])  # World

Attention !

Il est parfois nécessaire de faire appel au mécanisme de transtypage, changement de type d'une variable, avec les fonctions int(),float() et str() pour concaténer du texte et des quantités numériques par exemple.

exp = 4
base = 2.4
result = str(base) + ' puissance ' + str(exp) + ' vaut ' + str(base**exp)
print(result)  # 2.4 puissance 4 vaut 33.1776

Listes

Il s'agit d'une structure de données permettant de stocker plusieurs valeurs dans une seule variable. Chaque valeur dans la liste est repérée par son indice, sachant que la première case a pour indice 0.

data = [ 0.9, 1.6, 2.8 ]
      ┌─────┬─────┬─────┐
value │ 0.9 │ 1.6 │ 2.8 │
      └─────┴─────┴─────┘
         0     1     2

Ainsi, pour accéder à la valeur centrale de la liste, il suffit d'écrire value[1].

Info

Comme pour les chaînes de caractères, l'opérateur [] permet d'extraire une valeur individuelle de la liste.
# Création d'une liste
cadeau = [ 'cravate', 'chocolats' ]

# Ajout d'un élément à la fin
cadeau.append('Python pour les Nuls')

print(cadeau)  # ['cravate', 'chocolats', 'Python pour les Nuls']

# Taille de la liste
taille = len(cadeau)  # 3

# Affichage du dernier élément de la liste
print(cadeau[-1])     # Python pour les Nuls

Astuce

Si l'indice utilisé dans l'opérateur [] est négatif, on accède à l'élément à partir de la fin de la liste. Ainsi l'indice -1 correspond au dernier élément de la liste, l'indice -2 à l'avant dernier, etc.

Tests et conditions

Au delà des instructions, il est parfois nécessaire de modifier le déroulement du script en fonction d'une condition à l'image d'un aiguillage. L'instruction if joue ce rôle en Python lorsqu'elle est suivie d'une condition booléenne vraie (True) ou fausse (False).

Lorsque la condition est vraie, l'interprète exécute les instructions situées directement sous la clause if. Par contre, si la condition est fausse, l'interprète exécute les instructions situées sous la clause else.

if hour<18:
    print('Bonjour')
else:
    print('Bonsoir')

Attention !

Toutes les instructions concernées par les clauses if ou else doivent être indentées, décalées vers la droite à l'aide d'une tabulation.

Boucles

L'automatisation de tâches au sein d'un script se traduit en général par la répétition d'un jeu d'instructions sur des valeurs différentes. Cette notion de répétition se traduit en Python à l'aide de la clause for ou la clause while.

Boucle for

Elle consiste à définir une variable, appelée compteur de boucle, qui parcourt une plage de valeurs.

Astuce

la fonction range(debut, fin, pas) retourne une liste de valeurs de debut à fin (non inclus) avec un pas égal à pas.
print('Table des 5 :')
# La variable i aura pour valeur 1, 2, 3, ..., 10
for i in range(1,11):
    print(5*i)

Attention !

Comme pour les tests, les instructions concernées par la boucle doivent toutes être indentées.

Boucle while

Elle consiste à évaluer une condition à chaque tour de boucle : tant que la condition est vraie, le script exécute les instructions à l'intérieur de la boucle. L'exemple précédent peut se traduire de la façon suivante à la clause while.

print('Table des 5 :')
# Initialisation de la variable i
i = 1
while i < 11: # Evaluation de la condition
    print(5*i)
    # Mise à jour de la variable i 
    i = i + 1

Alors que la boucle for se limite à parcourir une plage de valeurs connues, la boucle while est adaptée à des situations où l'on ne connait pas à l'avance le nombre de répétitions.

answer = 'non'
while answer != 'oui':
    answer = input('Ça va ? ')
print('Bonne nouvelle !')

Ce script produit le résultat suivant.

Ça va ? non
Ça va ? bof
Ça va ? oui
Bonne nouvelle !

Clause break

Elle permet de quitter une boucle même si celle-ci n'est pas terminée. Par exemple, si on veut afficher la table des 5 en s'arrêtant dès que le résultat dépasse 30.

print('Table des 5 :')
# La variable i aura pour valeur 1, 2, 3, ..., 10
for i in range(1,11):
    if (5*i) > 30:
        break
  
  print(5*i)

Et avec une boucle while

print('Table des 5 :')
# Initialisation de la variable i
i = 1
while i < 11: # Evaluation de la condition
    if (5*i) > 30:
        break
    print(5*i)
    # Mise à jour de la variable i 
    i = i + 1

En conclusion, vous disposez à l'issue de ce chapitre d'un kit de survie pour Python qui vous permet de vous atteler aux exemples qui vont constituer le fil conducteur de ce cours. Et vous allez pouvoir mettre en pratique vos premières connaissances avec quelques petits exercices de difficulté croissante.