Première prise en main#

Vidéo: Présentation du cours et des Jupyter Notebooks#

L’interface Jupyter Notebook#

Dans ce cours nous utiliserons Jupyter Notebook. Cette interface est constituée de cellules dans lesquelles vous pouvez écrire du langage Python (code) ou bien du texte.

Pour exécuter le code Python, il faut sélectionner la cellule en cliquant dessus avec la souris, puis faire au clavier Ctrl+Enter. Un interpréteur exécute alors le code Python et envoie un résultat qui s’affiche sous la cellule. Vous pouvez alors sélectionner la cellule suivante à la souris.

Vous pouvez également combiner l’exécution d’une cellule et le passage à la cellule suivante avec Shift+Enter.

Essayez d’éxecuter les cellules suivantes :

3 / 4
0.75
print(6 * 5)
30

Afficher une valeur

L’instruction print() permet d’afficher une valeur à l’écran. Lorsqu’une cellule est exécutée, la valeur renvoyée par la dernière ligne de code est affichée, même si on n’utilise pas print().

C’est quoi une valeur ?

Une valeur est l’une des choses fondamentales avec lesquelles fonctionne un programme, comme une lettre ou un chiffre.

Commentaires#

Un programme informatique est une séquence d’instructions qui spécifie comment effectuer un calcul. Il peut aller de quelques lignes à plusieurs dizaines de milliers de lignes ou plus.

Il est très important de toujours commenter un programme informatique que l’on écrit, quelle que soit sa longueur. Cela permet d’ajouter des informations utiles, ou bien d’expliquer ce que signifie une instruction. De plus, cela permet :

  • de comprendre son programme plus rapidement si jamais on le reprend longtemps après l’avoir écrit

  • pour une autre personne de comprendre ce que le programmeur a fait, si on programme à plusieurs ou si on rend son programme disponible

Les commentaires sont ignorés au moment de l’évaluation du programme. Vous pouvez ajouter des commentaires dans un programme Python de deux façons :

  • le signe croisillon (hash en anglais) : # commentaire

  • les triples guillemets : """commentaire""" ou bien '''commentaire'''

Dans l’exemple suivant, on affiche une valeur qui peut avoir n’importe quelle signification. Ajouter des commentaires avec le croisillon permet d’indiquer au lecteur du programme quelle est la grandeur physique affichée et quelle est son unité :

# température de la pièce
print(19) # degrés
19

Pour les commentaires sur plusieurs lignes, on utilisera les triples guillemets :

"""
Programme qui ne sert à rien
Auteur : Moi
Date : indéterminée
"""
print(0 + 0)
0

Vidéo: La calculatrice Python#


La calculatrice Python#

Le code Python permet de calculer comme sur une calculatrice. On utilise alors des opérateurs : addition +, soustraction -, multiplication *, division /. Il existe d’autres opérateurs :

  • la puissance ** : le nombre à gauche des deux étoiles est élevé à la puissance du nombre à droite. Par exemple 2 ** 5 = 32

  • le quotient de la division entière // : par exemple 30 // 7 = 4

  • le reste de la division entière, ou modulo % : par exemple 30 % 7 = 2

La lettre e est très pratique pour représenter les nombres en notation scientifique : par exemple 3 * 10 ** 5 peut s’écrire 3e5.

Une suite de valeurs et d’opérateurs est appelée une expression. Lors de l’exécution du code, l’interpréteur Python évalue les expressions et renvoie leur résultat. Vous pouvez évaluer les opérations suivantes en exécutant la cellule :

