Traitement des mesures avec Python

AttentionDisposer d'un environnement de programmation Python

Certains points de cette partie nécessitent un environnement Python installé.

Si vous n'en disposez pas, il faut passer impérativement par un notebook dans Capytale.

Programme Python à compléter

Consigne

Après vous être assuré de disposer d'un fichier de mesures correct au format csv, utilisez le programme ci-dessous dans votre environnement Python après avoir compléter les lignes signalées.

Vous pouvez utiliser le copier-coller en supprimant au préalable les numéros de lignes à l'aide des fonctions de la barre d'outils dans la partie supérieure droite (Passer en texte brut).

Vous pouvez auparavant récupérer un fichier de mesures exemple au bon format.

1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
4
# Importation des bibliothèques nécessaires
5
import matplotlib.pyplot as plt
6
import numpy as np
7
# Importation de la fonction d'ouverture du fichier
8
from tkinter.filedialog import askopenfilename
9
10
# ouvre une fenêtre pour charger le fichier csv issu des pointages NE PAS MODIFIER
11
nom_fichier = askopenfilename(filetypes=(("Fichier CSV", "*.csv"), ("Fichier Texte",
12
                                                                    "*.txt"), ("Tous les fichiers", "*.*")), title="Choisir un fichier")
13
# nom_fichier contient le chemin et le nom du fichier à traiter.
14
"""La ligne ci-dessous importe les données du fichier de mesures et les place
15
dans deux listes : t et VH (date et volume de dihydrogène dégagé)
16
ATTENTION : Il faut avoir un fichier de valeurs au format csv avec le ';' comme
17
séparateur de colonnes"""
18
# nom_fichier contient le chemin et le nom du fichier à traiter.
19
t, VH = np.loadtxt(nom_fichier, skiprows=1, delimiter=";", dtype="str",
20
                   unpack=True, usecols=(0, 1))
21
# Les deux lignes ci-dessous remplacent les , par des . dans le fichier de mesures.
22
t = [float(val.replace(",", ".")) for val in t]
23
VH = [float(val.replace(",", ".")) for val in VH]
24
25
# Entrée des quantités initiales et du volume molaire (L/mol)
26
# Compléter les lignes ci-dessous avec les paramètres et les quantités de matière
27
# initiales
28
29
Vm = À COMPLÉTER
30
n0Mg = À COMPLÉTER
31
n0H = À COMPLÉTER
32
33
# Calcul des valeurs de l'avancement à partir des volumes mesurés
34
"""Compléter les lignes ci-dessous en prenant comme modèles celles déjà complétées
35
afin d'obtenir les listes des quantités de matière de toutes les espèces chimiques"""
36
37
x = [V / 1000 / Vm for V in VH]
38
# Quantité de matière de magnésium en fonction de x
39
nMg = [n0Mg - val for val in x]
40
# Quantité de matière dion H+ en fonction de x
41
nH = [À COMPLÉTER for val in x]
42
# Calcul de la quantité de matière de dihydrogène à partir de x
43
nH2 = [À COMPLÉTER for val in x]
44
# Quantité de matière d'ions Mg2+ en fonction de x
45
nMgPlus = [À COMPLÉTER for val in x]
46
47
"""Tracé des représentations graphiques"""
48
"""Compléter les lignes ci-dessous avec les noms corrects des listes à placer en 
49
abscisses et ordonnées en accord avec le titre du graphique"""
50
51
plt.clf()
52
plt.figure(1)
53
plt.title("Évolution du volume de dihydrogène dégagé")
54
plt.plot(À COMPLÉTER, À COMPLÉTER, "r+", label="Volume de dihydrogène dégagé")
55
plt.xlabel("t(s)")
56
plt.ylabel("$V_{H_2}\ (\mathrm{mL})$")
57
plt.grid()
58
plt.show()
59
60
plt.figure(2)
61
plt.title("Évolution de l'avancement x au cours du temps")
62
plt.plot(À COMPLÉTER, À COMPLÉTER, "k+")
63
plt.xlabel("t(s)")
64
plt.ylabel("x en mol")
65
plt.grid()
66
plt.show()
67
68
plt.figure(3)
69
plt.title("Évolution des quantités de matière au cours du temps")
70
plt.plot(À COMPLÉTER, À COMPLÉTER, "b+", label=r"$H_2$")
71
plt.plot(À COMPLÉTER, À COMPLÉTER, "r+", label=r"$Mg$")
72
plt.plot(À COMPLÉTER, À COMPLÉTER, "k+", label=r"$H^{+}$")
73
plt.plot(À COMPLÉTER, À COMPLÉTER, "gx", label=r"$Mg^{2+}$")
74
plt.xlabel("t(s)")
75
plt.ylabel(r"mol")
76
plt.grid()
77
plt.legend()
78
plt.show()
79

ExempleSolution

Vous pouvez télécharger ci-dessous le programme complet correctement renseigné.

Dans un Notebook Jupyter

Code du Notebook accessible dans Capytale (via l'ENT)

Dans Capytale, entrez le code suivant pour accéder au Notebook à compléter : 4a44-212236.

Notebook à télécharger pour l'utiliser dans Jupyter

Ces deux Notebooks peuvent être téléchargés pour les exécuter dans un environnement Jupyter sur votre PC.

Dans les deux cas, le fichier de mesures au format csv doit être dans le même dossier que le fichier Python.

Télécharger le fichier élève à compléter

Télécharger le fichier complet et fonctionnel