Cours Gratuits

Sous forme de tutoriels didactiques


Cours informatique

L'alternative en langage Python


Objectif
    Savoir
  1. Schématiser la méthode de résolution d'un problème en informatique.
  2. Citer, dans l'ordre, les étapes de la résolution d'un problème en informatique
  3. Citer les symboles des comparaisons utilisés en langage Python
  4. Justifier la notion de bibliothèque en informatique
    Savoir faire
  1. Utiliser les opérateurs "/" et "%"
  2. Déterminer si un nombre est pair ou impair
  3. Décrire une situation d'alternative dans le formalisme si...alors...sinon et graphiquement (arbre binaire)
  4. Décrire une situation d'alternative simple ou composée en Python
  5. Décrire une situation d'alternative à une branche en Python
  6. Décrire une situation d'alternative complexe dans le formalise si...alors...sinon et graphiquement (arbre binaire)
  7. Transposer la description de l'alternative complexe en langage Python
  8. Utiliser les bibliothèques math, random et turtle du langage Python
     Plan
  1. Un jeu à programmer
  2. Analyse du problème et de sa résolution
  3. Résolution commentée
  4. L'alternative avec instruction composée
  5. L'alternative avec instruction composée (version 2)
  6. L'alternative à une branche
  7. Alternative complexe
  8. Notion de bibliothèque en programmation
  9. Exercices
     Auteur auteur du cours
Mairesse Yves, enseignant depuis 1980 à l'Institut des Soeurs de Notre-Dame  à Anderlecht, est le propriétaire de ces cours d'informatique. Selon l'auteur est strictement interdit d'en faire un usage commercial et ils sont soumis au contrat Creative Commons que vous pouvez consulter en cliquant sur CC.
     CC     Pages : | 1| 2 | 3 | 4 | 5 | 6| 7 | 8 | 9 |

8. Notion de bibliothèque en programmation

Pour pouvoir réaliser la moindre action, un ordinateur a toujours besoin de connaître une méthode.

Pour chacune des actions qu'il doit pouvoir exécuter, la méthode devrait donc être disponible dans la mémoire vive.

Mais, disposer en mémoire vive toutes les méthodes susceptibles d'être utilisées risque d'encombrer fortement cette mémoire. Et, un grand nombre de méthodes risquent de ne jamais être utilisées. Ce serait donc de la mémoire utilisée inutilement.

Recette Analogie culinaire

Lorsque je reçois des amis, j'aime leur préparer un repas succulent. Dans ces occasions, j'utilise un livre de recettes.

  1. Je prends dans ma bibliothèque le livre qui contient la recette que je vais préparer.
  2. Je réalise la recette.
  3. Je remets le livre dans la bibliothèque.

Mais je ne retiens pas toutes mes recettes par coeur.

On peut procéder de manière similaire en programmation.

  • Ouvre une console de commande et démarre l'interpréteur Python.
  • Frappe la commande

>>> print cos(3.141592)

  • La réaction de l'interpréteur Python est immédiate:

>>> print cos(3.141592)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cos' is not defined

Quand Python fâché, lui toujours dire des gros mots comme cela...

Ne nous laissons pas impressionner et voyons ce qu'il nous dit.

BibliothèqueL'interpréteur Python ne reconnaît pas le mot 'cos'. Ce qu'il indique par le message NameError: name 'cos' is not defined

Effectivement, pour ne pas encombrer la mémoire, aucune information sur la façon de calculer un cosinus n'a encore été fournie.

Il va falloir aller chercher la recette dans une bibliothèque.

Utilisation de quelques bibliothèques

  • Vérifie que l'interpréteur Python est toujours actif.
  • Frappe la commande

>>> from math import cos

Ce qui signifie que nous lui demandons de charger en mémoire la "recette" pour calculer un cosinus. Cette recette se trouve dans une bibliothèque nommée math.

  • Frappe la commande

>>> print cos(3.141592)

  • Vérifie que le résultat est mathématiquement correct.
  • Frappe la commande 

>>> print sin(3.141592)

  • Observe le résultat et tire la conclusion

Hé, hé... Je m'y attendais un peu à ce message d'erreur.

Et bien sûr, aucune difficulté pour trouver le remède...

Bien sûr que non, mais je sens que ça va vite devenir fatiguant de lui faire faire le moindre calcul mathématique. Il faut vraiment lui dire d'aller chercher fonction par fonction dans cette bibliothèque?

Heureusement non. Si l'on sait que l'on aura besoin d'un grand nombre de fonctions, on peut importer toute la bibliothèque en une fois.

  • Vérifie que l'interpréteur Python est toujours actif.
  • Frappe la commande

>>> from math import *

Cette instruction provoque l'importation de toutes les fonctions de la bibliothèque math.

  • Frappe les commandes suivantes puis interprète ce que fait chacune d'elles.

>>> print tan(0)
>>> print sqrt(9)
>>> print sqrt(16)
>>> print sqrt(-1)
>>> print degrees(pi)
>>> rayon = 4
>>> surface = 2*pi*rayon
>>> print surface

La librairie math est certainement la plus importante que nous utiliserons. Elle est décrite à la page http://docs.python.org/lib/module-math.html. La plupart de ses fonctions seront utiles.

Il en existe toutefois d'autres.

La librairie random ("hasard", en anglais) contient un certain nombre de fonctions qui permettent de générer des nombres au hasard. Elle est décrite à la page http://docs.python.org/lib/module-random.html.
Les fonctions principales à connaître de cette librairie sont randint(), random(), uniform().

La librairie turtle ("tortue", en anglais) contient un certain nombre de fonctions qui permettent de faire apparaître et de diriger une tortue à l'écran. Elle est décrite à la page http://docs.python.org/lib/module-turtle.html


  • Vérifie que l'interpréteur Python est toujours actif.
  • Frappe la commande

>>> from random import *

  • Puis les commandes

>>> rayon = randint(2,10)
>>> surface = 2*pi*rayon
>>> print surface

  • Interprète le résultat de ces opérations.
  • Répète ces trois instructions.
  • Le résultat obtenu est-il identique? Pour quelle raison?
  • Frappe plusieurs fois la commande

>>> print random()*30

  • Peux-tu interpréter les résultats obtenus?
  • Vérifie que l'interpréteur Python est toujours actif.
  • Frappe les commandes

>>> from turtle import *
>>> clear()
>>> forward (150)
>>> right (90)
>>> forward (150)
>>>

  • Poursuis jusqu'à ce que la tortue ait dessiné un carré complet.
Quand le programme fonctionne correctement dans tous les cas possibles et que tu comprends bien son fonctionnement, passe à la page suivante.