SNT Python 1

Identification

Infoforall

1 - Séquentialité et Variables


Le langage Python est le langage choisi pour servir de support à la programmation au lycée.

Nous allons en faire la découverte aujourd'hui à travers l'un des éditeurs permettant de l'utiliser à savoir Thonny, un environnement de développement gratuit, léger, efficace et multiplateforme créé par l'université d'Estonie.

Vous pouvez le télécharger sur la page d'accueil du projet : https://thonny.org/

Documents de cours : pdf ou odt.

1 - Thonny

Python est un langage de programmation en lignes de code dont la syntaxe est proche du « langage naturel ». D’où sa forte présence en tant que langage de découverte.

On peut installer Python directement sur l’ordinateur ou passer par des logiciels permettant d’offrir des fonctionnalités supplémentaires, les environnements de développement, IDE en anglais.

Nous utiliserons Thonny : gratuit, téléchargeable sur tous les systèmes d’exploitation.

Thonny
Ecran de Thonny

2 - Variables

Un langage de programmation permet de stocker des données dans la mémoire.

Les variables permettent d’enregistrer des données puis de les lire plus tard.

01° Si vous êtes chez vous, installer Thonny sur votre ordinateur. Sinon, ouvrir Thonny.

02° Aller dans le menu Affichage/Views et sélectionner Variables si l’onglet Variables n’est pas ouvert.

03° Dans la zone Console (celle avec 3 chevrons >>>), tapez les commandes jaunes. Que constate-on ?

>>> 50 + 2 Effet ? >>> a = 50 Effet ? >>> b = 20 Effet ?

...CORRECTION...

>>> 50 + 20 70 Effet ? Python évalue à 70 et l'affiche >>> a = 50 Effet ? Affectation de la variable a, référençant 50 (sans affichage) >>> b = 20 Effet ? Affectation de la variable b, référençant 20 (sans affichage)

04° Lorsqu’on affecte un contenu à une variable, Thonny affiche-t-il sa valeur dans l’onglet Variables ?

...CORRECTION...

Oui : cet onglet de Thonny permet de visualiser les variables actuellement en mémoire.

05° Lorsqu’on affecte un contenu à une variable, Thonny affiche-t-il sa valeur dans l’onglet Console ?

...CORRECTION...

Non : le contenu est juste affecté à la variable et n'apparaît pas dans la console.

06° Dans la zone Console (celle avec 3 chevrons >>>), tapez les commandes jaunes. Que constate-on ?

>>> a Effet ? >>> b Effet ? >>> a + b Effet ? >>> c = a + b Effet ?

...CORRECTION...

>>> a 50 Effet ? On demande d'évaluer a, soit 50. >>> b 20 Effet ? On demande d'évaluer b, soit 20. >>> a + b 70 Effet ? On demande d'évaluer a + b, soit 70. >>> c = a + b Effet ? Affectation de la variable c, référençant a + b dont l'évaluation donne 70.

07° Que fait-il taper pour visualiser la variable c dans la console ?

...CORRECTION...

Il faut simplement taper c dans la console.

>>> c 70 Effet ? On demande d'évaluer c, soit 70.
Type d'une variable

Cette année, vous allez rencontrer principalement :

  • des entiers : on dit integers (int) en informatique.
  • >>> e = 5 >>> e = -15
  • des nombres à virgules : on dit floats (float) en anglais.
  • >>> e = 5.0 >>> e = 5.2
  • des chaînes de caractères : on dit strings (str) en anglais.
  • >>> e = "Bonjour" >>> e = 'Bonjour'

    Notez bien la présence de deux guillements, soit deux simples, soit deux doubles.

  • des booléens : on dit booleans (bool) en anglais. Cela ne peut valoir que True (vrai) ou False (faux).
  • >>> e = True >>> e = False

08° Pour chacun des exemples, donnez le nom du contenu obtenu en mémoire :

>>> a = 6 Type ? >>> b = 3 Type ?

Question : que réalise  =  ?

