Programmation Python / Séance 1

Variables et affectations

CORRECTION

❔ Pourquoi code-t-on ? (exécutez la cellule ci-dessous pour voir une petite vidéo)

In [ ]:
from IPython.display import HTML
HTML("""<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7b3QupZc08Y" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>""")

🟥 Préambule

L'environnement que vous avez sous les yeux se nomme Jupyter notebook.

Avantages

  • Un notebook est un document "mixte" contenant des cellules de texte explicatif et des cellules de code Python exécutable.
  • Ce format est plus lisible que de simples commentaires python, et évite de basculer entre 2 logiciels, celui qui indique le travail à faire et celui qui exécute le code python.

Utilisation

En haut du notebook, se trouve :

  • Une barre, contenant de gauche à droite, le logo Jupyter, le logo Basthon, le titre du notebook, le logo python et le bouton .
  • En-dessous, le menu Capytale     Fichier     …     Noyau     Aide </span>  
  • Enfin, une barre d'icônes, de boutons qui sont des raccourcis vers certains menus fréquemment utilisés. Si vous laissez votre souris au-dessus d'une icône, un texte indiquant sa fonction apparaît.

Un notebook est une suite de cellules contenant, soit du texte, soit du code.

  • Les cellules de code sont facilement reconnaissables, elles sont précédées de Entrée [ ]:
  • La cellule qui suit celle que vous êtes en train de lire est une cellule de code.
  • Pour exécuter (évaluer) une cellule de code, il faut la sélectionner (un trait bleu ciel, gras et vertical est alors à sa gauche) :
    • puis utiliser l'icone , qui vous fait passer d'une cellule à la suivante en affichant le résultat de l'exécution;
    • ou enfoncer simultanément les touches ⇧ Maj et ↲ Entrée .
  • La façon habituelle d'utiliser un notebook consiste à :

    • commencer à la première cellule;

    • une fois qu'on l'a comprise ou complétée, l'éxécuter;

    • puis recommencer cellule après cellule jusqu'à la fin du notebook.

Entrainez-vous en exécutant la cellule de type code ci-dessous :

In [1]:
2000 + 26
Out[1]:
2026
  • Lorsqu'une cellule de code a été évaluée, jupyter notebook ajoute sous la cellule Entrée une cellule Sortie [x] :
  • Jupyter notebook ajoute également un nombre x entre les crochets de l'entrée, par exemple ci-dessus, Entrée [1]:
