Python 3 : instructions avancées

I - Les listes

Définition 1 : Une liste est un tableau à une dimension contenant des éléments qui peuvent être de types différents. Les éléments sont numérotés (indicés) : le premier élément a pour indice $0$.

En Python, une liste s'écrit entre crochets : [élément1, élément2, …].

Utilisation d'une liste (instruction Python)

liste1 = [-4, 5.2, "bonjour", 'a', -4]   # création d'une liste
liste2 = []                               # liste vide
nbre_elements = len(liste1)               # nombre d'éléments : 5
liste1.append("élément")                  # ajoute un élément à la fin
debut_liste = liste1[0]                   # premier élément : -4
dernier = liste1[-1]                      # dernier élément
del liste1[2]                             # supprime l'élément d'indice 2 ("bonjour")
liste1.remove(-4)                         # supprime le premier élément égal à -4

Parcourir une liste et créer une liste en compréhension

notes = [12, 8, 15, 10, 17]
somme = 0
for n in notes:          # n prend successivement chaque valeur de la liste
    somme = somme + n
print(somme / len(notes))   # moyenne : 12.4
carres = [k ** 2 for k in range(1, 6)]   # [1, 4, 9, 16, 25]

II - Les fonctions

Définition 2 : Une fonction est une suite d'instructions regroupées sous un nom, que l'on peut appeler (exécuter) avec ce nom.
  • On déclare une fonction avec def nom_fonction(paramètres): ;
  • si elle renvoie une valeur, on écrit dans son corps return valeur ;
  • on l'appelle en écrivant son nom suivi des valeurs des paramètres entre parenthèses.

Fonction qui ne renvoie rien (instruction Python)

def affiche_message():
    print("La fonction a été appelée.")
affiche_message()

def affiche_date(jour, mois, annee):
    print("Aujourd'hui, nous sommes le", jour, mois, annee)
affiche_date(21, "avril", 2019)

Fonction qui renvoie une valeur (instruction Python)

def f(x):
    return 3 * x ** 2 - 2 * x + 1
print(f(2))          # affiche 9

def valeur_absolue(x):
    if x >= 0:
        return x
    else:
        return -x
print(valeur_absolue(-7))   # affiche 7

def renvoie_date(jour, mois, annee):
    # str convertit un nombre en chaîne de caractères
    return "Nous sommes le " + str(jour) + " " + mois + " " + str(annee)
print(renvoie_date(21, "avril", 2019))

III - Modules et packages

Définition 3 : Un module est un fichier Python (extension .py) contenant des fonctions utilisables dans d'autres programmes du même répertoire. Python fournit aussi des modules de base, utilisables directement.
  • from nom_module import nom_fonction importe une fonction d'un module ;
  • from nom_module import * importe toutes ses fonctions.

Utilisation d'un module (instruction Python)

# Fichier module.py
def aire_carre(cote):
    return cote ** 2

# Programme qui utilise module.py
from module import aire_carre
print(aire_carre(3))   # 9
ModuleContenu
randomvaleurs aléatoires (random(), randint(a, b)…)
mathfonctions mathématiques (sqrt, exp, log, pi…)
sysfonctions liées au système Python
osinteraction avec le système d'exploitation
timetravail avec le temps
calendarfonctions de calendrier

Utilisation des modules math et random

from math import sqrt, log
from random import randint, random
print(sqrt(2))        # environ 1.414
print(log(10))        # logarithme népérien : environ 2.303
de = randint(1, 6)    # entier aléatoire entre 1 et 6 (inclus)
u = random()          # réel aléatoire dans [0 ; 1[

Plusieurs modules regroupés dans un même dossier forment un package. On importe une fonction avec from nom_package.nom_module import nom_fonction.

IV - Les graphiques

Pour tracer des graphiques, on utilise le module pyplot du package matplotlib (documentation : matplotlib.org).

Utilisation de pyplot (instruction Python)

from matplotlib.pyplot import *
scatter(4, 3.6, color="blue")             # un point
plot([1, 7], [8, 3], "--", color="red")   # segment en pointillés de (1;8) à (7;3)
x = []
y = []
for i in range(100):                      # courbe de la fonction carré sur [-4 ; 5,9]
    var = -4 + 0.1 * i
    x.append(var)
    y.append(var ** 2)
plot(x, y, color="green", label="y = x²", linewidth=3)
legend()     # affiche la légende
show()       # affiche la figure

Aperçu de la figure obtenue :

xyy = x²