Python 3 : les bases

L'objectif de ce cours est d'introduire la mise en œuvre d'algorithmes à l'aide du langage Python.

Définition 1 : Un algorithme est une suite finie d'instructions permettant de résoudre un problème ; il peut être traduit dans un langage informatique.

I - Premières instructions en langage Python

• Insertion d'un commentaire

Un commentaire est précédé du symbole # : la suite de la ligne est ignorée lors de l'exécution. Il facilite la compréhension du programme.

Insérer un commentaire (instruction Python)

# Ceci est un commentaire sur une seule ligne en Python.

• Utilisation d'une variable

Une variable est associée à un espace mémoire et stocke une valeur (nombre, chaîne de caractères…). Son nom commence par une lettre et ne contient ni espace ni caractère spécial (seul le tiret bas _ est autorisé). On affecte une valeur avec le symbole =.

Utilisation d'une variable (instruction Python)

# On crée une variable nombre1 et on lui affecte la valeur 5
nombre1 = 5
nombre2 = -3.4
somme = nombre1 + nombre2
produit = nombre1 * nombre2
quotient = nombre1 / nombre2
# Puissance : nombre1 au cube
puissance3 = nombre1 ** 3
phrase = "Hello World !"

Remarque : en Python, la virgule décimale s'écrit avec un point : $-3{,}4$ s'écrit -3.4. Le quotient entier s'obtient avec // et le reste de la division euclidienne avec % (exemple : 17 // 5 vaut $3$ et 17 % 5 vaut $2$).

• Affichage dans la console

Pour afficher des informations, on utilise l'instruction print.

Affichage dans la console (instruction Python)

# Afficher un message (avec guillemets)
print("J'aime bien apprendre le langage Python.")
# Afficher le contenu d'une variable (sans guillemets)
phrase = "Hello World !"
print(phrase)
# Combiner messages et variables
nom = "Pierre"
age = 16
print(nom, "est âgé de", age, "ans.")

• Saisie au clavier

L'instruction input stocke une chaîne de caractères saisie au clavier. Pour un nombre, on la convertit avec int (entier), float (décimal) ou eval (expression quelconque, par exemple 7/2).

Saisie au clavier (instruction Python)

phrase = input("Entrer votre nom : ")
nombre_entier = int(input("Entrer un nombre entier : "))
nombre_decimal = float(input("Entrer un nombre décimal : "))
nombre_reel = eval(input("Entrer un nombre réel : "))

II - Instructions conditionnelles

Certaines instructions ne sont exécutées que si une condition est satisfaite. Les opérateurs de comparaison $=$, $\neq$, $<$, $>$, $\leqslant$, $\geqslant$ s'écrivent en Python ==, !=, <, >, <=, >=.

• Si … alors …

En Python : if condition: ; le bloc d'instructions qui suit est décalé d'une tabulation (4 espaces) : il est indenté.

Si … alors … (instruction Python)

mot_de_passe = input("Entrer le mot de passe : ")
if mot_de_passe == "sesame":
    print("Merci. Vous pouvez entrer.")

Remarque : Python est sensible à la casse : Sesame et sesame sont différents.

Une condition peut combiner plusieurs tests avec les opérateurs logiques ET (and) et OU (or) : « c1 ET c2 » est vraie si les deux sont vraies ; « c1 OU c2 » est vraie si au moins l'une est vraie.

and, or (instruction Python)

nombre = float(input("Entrer un nombre : "))
if nombre >= 1 and nombre <= 2:
    print("Le nombre appartient à [1;2].")
if nombre < 1 or nombre > 2:
    print("Le nombre appartient à ]-inf;1[ U ]2;+inf[.")

• Si … alors … sinon …

Si … alors … sinon … (instruction Python)

mot_de_passe = input("Entrer le mot de passe : ")
if mot_de_passe == "sesame":
    print("Merci. Vous pouvez entrer.")
else:
    print("Désolé. Mot de passe incorrect.")

• Branchement conditionnel

if … elif … else (instruction Python)

age = int(input("Entrer votre âge : "))
if age < 3:
    print("Vous êtes un bébé.")
elif age < 12:
    print("Vous êtes un enfant.")
elif age < 18:
    print("Vous êtes un adolescent.")
else:
    print("Vous êtes un adulte.")

Remarque : avec elif, une condition n'est testée que si les précédentes sont fausses : il est inutile de réécrire age >= 3. Le else est facultatif.

III - Instructions itératives (boucles)

On utilise une boucle pour répéter un même bloc d'instructions.

• Boucle bornée : pour … allant de … à …

Le nombre d'itérations est connu à l'avance : un compteur est incrémenté à chaque passage. En Python : for i in range(debut, fin, pas):, ou range(debut, fin) (pas $1$), ou range(fin) (début $0$, pas $1$).

Attention : la valeur fin est exclue : range(0, 10, 2) donne $0, 2, 4, 6, 8$ et range(3) donne $0, 1, 2$.

for (instruction Python)

# Calcul de 2 à la puissance 3
a = 1
for compteur in range(3):
    a = a * 2
print("2 puissance 3 vaut :", a)
# Somme des carrés des nombres pairs inférieurs à 10
somme_carres = 0
for i in range(0, 10, 2):
    somme_carres = somme_carres + i * i
print("Somme :", somme_carres)   # affiche 120

• Boucle non bornée : tant que … faire

On répète un bloc d'instructions tant qu'une condition est vraie ; le test est fait au début de chaque passage et le nombre d'itérations n'est pas connu à l'avance. En Python : while condition:.

while (instruction Python)

# L'utilisateur doit taper un nombre positif ou nul
x = -1
while x < 0:
    x = float(input("Entrer un nombre positif ou nul : "))
print("La valeur de x est", x)

Application : algorithme de seuil

Un capital de $1\,000$ € est placé à $4\,\%$ par an. Au bout de combien d'années dépasse-t-il $1\,500$ € ?

C = 1000
n = 0
while C <= 1500:
    C = C * 1.04
    n = n + 1
print(n)   # affiche 11