>>> a + b 9 Type ? >>> a * b 18 Type ? >>> a / b 2.0 Type ?
>>> a // b 2 Type ?

Question : que réalise  //  ?

>>> t = "Bon" Type ? >>> t * 2 'BonBon' Type ? >>> t + t 'BonBon' Type ?
>>> a == b False Type ?

Question : que réalise  ==  ?

>>> a != b True Type ?

Question : que réalise  !=  ?

...CORRECTION...

>>> a = 6 Type int >>> b = 3 Type int

Question : que réalise  =  ?

Le signe = permet d'indiquer à Python qu'on désire faire une affectation.

>>> a + b 9 Type int >>> a * b 18 Type int >>> a / b 2.0 Type float
>>> a // b 2 Type int

Question : que réalise  //  ?

Le signe // permet de faire comprendre à Python qu'on désire faire un division euclidienne (entière).

>>> t = "Bon" Type str >>> t * 2 'BonBon' Type str >>> t + t 'BonBon' Type str
>>> a == b False Type bool

Question : que réalise  ==  ?

Le signe == permet de tester l'égalité.

>>> a != b True Type bool

Question : que réalise  !=  ?

Le signe != permet de tester la différence.

3 - Séquentialité lors d’une affectation

Ordre des séquences d'évaluation et d'affectation

Lors d’une affectation (=), l'interpréteur Python :

  1. évalue d’abord l‘expression de droite
  2. affecte ensuite le résultat à la variable de gauche. En algorithmique, on note souvent a ← 50

La séquence est donc bien évaluation de la droite puis affectation à gauche.

Exemple : pour comprendre le code >>> note = note + 4 avec note référençant 8 initialement, il faut

  1. commencer par évaluer le terme de droite, à savoir note + 4, qui sera donc évalué à 8 + 4, soit 12
  2. affecter ce 12 à la variable note de gauche.

09° Fournir les réponses aux différentes instructions. :

>>> a = 30 Que contient a maintenant ? >>> a = a + 1 Que contient a maintenant ? >>> a = a + 1 Que contient a maintenant ? >>> a + 1 Que contient a maintenant ?

...CORRECTION...

>>> a = 30 on évalue 30 et on l'affecte à a >>> a = a + 1 on évalue 30+1=31 et on l'affecte à a >>> a = a + 1 on évalue 31+1=32 et on l'affecte à a >>> a + 1 on évalue 32+1=33 et c'est tout, on l'affiche dans la console du coup mais a contient toujours 32.
Un peu de vocabulaire
  • Evaluation : calculer une expression (a + 1 par exemple)
  • Affectation : associer une nouvelle valeur dans une variable (a = 50 par exemple)
  • Incrémentation : augmenter la valeur d’une variable de 1 (a = a + 1 par exemple)
  • Concaténation : additionner deux strings ("Bon"+"jour" évalué à "Bonjour" par exemple)

10° Comment se nomme cette opération ? Affiche-t-elle quelque chose ?

>>> a = 50

...CORRECTION...

C'est une affectation. Elle n'affiche rien.

11° Comment se nomme cette opération ? Affiche-t-elle quelque chose ?

>>> a == 50

...CORRECTION...

C'est une évaluation cherchant l'égalité ou pas entre la variable a et la la valeur 50.

Puisque a contient bien 50 depuis la question 09, on va obtenir une réponse valant True. Puisqu'on ne la stocke pas, Python va afficher le résultat dans la Console.

>>> a = 50 >>> a == 50 True

12° Comment se nomme cette opération ? Affiche-t-elle quelque chose ?

>>> a = "Cou"+"cou"

...CORRECTION...

On commence par évaluer "Cou" + "cou" : c'est une concaténation.

Ensuite, on place le résultat ("Coucou") dans a : c'est une affectation.

4 - Séquentialité sur un programme

Un programme est une suite d’instructions qui sont exécutées une par une et de haut en bas.

L’ordinateur ne passe à l’instruction suivante que lorsqu’il a fini celle en cours.

