Cette page fait partie du cours de polytech PeiP1 et 2 Bio
1. Découverte de Python
Pour l'ensemble des programmes suivants, on vous demande :
- de saisir le code du programme dans un fichier
- de l'exécuter et comprendre le résultat affiché
- si une erreur se produit, de trouver un moyen de la corriger.
Il peut également être intéressant de faire un résumé des différentes commandes sous forme d'une fiche de révision.
Les codes python présents sur cette page peuvent être exécutés en appuyant sur le bouton Exécute situé en dessous de chacun d'entre eux. Le code sera exécuté sur une machine personnelle à mon domicile sauf si elle est éteinte, dans ce cas un message d'erreur vous alertera de l'impossibilité de l'exécution.
Le résultat de l'exécution sera affiché dans la fenêtre prévue à cet effet sur cette page.
1.1. Les types de base
1.1.1. Les booléens
Les booléens bool représentent les valeurs vrai ou faux.
1.1.1.a combinaisons (and_or_xor_not.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
vrai = True
faux = False
print(vrai or faux)
print(vrai and faux)
print("vrai ou vrai", vrai | faux)
print("vrai et faux", vrai & faux)
print("vrai et vrai", vrai & vrai)
print("vrai ou exclusif vrai", vrai ^ vrai)
print("non vrai = ", not(True))
print("non faux = ", not(False))
On rappelle les tables de vérité des opérateurs logiques :
| A |
B |
A or B |
A and B |
A xor B |
| False |
False |
False |
False |
False |
| False |
True |
True |
False |
True |
| True |
False |
True |
False |
True |
| True |
True |
True |
True |
False |
Table de vérité
1.1.2. Les chaînes
Les chaînes de caractères str représentent des mots ou des phrases entre guillemets.
Le premier indice d'une chaîne (i.e. l'indice du première caractère) commence à 0.
1.1.2.a input, print (input.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
nom = input("saisir votre nom ? ")
print("bonjour " + nom)
Note : le code précédent ne s'exécutera pas en raison du input demande un saisie au clavier.
1.1.2.b indices (str_indices.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
chaine = "lalelilolu"
print(len(chaine))
print(chaine[0])
print(chaine[1])
print(chaine[2:])
print(chaine[2:4])
print(chaine[:4])
print(chaine[3:-2])
1.1.2.c multiplication de chaine (str_mul.py)
La multiplication des ... chaines.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
print(3 * "oh !")
print("oh !" * 3)
oh = "oh! " * 3
print( oh )
print( len(oh) )
1.1.2.d parcours de chaine : for (str_enum_char.py)
On peut parcourir une chaîne en itérant sur ses valeurs.
Le terme itération en informatique fait référence au parcours d'un container, un container étant un objet qui contient d'autres objets.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
chaine = "lalelilolu"
# pour tout caractere dans la chaine faire
for caractere in chaine:
print(caractere)
1.1.2.e parcours de chaine : indice (str_enum_index.py)
On peut parcourir une chaîne en itérant sur ses indices. Le premier caractère de la chaîne étant en position 0.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
chaine = "lalelilolu"
# avec un while
indice = 0
while indice < len(chaine):
print(chaine[indice])
indice = indice + 1
# avec un for et enumerate
for indice,caractere in enumerate(chaine):
print(indice,caractere)
1.1.3. Les réels
Les nombres réels sont appelés nombres à virgule flottante float et peuvent représenter des nombres dde l'ordre de $± 10^{±308}$. Il s'agit en fait de nombres en double précision.
1.1.3.a opérations de base (float_basic.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
x = 2.0
y = 3.0
z = x / y
print(z)
print(type(z))
1.1.3.b résolution d'une équation du second degré (float_sqrt.py)
Pour utiliser des fonctions mathématiques comme la racine carrée (sqrt), les fonctions trigonométriques, etc, il faut faire appel à la librairie mathématique.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
import math
a = 1
b = 1.0
c = -2.0
delta = b*b - 4*a*c
x1 = (-b + math.sqrt(delta))/(2*a)
x2 = (-b - math.sqrt(delta))/(2*a)
print(delta, x1, x2)
1.1.3.c opérations trigonométriques (float_trigo.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
import math
angle_degrees = 90.0
angle_radians = angle_degrees * 2.0 * math.pi / 360.0
print(math.sin(angle_radians))
print(math.cos(angle_radians))
1.1.3.d autres opérations (float_others.py)
On dispose de nombreuses autres fonctions de la librairie mathématique.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
import math
x = 279.12
# racine carrée (réels)
y = math.sqrt(x)
# racine carrée (entiers)
# uniquement à partir de la version 3.8 de Python
# z = math.isqrt(int(x))
print(y)
print(z)
# truncation
print(math.trunc(y))
# puissance
print(math.pow(2,8))
print(math.sin(math.radians(45)))
1.1.4. Les entiers
Le type entier int représente des valeurs comprises dans l'intervalle -2_147_483_648 et 2_147_483_647.
1.1.4.a opérations de base (int_basic.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
x = 2
print("x=",x)
y = 3
print("y=",y)
z = x * y / 4
print("z=", z)
v = y / x # division classique (réel)
w = y // x # division entière
print("v=", v)
print("w=", w)
1.1.4.b affectations (int_assignments.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
x, y, z = 2, 4, -5
print(x, y, z)
u, v = x*y+z, y/x-z
print(u, v)
1.1.4.c échange de valeurs (int_swap.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
a = 10
b = -3
print(a,b)
a,b = b,a
print(a,b)
1.2. Les types complexes
1.2.1. Les listes / tableaux
Les tableaux ou les listes list() sont gérés de la même manière. Ils sont définis par une liste de valeurs entre crochets.
1.2.1.a création (list_create.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# définition d'une liste en donnant les valeurs
liste = [1, 2, 3, "coucou", 3.14]
print(liste)
# génération des valeurs entre 1 et 9
liste = [ i for i in range(1,10) ]
print(liste)
La fonction range génère au fur et à mesure des valeurs entières croissantes :
- range(a,b) génère des valeurs dans l'intervalle $[a, b-1]$
- range(b) génère des valeurs dans l'intervalle $[0, b-1]$
- range(a,b,c) génère des valeurs dans l'intervalle $[a, b-1]$, en commençant par $a$ puis en ajoutant à chaque itération $c$, on obtient donc $a, a+c, a+2c$, etc
Comme on le voit, la borne supérieure est toujours diminuée de 1.
1.2.1.b indices (list_indices.py)
On peut faire référence à un élément de la liste en utilisant son indice entre crochets, le premier éléments se trouvant à l'indice 0. On peut également définir des plages d'indices [0:2] qui signifie les éléments aux indices 0 et 1.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = [ "pomme", "poire", "abricot"]
# affiche la longueur
print(len(liste))
# affiche la liste
print(liste)
print(liste[0])
print(liste[2])
print(liste[0:1])
print(liste[0:2])
liste[1:3] = ["fraise", "orange"]
print(liste)
liste = [ "pomme", "poire", "abricot"]
liste[1:2] = ["fraise", "orange"]
print(liste)
liste = [ "pomme", "poire", "abricot"]
liste[1:2] = "fraise"
print(liste)
1.2.1.c append, insert, remove, del (list_app_ins_rem_del.py)
On peut :
- ajouter un élément en fin de liste grâce à append(valeur)
- ajouter un élément n'importe où dans la liste grâce à insert(indice, valeur)
- supprimer un élément en utilisant sa valeur grâce à remove(valeur)
- supprimer un élément en utilisant son indice grâce à del liste[indice]
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# definition d'une liste
liste = [ "pomme", "poire", "abricot"]
# ajout d'un élément en fin de liste / tableau
liste.append('orange')
print(liste)
# ajout au début
liste.insert(0, "banane")
print(liste)
# ajout après le premier élément de plusieurs éléments
liste.insert(1, ["kiwi", "lemon"])
print(liste)
# suppression d'un élément existant
liste.remove("banane")
print(liste)
# suppression d'un élément non existant
# provoquera une erreur
# liste.remove("ananas")
# print(liste)
# suppresion d'un élément suivant son indice
del liste[0]
print(liste)
1.2.1.d insertion de sous liste (list_ins_sub_list.py)
Le problème du code précédent est que l'insertion de la liste
["kiwi", "lemon"] dans liste
génère une liste contenant une liste :
['banane', ['kiwi', 'lemon'], 'pomme', 'poire', 'abricot', 'orange']
Si on supprime l'élément à l'indice 1 de la liste, c'est
["kiwi", "lemon"] qui est supprimé et non pas
"kiwi".
Si on désire n'avoir qu'une seule liste il faut procéder ainsi :
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# definition d'une liste
liste = [ 1, 4, 5 ]
sous_liste = [2, 3]
# ajout d'une sous-liste dans la liste pour n'avoir q'une
# liste de valeurs
liste[1:1] = sous_liste
print(liste)
1.2.1.e parcours, appartenance (list_in.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = [ "pomme", "poire", "abricot"]
# parcours sur les valeurs
for element in liste:
print(element)
# parcours sur les indices avec for
for indice in range(len(liste)):
print( liste[indice] )
# parcours sur les indices avec while
indice = 0
while indice < len(liste):
print( liste[indice] )
indice += 1
# enumerate
# utilisation de l'indice et de l'élément
print("enumerate:")
print("-" * 10)
for indice, element in enumerate(liste):
print( indice, element )
# vérification de la présence d'un élément dans la liste
if "poire" in liste:
print("poire appartient à la liste")
else:
print("poire n'appartient pas à la liste")
# vérification de l'absence d'un élément dans la liste
if "pastèque" not in liste:
print("pastèque n'appartient pas à la liste")
else:
print("pastèque appartient à la liste")
1.2.1.f tri (list_sort.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = [ "pomme", "poire", "abricot"]
# tri par ordre croissant des valeurs
liste.sort()
print(liste)
# tri par ordre décroissant des valeurs
liste.sort(reverse=True)
print(liste)
1.2.1.g nombre d'occurrences, indice (list_count_index.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = ["jean","sans","terre","jean","sans","peur","jean","le","bon"]
# nombre d'occurrences de "jean"
print("il y a ", liste.count("jean"), " jean dans la liste")
# indice de "sans" en commençant à l'indice 0
print(liste.index("sans"))
# indice de "sans" en commençant à l'indice 2
print(liste.index("sans", 2))
1.2.2. Les tuples
Les tuples sont des listes (ou tableaux) immuables.
1.2.2.a tuple (tuple_app_mod.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
t1 = (1, 2, 3)
print( t1 )
# impossible
# t1.insert(4)
print(t1[0], t1[2])
print(t1)
# provoque une erreur
t1[1:2] = (10)
Note : la dernière instruction provoque une erreur car on ne peut modifier un tuple.
1.2.2.b tuple parcours (tuple_enum.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
t1 = (1, 2, 3)
for valeur in t1:
print(valeur)
for indice,valeur in enumerate(t1):
print(indice,valeur)
1.2.3. Les ensembles
Les ensembles sont définis par les accolades { 1, 2, 3 }.
1.2.3.a ensemble ajout, suppression (set_add_remove.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
set1 = { 1, 2, 3, 2, 1, 4, 2 }
# affichage
print(set1)
#ajout d'un élément
set1.add(5)
print(set1)
# suppression d'un élément existant
set1.remove(1)
print(set1)
# suppression d'un élément non existant
# provoque une erreur
set1.remove(7)
Note : la dernière instruction provoque une erreur car on tente de supprimer la valeur 7 qui n'est pas dans l'ensemble.
1.2.3.b tuple d'un ensemble (set_enum.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
set1 = { 1, 2, 3, 2, 1, 4, 2 }
for element in set1:
print(element)
for indice, element in enumerate(set1):
print(indice, element)
1.2.4. Les tableaux associatifs / associations
Les tableaux associatifs dict() également appelés dictionnaires en Python sont introduits avec des accolades comme les ensembles et établissent une correcpondance entre une clé et une valeur.
1.2.4.a dictionnaire définition (dico_def.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# dictionnaire de personnes avec nom et année de naissance
# le nom est la clé
dico = { "Mathieu": 1975, "Michel": 1949, "Jean" : 1970 }
print(len(dico))
print(dico)
1.2.4.b dictionnaire ajout d'un élément (dico_add.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# dictionnaire de personnes avec nom et année de naissance
# le nom est la clé
dico = { "Mathieu": 1975, "Michel": 1949, "Jean" : 1970 }
print(dico)
# ajout
dico["Sarah"] = 2013
print(dico)
# ajout du même élément
dico["Sarah"] = 2013
print(dico)
# modification de la date de naissance du même élément
dico["Sarah"] = 791
print(dico)
1.2.4.c dictionnaire parcours (dico_iter.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
import datetime
dico = { "Mathieu": 1975, "Michel": 1949, "Jean" : 1970 }
# parcours des clés
for element in dico:
print(element)
# parcours avec (clé,valeur)
for paire in dico.items():
print(paire)
# parcours avec (clé,valeur)
for paire in dico.items():
print(paire[0], " => ", paire[1])
# parcours avec (clé,valeur)
for cle, valeur in dico.items():
print(cle, " => ", valeur)
# affichage de l'âge de chaque personne
print("liste des ages")
print(20 * "-")
aujourdhui = datetime.datetime.now()
for nom, ddn in dico.items():
print(nom, aujourdhui.year - ddn)
1.2.4.d dictionnaire accès, suppresion (dico_get_del.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
dico = { "Mathieu": 1975, "Michel": 1949, "Jean" : 1970 }
print(dico.get("Jean"))
if "Jean" in dico:
del dico["Jean"]
print(dico)
1.2.4.e dictionnaire accès clés, valeurs (dico_keys_values.py)
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
dico = { "Mathieu": 1975, "Michel": 1949, "Jean" : 1970 }
print(dico.keys())
print(dico.values())
1.3. Exercices
Exercice 1.1
A partir de la liste suivante, donner la liste des indices de toutes les occurrences de "jean".
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = ["jean","sans","terre","jean","sans","peur","jean","le","bon"]
On veut donc obtenir :
[0, 3, 6]
Exercice 1.2
A partir de la liste suivante, supprimer toutes les occurrences de "sans".
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = ["jean","sans","terre","jean","sans","peur","jean","le","bon"]
Exercice 1.3
A partir de la liste suivante, créer un dictionnaire qui pour chaque mot associe le nombre d'occurrences du mot :
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
liste = ["jean","sans","terre","jean","sans","peur","jean","le","bon"]
On veut donc obtenir :
{'bon': 1, 'jean': 3, 'peur': 1, 'terre': 1, 'le': 1, 'sans': 2}
Exercice 1.4
A partir du dictionnaire suivant, afficher les noms des personnes qui ont moins de 30 ans.
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# dictionnaire de personnes avec nom et année de naissance
# le nom est la clé
dico = { "John": 1979, "Penelope" : 1991, "Paul": 1989, "Gary" : 1995, "Lea" : 2002 }
Exercice 1.5
A partir du dictionnaire suivant, recréer un dictionnaire trié suivant les clés :
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# dictionnaire de personnes avec nom et année de naissance
# le nom est la clé
dico = { "John": 1979, "Penelope" : 1991, "Paul": 1989, "Gary" : 1995, "Lea" : 2002 }
On veut donc obtenir :
{'Gary': 1995, 'John': 1979, 'Lea': 2002, 'Paul': 1989, 'Penelope': 1991}
Exercice 1.6
A partir du dictionnaire suivant, inverser clés et valeurs :
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Warning: Undefined variable $file_name in /home/jeanmichel.richer/public_html/ez_web.php on line 431
Afficher le code
# dictionnaire de personnes avec nom et année de naissance
# le nom est la clé
dico = { "John": 1979, "Penelope" : 1991, "Paul": 1989, "Gary" : 1995, "Lea" : 2002 }
On veut donc obtenir :
{1995: 'Gary', 1979: 'John', 2002: 'Lea', 1989: 'Paul', 1991: 'Penelope'}