Compétence 0F01 : Développer des programmes informatiques en vue d'automatiser la résolution de problèmes dans un contexte scientifique.
Objectifs de la séance¶
- Comprendre le cadre d'un programme : entrées, traitements, sorties
- Utiliser le calepin Colab : blocs de texte, blocs de code, exécution
- Déclarer des variables, comprendre le typage et l'affectation
Contenus essentiels¶
- Environnement de développement : calepins (notebook), blocs et commentaires
- Typage des données, variables et affectation
- Séquence d'instructions
Calepin Colab. Exécutez chaque bloc de code avec Maj+Entrée. Modifiez, expérimentez, recommencez : c'est en programmant qu'on apprend à programmer.
1. Le calepin : deux sortes de blocs¶
Un calepin Colab alterne des blocs de texte (comme celui-ci) et des blocs de code (les zones grises exécutables). Pour exécuter un bloc de code, cliquez dedans puis appuyez sur Maj+Entrée.
Commençons par la tradition de tout programmeur : afficher un message.
# Mon tout premier programme
# La fonction print() affiche un message à l'écran (une SORTIE).
print("Bonjour les sciences !")
2. Variables et affectation¶
Une variable est une étiquette qui désigne une valeur rangée en mémoire. On crée (ou on modifie) une variable avec le signe =, qu'on lit affecter. Ici on respecte la convention de nommage du cours : les variables sont écrites en mixedCase.
$$ \text{etiquette} \;\leftarrow\; \text{valeur} $$
vitesseInitiale = 9.8 # un nombre Ă virgule (float), en m/s
nombreEssais = 3 # un nombre entier (int)
nomExperience = 'chute libre' # une chaîne de caractères (str)
estValide = True # un booléen (bool) : vrai ou faux
print(vitesseInitiale)
print(nomExperience)
3. Les types de données¶
Chaque valeur possède un type. Les quatre types de base :
| Type | Description | Exemple |
|---|---|---|
int |
nombre entier | 3, -7, 1024 |
float |
nombre Ă virgule | 9.8, -0.5, 3.14 |
str |
chaîne de caractères | 'eau', "H2O" |
bool |
booléen | True, False |
La fonction type() révèle le type d'une valeur.
print(type(vitesseInitiale))
print(type(nombreEssais))
print(type(nomExperience))
print(type(estValide))
4. Les opérateurs arithmétiques¶
| Opérateur | Rôle | Exemple | Résultat |
|---|---|---|---|
+ - * / |
addition, soustraction, produit, division | 7 / 2 |
3.5 |
** |
puissance | 2 ** 10 |
1024 |
// |
division entière | 7 // 2 |
3 |
% |
reste (modulo) | 7 % 2 |
1 |
print(7 / 2)
print(7 // 2)
print(7 % 2)
print(2 ** 10)
5. Entrées - traitements - sorties¶
Un programme suit presque toujours le mĂŞme cadre :
- Entrée : on reçoit des données (clavier, fichier, capteur...).
- Traitement : on calcule, on transforme.
- Sortie : on affiche ou on enregistre le résultat.
La fonction input() lit une ENTRÉE au clavier. Attention : elle renvoie toujours une chaîne str, qu'il faut souvent convertir en nombre avec float() ou int().
# Entrée
texteSaisi = input("Entrez une masse en kg : ")
masse = float(texteSaisi) # conversion str -> float
# Traitement : poids = masse x accélération gravitationnelle
acceleration = 9.8
poids = masse * acceleration
# Sortie
print("Le poids est de", poids, "newtons.")
6. Les commentaires¶
Tout texte placé après un # est un commentaire : Python l'ignore. Les commentaires expliquent le programme aux humains. Un bon programme scientifique est toujours commenté.
# Calcul de la masse volumique : masse divisée par volume
masseEchantillon = 12.5 # grammes
volumeEchantillon = 5.0 # millilitres
masseVolumique = masseEchantillon / volumeEchantillon
print("Masse volumique :", masseVolumique, "g/mL")
EXERCICES¶
Les exercices ci-dessous sont à faire en classe (laboratoire) ou à la maison. Complétez les cellules de code marquées # A COMPLETER.
Exercice 1. Créez une variable temperatureCelsius valant 25, puis calculez la température en kelvins (kelvin = celsius + 273.15) dans une variable temperatureKelvin. Affichez le résultat.
# A COMPLETER (exercice 1)
Exercice 2. Demandez Ă l'utilisateur le rayon d'un cercle (en cm), puis affichez son aire. Rappel : $aire = \pi r^2$, prenez pi = 3.14159.
# A COMPLETER (exercice 2)
Exercice 3. Une expérience donne trois mesures de longueur : 12.1, 12.4 et 11.9 cm. Rangez-les dans trois variables, calculez la moyenne et affichez-la.
# A COMPLETER (exercice 3)
Exercice 4. Une mesure a duré 200 secondes. Affichez cette durée sous la forme « X minutes et Y secondes ». Indice : la division entière // donne le nombre de minutes, et le reste % donne les secondes restantes.
# A COMPLETER (exercice 4)
Exercice 5. Demandez le nom d'une substance et sa masse molaire (en g/mol), puis affichez une phrase avec une f-string, par exemple : La masse molaire de l'eau est de 18.0 g/mol.
# A COMPLETER (exercice 5)
Exercice 6. Demandez la masse (en kg) et la vitesse (en m/s) d'un objet, puis calculez son énergie cinétique avec la formule $E_c = \tfrac{1}{2} m v^2$. Affichez le résultat en joules avec une f-string.
# A COMPLETER (exercice 6)
Exercice 7 (le piège de input). Demandez un nombre et rangez-le dans valeurSaisie SANS le convertir, puis affichez son type avec type(). Convertissez ensuite en float dans valeurNombre et affichez de nouveau le type. Que remarquez-vous ?
# A COMPLETER (exercice 7)
Exercice 8 (préparation au Projet 1). Une expérience donne quatre mesures de densité : 1.02, 1.05, 1.01 et 1.40. Calculez leur moyenne, puis affichez l'écart de CHAQUE mesure à la moyenne (mesure - moyenne). Laquelle s'éloigne le plus ? C'est l'idée d'une valeur aberrante, au coeur du Projet 1.
# A COMPLETER (exercice 8)
SOLUTIONS¶
Cette section contient les corrigés. Pour produire la version étudiante, supprimez toutes les cellules à partir d'ici (Édition > sélectionner puis supprimer).
# Solution 1
temperatureCelsius = 25
temperatureKelvin = temperatureCelsius + 273.15
print("Température :", temperatureKelvin, "K")
print(f"Temperature : {temperatureKelvin} K")
Température : 298.15 K Temperature : 298.15 K
# Solution 2
rayon = float(input("Rayon du cercle en cm : "))
pi = 3.14159
aire = pi * rayon * rayon
# aire = pi * rayon ** 2
print("Aire :", aire, "cm carrés")
# Solution 3
mesureUn = 12.1
mesureDeux = 12.4
mesureTrois = 11.9
moyenne = (mesureUn + mesureDeux + mesureTrois) / 3
print("Moyenne :", moyenne, "cm")
# Solution 4
dureeSecondes = 200
minutes = dureeSecondes // 60
secondesRestantes = dureeSecondes % 60
print(minutes, "minutes et", secondesRestantes, "secondes")
# Solution 5
nomSubstance = input("Nom de la substance : ")
masseMolaireTexte = input("Masse molaire en g/mol : ")
masseMolaire = float(masseMolaireTexte)
# masseMolaire = float(input("Masse molaire en g/mol : ")) # variante synthetique legerement plus rapide
print(f"La masse molaire de {nomSubstance} est de {masseMolaire} g/mol.")
Nom de la substance : Oxygene Masse molaire en g/mol : 12 La masse molaire de Oxygene est de 12.0 g/mol.
# Solution 6
masse = float(input("Masse en kg : "))
vitesse = float(input("Vitesse en m/s : "))
energieCinetique = 0.5 * masse * vitesse ** 2
print(f"Énergie cinétique : {energieCinetique} J")
# Solution 7
valeurSaisie = input("Entrez un nombre : ")
print(type(valeurSaisie)) # str : input() renvoie toujours une chaîne
valeurNombre = float(valeurSaisie)
print(type(valeurNombre)) # float : après la conversion
# Solution 8
mesureUn = 1.02
mesureDeux = 1.05
mesureTrois = 1.01
mesureQuatre = 1.40
moyenne = (mesureUn + mesureDeux + mesureTrois + mesureQuatre) / 4
print(f"Moyenne : {moyenne}")
print(f"Écart mesure 1 : {mesureUn - moyenne}")
print(f"Écart mesure 2 : {mesureDeux - moyenne}")
print(f"Écart mesure 3 : {mesureTrois - moyenne}")
print(f"Écart mesure 4 : {mesureQuatre - moyenne}")
Lien avec le projet de la semaine¶
Le Projet 1 vous demandera de traiter une série de mesures de laboratoire. Tout part d'ici : lire des entrées, calculer, afficher des sorties.
Pour aller plus loin (facultatif)¶
- Essayez l'opérateur de puissance
**et le reste de division%. - Affichez plusieurs valeurs avec une f-string :
print(f"poids = {poids} N").