Attention : dans un programme (contrairement à la Console), taper le nom d’une variable ne provoque pas son affichage :

Ainsi a * 2 n'affiche rien : on évalue juste a * 2 mais il n'y aura pas d’affichage automatique comme dans la console lorsqu'il n'y a pas d'affectation. Une ligne ne contenant que cela est donc inutile dans un programme.

13° Lancer un programme contenant uniquement ces 2 lignes (pour cela taper les lignes dans la partie en haut à gauche et appyer sur la flèche pour sauvegarder et lancer le programme). Obtient-on un affichage ?

1 2
a = 20 a + 5
Visuel q13

...CORRECTION...

Visuel q13
Correction q13

Ligne 1 : on réalise l'affectation de a avec 20. Pas d'affichage.

Ligne 2 : on évalue a + 5, soit 25. On en fait rien. Comme c'est un programme, il n'y a pas d'affichage automatique.

14° Fournir les effets progessifs et le contenu final des variables créées (sans lancer réellement le programme !) :

1 2 3 4 5 6
age = 16 limite = 18 autorisation = age > limite limite = 15 limite + 1 age = age + 10

...CORRECTION...

Visuel q14
Correction q14

Ligne 1 : affectation de age à 16.

Ligne 2 : affectation de limite à 18.

Ligne 3 : évaluation de age > limite soit 16 > 18 et donc False. Ce résultat est alors affecté à la variable autorisation.

Ligne 4 : on change le contenu de limite qui passe à 15. ATTENTION : à cause de la séquentialité, autorisation ne change pas de valeur en étant évaluée à nouveau. C'était en Ligne 3, c'est passé, on y revient plus.

Ligne 5 : on évalue limite + 1, soit 16. On en fait rien et il n'y a pas d'affichage puisqu'on est dans un programme, pas dans la console.

Ligne 6 : évaluation de age + 10 à 16+10 donc 26. Ensuite, on affecte ce 26 dans la variable de gauche, age, qui contient maintenant 26.

15° Lancer le programme pour vérifier. Les variables s’affichent dans l’onglet VARIABLES (ou vous pouvez taper leurs noms dans la Console pour obtenir le contenu final).

Visuel q14
Résultat à la fin du programme
Instruction conditionnelle avec if elif

En Python, on peut dire de faire certaines choses sous condition. La première condition est exprimée derrière le mot if. On doit placer derrière une expression qui sera évaluée comme un booléen (True ou False) puis le caractère : .

Remarquez bien que les instructions à effectuer sont décalées de 4 espaces.

On peut placer des conditions supplémentaires en utilisant elif qui veut dire sinon si.

16° A vous de deviner ce que va contenir appreciation au fur et à mesure du programme :

1 2 3 4 5 6 7
note = 12 appreciation = "bof" if note > 13 : appreciation = "bien" elif note < 8 : appreciation = "pas bien" note = 7
Instruction conditionnelle avec if elif else

On peut encore fait mieux : on peut placer un else généraliste qui veut dire : si aucune des possibilités précédentes n’est vraie, fait ces dernières actions qu'on propose.

17° A vous de deviner ce que va contenir autorisation au fur et à mesure du programme :

1 2 3 4 5 6
recu = "1234" mdp = "12345" if recu == mdp: autorisation = True else: autorisation = False

18° On remarquera qu’on aurait pu faire plus simple en réalité. Expliquer ce que contient autorisation ci-dessous. La variable recu contient le mot de passe reçu. La variable mdp contient le vrai mot de passe attendu.

1 2 3
recu = "1234" mdp = "12345" autorisation = recu == mdp

19° Que va contenir la variable c ?

1 2 3
a = 10 b = 20 c = a > b

20° Que va contenir la variable c ?

1 2 3
recu = "1234" mdp = "5555" c = recu != mdp

5 - FAQ

Pas de question pour le moment

Activité publiée le 25 02 2021
Dernière modification : 25 02 2021
Auteur : ows. h.