`

Ce nombre vous permet de retrouver l'ordre dans lequel les cellules ont été évaluées.

La cellule Sortie contient le résultat de l'exécution du fragment python, soit ci-dessus 2026.

Voila, vous en savez assez sur l'environnement Jupyter notebook. C'est tout simple, mais cela nécessite un navigateur internet.

Sauvegardez régulièrement votre travail en cliquant sur le bouton
!

C'est maintenant le moment de présenter les bases du langage Python : calculs, variables, affichage, saisie, type de données.

🟥 1. Introduction


Un programme informatique est un ensemble d'instructions destinées à être exécutées par un ordinateur.

Au collège, vous avez déjà programmé mais en utilisant un langage de programmation par blocs. Ce type de langage est très utile pour apprendre les bases de l’algorithmique et de la programmation mais ne constitue pas un langage utilisé pour programmer réellement. Pour cela, on utilise des langages dits textuels qui nécessitent d’écrire tout le code avec son clavier.

Au lycée, vous allez apprendre l’un de ces langages : le langage Python. Vous l’utiliserez dans différentes disciplines : Mathématiques, SNT, Physique-Chimie, spécialité NSI notamment.

Différences collège/lycée

Voici ci-dessous à gauche, un programme écrit dans un langage par blocs et à droite le même programme écrit dans le langage Python.

comparaison programmation par blocs et textuelle

🟥 2. Variables


En informatique, il est indispensable de conserver des informations de natures diverses. Par exemple, votre smartphone enregistre dans sa mémoire votre numéro de téléphone, les numéros de téléphones de vos contacts, vos messages (SMS), vos photos, vos applications, etc. Chacune de ces informations est stockée à un endroit précis dans la mémoire dans ce qu’on appelle une variable.

Ainsi, de manière simplifiée, retenez la définition suivante.

Une variable est un espace de stockage de la mémoire (une case mémoire). Chaque variable est caractérisée par son nom, son type et sa valeur.

❔ Au fait, pourquoi dit-on _variable_ ?

Tout simplement car les données qu’elle contient peuvent varier (au cours du temps) : si un ami change de numéro de téléphone, vous êtes content de pouvoir le modifier.

Types de variables

Le type d’une variable est la nature de l’information qu’elle contient. Vous conviendrez que l’heure de votre réveil et votre dernier SMS reçu n’ont pas la même nature : le premier correspond à des nombres et le second à du texte.

Dans un premier temps, voici les trois types de base qui nous intéressent :

  • le type entier : il désigne les entiers relatifs (positifs ou négatifs).
    En Python on parle du type int (pour integer qui signifie « entier » en anglais) ;
  • le type flottant : il désigne les nombres décimaux (à virgule).
    En Python on parle du type float (pour floating qui signifie « flottant » en anglais)
  • le type chaîne de caractères : il désigne toute suite ordonnée de caractères.
    En Python on parle du type str (pour string qui signifie « chaîne » en anglais).

✏️ Activité 1

✍️ Question : Indiquez le type des variables (entier, flottant ou chaîne de caractères) permettant de stocker sur votre smartphone les informations suivantes :

  • le nom d’un contact
  • le numéro de téléphone d’un contact
  • un SMS
  • l’heure du réveil
  • le code de votre partage de connexion Wi-Fi
  • le pourcentage affiché de batterie restante
  • les notes aux deux derniers devoirs de Mathématiques que vous tapez dans l’application Calculatrice pour calculer votre moyenne

Réponse

  • le nom d’un contact : chaîne de caractères (str)
  • le numéro de téléphone d’un contact : entier (int) ou souvent une chaine caractères
  • un SMS : chaîne de caractères (str)
  • l’heure du réveil : chaîne de caractères (str) ou flottant (float)
  • le code de votre partage de connexion Wi-Fi : chaîne de caractères (str)
  • le pourcentage affiché de batterie restante : entier (int)
  • les notes aux deux derniers devoirs de Mathématiques que vous tapez dans l’application Calculatrice pour calculer votre moyenne : flottant (float)

Noms de variables (en Python)

Chaque variable possède un nom qui permet d’identifier l’emplacement mémoire correspondant.

Dans le langage Python, il y a des règles à respecter pour nommmer les variables. Voici celles qui vous concernent :

  • Règle 1 : un nom ne peut contenir que des lettres (a-z, A-Z), des chiffres (0 - 9) et le caractère _ (underscore).
  • Règle 2 : un nom ne peut pas commencer par un chiffre.
  • Règle 3 : les noms sont sensibles à la casse, cela signifie qu’il y a une distinction entre les minuscules et les majuscules : la variable nommée snt est différente de la variable Snt.
  • (Règle 4) : il est préférable de toujours choisir un nom de variable représentatif : par exemple, si vous voulez stocker le nom d’une personne dans une variable, il est préférable de l’appeler nom plutôt que x.
  • (Règle 5) : il est préférable de ne pas utiliser de caractères accentués dans le nom d’une variable (nous n’entrerons pas dans le pourquoi du comment).

📣 En Python, le symbole underscore (c’est-à-dire _) est très souvent utilisé pour marquer une séparation entre plusieurs mots dans un nom : si on veut utiliser une variable qui contiendra un nombre d’élèves de Seconde G, on peut la nommer nombre_eleves_2G ou encore nb_eleves_2G car c’est plus facile à lire que nombreeleves2G.

✏️ Activité 2

✍️ Question 1 : Quels sont les noms de variables incorrects parmi ceux proposés ? Vous indiquerez pourquoi.

prix achat, prix_achat, note, 2ndeG, SecondeG, Seconde:G, dix-huit

Réponse

:

  • prix achat : incorrects - un espace dans la variable
  • prix_achat :
  • note :
  • 2ndeG : incorrects - commence par un chiffre
  • SecondeG :
  • Seconde:G : incorrects - deux points dans la variable
  • dix-huit : incorrects - un trait d'union dans la variable

✍️ Question 2 : Proposez un nom de variable permettant de stocker :

  • le nombre de filles de Seconde G
  • le tarif d’un repas au self
  • l’aire d’un triangle (il n’y a qu’une seule figure)
  • la note à un devoir d’anglais

Réponse

Attention, ceux sont des exemples de réponses

  • le nombre de filles de Seconde G : nombre_filles_2G
  • le tarif d’un repas au self : tarif_repas_self
  • l’aire d’un triangle (il n’y a qu’une seule figure) : aire_triangle
  • la note à un devoir d’anglais : note_devoir_anglais

Valeurs des variables

Chaque variable possède une valeur qui est l’information qu’elle porte. Par exemple,

  • la valeur de la variable nombre_eleves_2G pourrait être 34,
  • celle de la variable note pourrait être 14.5,
  • celle de la variable prenom pourrait être "Louane".

Affecter une valeur à une variable

En Python, pour définir ou modifier la valeur d’une variable c’est très simple, il suffit d’utiliser le symbole égal : =.

Exemple

Le programme Python

note = 15
note = 15.5
prenom = "Louane"

permet de :

  • créer une variable note dont la valeur vaut 15, c'est donc une variable de type entier (int en Python)
  • puis de modifier la valeur de la variable note qui vaut 15.5 à l'issue de la deuxième ligne.
    👉🏻 Important : on utilise le point (.) et non pas la virgule pour écrire des nombres décimaux.
    👉🏻 Dans ce cas, le type de la variable a changé : c'est devenu un flottant (float en Python).
  • et enfin de créer une variable prenom dont la valeur est la chaine de caractères "Louane".
    👉🏻 Important : On utilise les guillemets ("") pour désigner les chaînes de caractères.

Exécutez la cellule suivante

In [2]:
# CELLULE À EXÉCUTER !!!!!!!!!!!!!

note = 15
note = 15.5
prenom = "Louane"

À l'issue du programme précédent on peut évaluer la valeur de chaque variable en exécutant les cellules ci-dessous : (si une erreur s'affiche, c'est sans doute que vous avez oublié d'exécuter la cellule précédente)

In [3]:
note
Out[3]:
15.5
In [4]:
prenom
Out[4]:
'Louane'

On peut aussi voir le type d'une variable en utilisant la fonction type comme ci-dessous :

In [5]:
type(note)
Out[5]:
float
In [6]:
type(prenom)
Out[6]:
str

Afficher la valeur d'une variable

Pour afficher la valeur d’une variable on utilise la fonction print. Par exemple, pour afficher la valeur de la variable note on écrit simplement : print(note).

On peut ainsi ajouter des affichages dans le programme précédent :

In [7]:
note = 15
print(note)
note = 15.5
print(note)
prenom = "Louane"
print(prenom)
15
15.5
Louane

🟥 3. Opérations sur les variables de type nombre (int et float)


Nous nous contenterons ici de montrer quelques opérations possibles sur les entiers et les flottants (on parle rapidement des chaînes de caractères en fin de document).

Il n’y a pas de surprise : il est possible d’additionner, soustraire, multiplier, diviser des variables de type nombre (entier ou flottant). On utilise pour cela les symboles habituels résumés dans le tableau ci-dessous dans lequel on indique aussi comment élever un nombre à une certaine puissance.

Opération Écriture en Python
Addition a + b
Soustraction a - b
Multiplication a * b
Division a / b
Élever a à la puissance n a ** n
Quotient entier de la division Euclidiène a // b
Reste de la division Euclidiène a % b

✏️ Activité 3

On considère le programme Python suivant :

a = 15
b = 10
c = a + b
d = c / 2

✍️ Question 1 : Déterminez mentalement la valeur de la variable d à l'issue de ce programme ?

Réponse : 12.5

✍️ Question 2 : Donnez le type de chacune des variables de ce programme.

Réponse

a , b et c sont des entiers (int) - d est un flottant (float)

🐍 Question 3 : Recopiez ce programme dans la cellule ci-dessous (sans faire un copier-coller, c'est justement pour apprendre).

In [8]:
# à vous de jouer !
a = 15
b = 10
c = a + b
d = c / 2

🐍 Question 4 : Utilisez la fonction print pour afficher la valeur de la variable d afin de vérifier votre réponse à la première question.

In [9]:
# à vous de jouer !
print(d)
12.5

🐍 Question 5 : Exécutez la cellule ci-dessous puis exécutez le programme ligne par ligne avec les boutons et pour bien comprendre son fonctionnement.

On utilise ici les fonctionnalités de la bibliothèque tutor qui permet d'exécuter un programme ligne par ligne.

In [ ]:
from tutor import tutor  # on importe la fonction tutor de la bibliothèque tutor

a = 15
b = 10
c = a + b
d = c / 2

tutor()  # on utilise cette fonction pour visualiser le programme ligne par ligne

🐍 Question 6 : On considère maintenant que a et b correspondent à des notes. Réécrivez le programme en utilisant des noms de variables plus représentatifs (pour les 4 variables).

In [11]:
# à vous de jouer !
note1 = 15
note2 = 10
somme = note1 + note2
moyenne = somme / 2

print(moyenne)
12.5

🟥 4. À vous de jouer !


📣 Les activités qui suivent n’ont pas de contexte particulier. C’est pourquoi on utilise des noms de variables peu représentatifs. Leur seul but est de faire ancrer les notions abordées dans ce document.

✏️ Activité 4

On considère le programme Python suivant :

a = 10
b = 3
a = a - 4
b = 2 * b
a = a + b
print(a)

✍️ Question 1 : Combien de variables sont utilisées ? Donnez leurs noms.

Réponse

2 variables a et b

✍️ Question 2 : Déterminez mentalement la valeur finale de la variable a ?

Réponse : a vaut 12

🐍 Question 3 : Vérifiez votre réponse en recopiant le programme dans la cellule ci-dessous (sans faire un copier-coller) puis en exécutant ce programme.

In [12]:
# à vous de jouer !
a = 10
b = 3
a = a - 4
b = 2 * b
a = a + b
print(a)
12

🐍 Question 4 : Il est possible d’afficher plusieurs valeurs avec la fonction print. Par exemple, si on veut afficher les valeurs des variables a et b on écrit simplement print(a, b). Modifiez la dernière ligne du programme précédent pour afficher les valeurs finales de variables a et b !

In [13]:
# à vous de jouer !
print(a,b)
print("les variable sont, a =",a ,"et b =", b)
12 6
les variable sont, a = 12 et b = 6

✍️ Question 5 : Déterminez à la main, les valeurs du quotient entier et du reste de la division euclidiène de a par b.

Réponse

le quotient = 2 et le reste = 0

🐍 Question 6 : Dans la cellule ci-dessous, écrire le programme qui permet de calculer le quotient entier et le reste de la division euclidiène de a par b.
Vous pouvez utilisez la fonction print pour afficher les valeurs.

In [15]:
# à vous de jouer !
print("quotient",a // b)
print("reste",a % b)
quotient 2
reste 0

Avec les valeurs de départs

In [16]:
a = 10
b = 3

print("quotient",a // b)
print("reste",a % b)
quotient 3
reste 1

✏️ Activité 5

L'utilisation d'un notebook facilite l'apprentissage, mais sachez que la plupart du temps on utilise un éditeur de code pour écrire et exécuter des programmes Python.

C’est un logiciel qui se décompose généralement en deux fenêtres :

  • la fenêtre d’édition (à gauche dans la capture d'écran ci-dessous) dans laquelle on écrit le programme dans le langage Python
  • et la console (à droite dans la capture d'écran) dans laquelle peuvent notamment s’afficher les valeurs des variables souhaitées (si on utilise la fonction print()).

capture d'écran d'une console Basthon

Il existe énormément d'éditeur et nous utiliserons pour cette séance un éditeur en ligne appelé BASTHON (qui signifie Bac À Sable Python) qui ne nécessite pas d’installation (vous pourrez donc l’utiliser chez vous rien qu’avec une connexion Internet) et qui est aussi accessible via la plateforme Capytale.

Voici un lien permettant d'accéder à Basthon : https://console.basthon.fr/.

🐍 Consigne : Cliquez sur le lien ci-dessus pour ouvrir l'éditeur de code puis recopiez dans la fenêtre d'édition (celle de gauche) le programme de l'activité précédente. Vous exécuterez ensuite le programme en cliquant sur le bouton "Exécuter" et observerez bien que c'est dans la console (fenêtre de droite) que s'affiche la valeur de la variable a.

✏️ Activité 6

On considère le programme de calcul suivant.

  • A prend la valeur 5
  • Multiplier A par 3
  • Soustraire 4 au résultat
  • Elever le résultat au carré
  • Afficher le résultat

🐍 Question : Écrivez un programme Python permettant de coder ce programme de calcul. Vérifiez ensuite en l'exécutant.
Vous pouvez utiliser la cellule ci-dessous ou l'éditeur Basthon.

In [17]:
# à vous de jouer !
A = 5
A = 3 * A
A = A - 4
A = A ** 2
print(A)
121

✏️ Activité 7

vente en ligne

Sur un site de vente en ligne, on peut acheter différents articles. Un paquet de farine d'un kg coûte 1,15 € et une boîte de six oeufs coûte 1,50 €.

🐍 Question : Écrivez un programme Python qui :

  • utilise deux variables pour stocker le nombre de paquets de farine et de boîtes d'oeufs souhaités
  • puis, qui calcule et affiche le prix total à payer pour la commande.

Vous pouvez utiliser la cellule ci-dessous ou l'éditeur Basthon.

In [18]:
# Une première méthode

nombre_paquets_farine = 3
nombre_boite_oeufs = 1
prix_total = 1.15 * nombre_paquets_farine + 1.50 * nombre_boite_oeufs
print("le prix total est de :", prix_total, "€")
le prix total est de : 4.949999999999999 €
In [19]:
# Une deuxième méthode on arrondi le résultat à 2 chiffres après la virgule

nombre_paquets_farine = 3
nombre_boite_oeufs = 1
prix_total = 1.15 * nombre_paquets_farine + 1.50 * nombre_boite_oeufs
print("le prix total est de :", round(prix_total,2), "€")
le prix total est de : 4.95 €

Dans cette correction on utilise la commande python input()

📣 x = input() permet d'enter une valeur au clavier, mais la valeur lue sera toujours de type str (chaîne de caractère).

La commande x = int(x) convertit la chaine de caractère x en int
On peut condenser en une seule ligne x = int(input())

La commande x = float(x) convertit la chaine de caractère x en float
On peut condenser en une seule ligne x = float(input())

In [20]:
nombre_paquets_farine = float(input("farine ?"))
nombre_boite_oeufs = float(input("oeufs ?"))
prix_total = 1.15 * nombre_paquets_farine + 1.50 * nombre_boite_oeufs
print("le prix total est de :", round(prix_total,2), "€")
farine ?3
oeufs ?1
le prix total est de : 4.95 €

🟥 5. Opérations sur les chaînes de caractères


Pour les chaînes de caractères c’est plus court car il n’y a que deux opérations possibles :

  • la concaténation qui consiste à mettre bout à bout deux chaînes pour former une unique chaîne : on utilise pour cela le symbole d’addition +.
  • la répétition qui consiste à ajouter une chaîne un certain nombre de fois à elle-même : on utilise pour cela le symbole de multiplication *.

Exemple : Exécutez le programme suivant pour comprendre ce deux opérations

In [21]:
chaine1 = "Lou"
chaine2 = "ane"

chaine3 = chaine1 + chaine2  # concaténation
print(chaine3)

chaine4 = 3 * chaine1  # répétition
print(chaine4)
Louane
LouLouLou

🟥 Fin

  • Ne pas Oublier de sauvegarder son travail.

  • Pour effectuer une sauvegarde personnelle du document obtenu :

    • utilisez le menu Fichier / Enregistrer sous….
    • Le fichier sera alors téléchargé dans votre répertoire Téléchargements.
    • Charge à vous de le placer dans votre répertoire.
  • Pour rendre votre travail, si nécessaire, utiliser le bouton en haut à droite.

  • Pour fermer ce document :

    • Cliquez sur le bouton en haut à droite.
    • Ou fermez simplement le navigateur.

Modification: Andjekel du Lycée Levavasseur, REUNION - Sources: Les enseignants de SNT du lycée Emmanuel Mounier, ANGERS

Licence Creative Commons