print(2 ** 5)   # puissance
print(30 // 7)  # quotient de la division entière
print(30 % 7)   # reste de la division entière
print(2 * 3e5)  # notation scientifique
32
4
2
600000.0


Exercice : bouillon de culture#

La masse d’une bactérie est de l’ordre du picogramme (1e-15 kg). Lorque l’on place une bactérie escherichia coli dans un bouillon de culture, le nombre de cellules double toutes les trente minutes par division cellulaire. À la première génération, on aura 2 ** 1 = 2 cellules. À la deuxième génération, 2 ** 2 = 4 cellules. Quelle est la masse de l’échantillon au bout de 140 générations ? Comparer cette masse à celle de la Terre 5.972e24 kg.

Afin d’effectuer cet exercice, il faut créer une cellule sous ce texte :

  • avec Jupyter Notebook, aller dans le Menu “Insérer” et sélectionnez “Insérer une cellule après”

  • avec Jupyter Lab, sélectionnez la petite icône + dans le menu contextuel en haut du calepin

Hide code cell source
print(2 ** 140 * 1e-15 // 5.972e24)
233.0

Vidéo: Variables et type#

Affectation d’une variable#

Une variable permet de donner un nom à une zone de la mémoire de l’ordinateur dans laquelle est stockée une valeur. C’est comme donner un nom à une boîte dans laquelle est rangé un nombre ou une lettre.

Une variable peut représenter une grandeur physique, par exemple la vitesse v d’un vélo. La valeur contenue dans la variable peut changer au cours du programme, mais le nom de la variable qui représente la grandeur physique reste le même.

Pour ranger une valeur dans une variable, on utilise le signe affectation =. L’instruction v = 15.2 affecte la valeur 15.2 à la variable v.

Le membre à droite du signe affectation peut être une expression, qui est alors évaluée avant d’affecter le résultat à la variable située à gauche du signe affectation. Par exemple :

v = 3 * 5 ** 2 # vitesse (km/h)
print(v)
75

Priorité des opérations

Vous remarquerez que Python respecte la priorité des opérations usuelle en mathématiques : 3 * 5 ** 2 est équivalent à 3 * (5 ** 2).

Attention

L’affectation n’a pas le même sens que l’égalité en mathématiques, bien que le même signe = soit utilisé. Par exemple, on ne peut pas affecter une valeur à une valeur : dans la cellule ci-dessous, exécutez l’instruction 2 = 2.

2 = 2
  Cell In[11], line 1
    2 = 2
    ^
SyntaxError: cannot assign to literal

Message d’erreur

Lorsque l’intérpréteur Python détecte une instruction qui n’est pas autorisée, il renvoie un message d’erreur. Il est important de lire et de comprendre ces messages d’erreur, car ils permettent de comprendre quel est le problème dans le programme que l’on a écrit. Ces messages d’erreur sont en anglais. Ici, l’interpréteur nous dit qu’il ne peut pas affecter (assign) à une valeur (literal).

Exercice : masse de la Terre#

  1. Créer une variable masse avec la valeur 5.972e24, qui représente la masse de la Terre en kg.

  2. Afficher la valeur de cette variable à l’écran avec l’instruction print(mass)

Hide code cell source
# Masse de la Terre
masse = 5.972e24 # kg

# Afficher à l'écran
print(masse)
5.972e+24

Calculer avec des variables#

Dans l’exercice bouillon de culture, nous avons utilisé directement des valeurs pour former des expressions. Il est possible aussi de créer des variables, puis de former des expressions avec ces variables :

# Masse d'une bactérie
masse_bacterie = 1.000e-15  # kg

# Masse de la Terre
masse_terre = 5.972e24  # kg

# Nombre de générations
N = 140

# Masse de l'échantillon (unité de masse terrestre) au bout de N générations
masse_echantillon = 2 ** N * masse_bacterie // masse_terre

# Afficher le résultat
print(masse_echantillon)
233.0

L’expression à droite du signe affectation est évaluée en remplacant le nom des variables par leur valeur.

Le programme que l’on a écrit en introduisant des variables est plus long que le précédent. Il est aussi plus facile à comprendre. De plus, on peut facilement changer la valeur d’une des variables et exécuter de nouveau le même programme.

Exercice: masse de l’échantillon#

Quelle est la masse de l’échantillon pour 133 générations ? Il suffit de changer la ligne N = 140 en N = 133 et d’exécuter de nouveau la cellule.

Les types#

Dans les exemples précédents, nous avons travaillé avec deux types de valeurs : 140 est un entier, 5.972 est un nombre à virgule flottante.

Il existe aussi des valeurs de type chaîne ou chaîne de caractères : ce sont des caractères enchaînés mis entre guillemets. Par exemple 'bonjour !' ou bien "bonjour !". Une chaîne est donc une séquence de caractères.

Pour connaître le type d’une valeur on peut demander à l’interpréteur avec l’instruction type() :

print(type(2))
print(type(2.0))
print(type('Comment ça va ?'))
<class 'int'>
<class 'float'>
<class 'str'>

Le mot class indique que la valeur appartient à une certaine catégorie. Un type est une catégorie de valeurs. Résumons les différents types vus jusqu’ici :

type

en anglais

catégorie Python

entier

integer

int

nombre à virgule flottante

floating-point number

float

chaîne

string

str

Exercice: chaîne#

  1. Créer une variable appelée annonce_resultat qui a la valeur "masse du bouillon", de type chaîne.

  2. Afficher la valeur de cette variable à l’écran à l’aide de la fonction print()

Hide code cell source
annonce_resultat = "masse du bouillon"
print(annonce_resultat)
masse du bouillon

Opérations sur les types#

Nous avons vu dans la caculatrice Python les opérations pour former des expressions avec des entiers et des nombre à virgule flottante. Résumons ces opérations ici :

opération

syntaxe

addition

+

soustraction

-

multiplication

*

division

/

puissance

**

quotient de la division entière

//

reste de la division entière ou modulo

%

Il est aussi possible de faire des opération sur les chaînes. L’opérateur + concatène les chaînes, c’est-à-dire les assemble bout-à-bout. L’opérateur * effectue une répétition. Par exemple :

chaine1 = "Salut"
chaine2 = "c'est cool!"
print(chaine1 + " " + chaine2)
print( (chaine1 + " ") * 3)
Salut c'est cool!
Salut Salut Salut 

Exercice: concaténation#

  1. En utilisant l’opérateur concaténation et la variable annonce_resultat, créer une nouvelle chaîne nommée annonce_resultat2 qui a la valeur "La masse du bouillon de culture est égale à ".

  2. Afficher la valeur de la variable annonce_resultat2 à l’écran.

Hide code cell source
annonce_resultat2 = "La " + annonce_resultat + " de culture est égale à "
print(annonce_resultat2)
La masse du bouillon de culture est égale à 

Conversion de type#

La concaténation de chaîne est très pratique pour afficher à l’écran le résultat d’un calcul. Par exemple, pour reprendre l’exercice du bouillon de culture, on pourrait écrire :

print("La masse de l'échantillon est " + masse_echantillon)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[18], line 1
----> 1 print("La masse de l'échantillon est " + masse_echantillon)

TypeError: can only concatenate str (not "float") to str

Message d’erreur

Le message d’erreur nous dit : “must be str, not float”, c’est-à-dire, “doit être une chaîne, et pas un nombre à virgule flottante”. En effet, on a additionné des valeurs de types différents : une chaîne avec un nombre à virgule flottante. Cela est interdit en Python : une expression cohérente doit être un enchaînement de valeurs et d’opérateurs de même type.

Il faut pouvoir convertir une valeur en un autre type. Pour cela il existe plusieurs fonctions Python, une pour chaque type que nous avons vu jusqu’ici :

fonction

description

str()

conversion en chaîne

int()

conversion en entier

float()

conversion en nombre à virgule flottante

Exercice: conversion de type#

  1. À l’aide de l’opérateur concaténation et des variables annonce_resultat2 et masse_echantillon, afficher le résultat de l’expérience du bouillon de culture.

  2. Comment faire pour afficher un entier et non un nombre à virgule flottante ?

Hide code cell source
print(annonce_resultat2 + str(int(masse_echantillon)) + " fois la masse de la Terre.")
La masse du bouillon de culture est égale à 233 fois la masse de la Terre.