Consignes

Si certains exercices n'ont pas pu être terminés dans le cadre de cette séance, il est fortement conseillé de les terminer par vous-même chez vous ou en salle libre service.

Liens utiles

Objectifs du TP

Le but de ce TP est de se familiariser avec :

L'interpréteur

Si vous installez Python sur votre ordinateur personnel, vérifiez que vous avez bien une version supérieure à 3.2.

Si vous installez Python pour Windows ou MacOS, téléchargez Python directement depuis le site principal du langage : https://www.python.org/download

Si vous installez Python pour Linux, installez Python avec les gestionnaire de paquets de votre distribution. Dans ce cas, vérifiez que vous installez bien le paquet Python et le paquet Idle. (Pour Ubuntu : python3 et idle3.)

Lancer l'interpréteur avec Idle

Idle est déjà installé sur les ordinateurs à l'Université de Savoie (versions Linux et Windows). Lancer le programme Idle depuis la liste des programmes, en choisissant bien la version 3 du logiciel.

Vous devriez obtenir une fenêtre ressemblant à

Les trois symboles « > » du début de la ligne sont appelés le prompt. Vous pouvez entrez une expression Python à cet endroit pour l'évaluer (c'est à dire, la calculer) : il suffit d'appuyer sur la touche Entrée à la fin de l'expression.

Par défaut, les lignes que vous tapez sont coloriées pour vous donnez des indices sur les objets :

Le résultat de chaque calcul est affiché en bleu.

Quelques exemples

Entrez chacune des expressions suivantes et vérifiez que la couleur des expressions vous donne bien une indication sur le type de chaque objet.

Essayez de deviner la valeur de chaque expression et vérifiez que vous comprenez ce qui se passe lorsque le résultat n'est pas celui que vous aviez prédit.

Remarque : la couleur a été supprimée de la page web, et le résultat a été remplacé par ???.

Python 3.2.3 (default, Feb 20 2013, 14:44:27) 
[GCC 4.7.2] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> 12 + 3
???
>>> "12" + "3"
???
>>> "12 + 3"
???
>>> "12' + "3'
???
>>> "12' + '3"
???
>>> 12 + '3'
???
>>> "12" * '3'
???
>>> "12" * 3
???
>>> "1" * len(23)
???
>>> "1" * len("23")
???

Lorsque l'expression qui suit le prompt n'est pas terminée, une simple pression sur la touche Entrée n'est pas suffisante pour que Python évalue la ligne : il faut la terminer.

Testez ceci en essayant les lignes suivantes

>>> (1 + 2 + 
             3 + 4)
???
>>> ((1 + 2 + 3 + 4)
???
>>> (2 **
    (2 **
    (2 **
    (2 **
    (2))))))
???

Arrondis et nombres flottants

Lesquelles de ces expressions donnent un résultat exacte ?

>>> 1.2 * 3
???
>>> 1.3 * 2
???
>>> 1.2 + 3
???
>>> 1.2 + .3
???
>>> 1.2 + .4
???
>>> 0.2 + .4 
???

Les variables

Calculez la valeur du polynôme X5 - X4 + X3 - X2 + X - 1 pour X valant 123.

Recommencez, mais en définissant d'abord une variable x dont la valeur est 123.

Vous pouvez récupérer les lignes précédentes grâce à la combinaison de touches « Alt-p » (ou « Control-p » avec MacOS).

Redéfinissez la variable x pour qu'elle prenne maintenant la valeur 321, et utilisez la combinaison de touches « Alt-p » pour recalculer le polynôme précédent pour cette nouvelle valeur.

Testez des séquences de combinaisons « Alt-p » et « Alt-n ». À quoi sert la combinaison « Alt-n » ?

On suppose que a, b et c sont trois variables contenant des nombres entiers.

Quel sera le résultat des opérations suivantes :

>>> a = a + b + c
>>> b = a - b - c
>>> c = a - b - c
>>> a = a - b - c

Vérifiez votre réponse sur les valeurs a=1 b=2 et c=3 et sur les valeurs a=12345, b=67890 et c=141592.

Idle comme environnement de développement

Utilisation des fichiers

Tout ce qui est rentré dans l'interpréteur est temporaire. Les expressions ne sont pas sauvegardées. Pour écrire un programme complexe, il faut le conserver dans un fichier.

Pour créer un nouveau fichier (vide), il faut utiliser le menu File, commande New File. Cette commande ouvrira une nouvelle fenêtre vide, qui ne contient pas de prompt.

Les expressions Python entrées dans cette fenêtre ne seront pas évaluées à chaque appui sur la touche Entrée. Elles seront enregistrées dans un fichier (avec les commandes Save ou Save As du menu File). Les commandes sont enregistrées sans aucune modification, ni par l'interpréteur Python, ni par un autre programme. Vous pouvez modifier le fichier avec n'importe quel éditeur de texte sans que cela ne pose de problème.

Lorsque vous enregistrez vos fichiers, n'oubliez pas de leur donner l'extension .py. Si ce n'est pas le cas, Idle n'utilisera pas la coloration syntaxique.

Dorénavant, toutes les définitions que vous souhaitez conserver devront être écrites dans un fichier. L'interpréteur servira à tester et exécuter les définitions contenues dans vos fichiers.

Lorsque que vous interprétez un fichier (avec la commande Run Module du menu Run ou la touche F5), l'interpréteur est réinitialisé. Cela signifie que seules les variables que vous avez définies dans le fichier existent. Les variables définies dans l'interpréteur disparaissent.

Il est parfois nécessaire d'ajouter des commentaires dans son programme. Ces commentaires ne servent pas à programmer, mais permettent de donner des informations aux personnes qui lisent votre programme. (Vous-même par exemple, ou votre enseignant, ou votre patron ou vos collègues lorsque vous travaillerez.)

En Python, un commentaire est commencé par le symbole « # ». Tout ce qui suit ce symbole (jusqu'à la fin de la ligne) sera ignoré par l'interpréteur.

Ajoutez le commentaire suivant dans votre fichier :

# un grand nombre
x = 5**5**5      # ce nombre est vraiment très grand !!!

Vérifiez que votre fichier est toujours accepté par l'interpréteur et que la variable x est bien définie.

Ajoutez également un commentaire tout en haut de votre fichier pour indiquer votre nom, prénom et filière. Ce commentaire sera très important lorsque vos TPs seront notés.

Quelques fonctions

Écrivez quelques fonctions du TD1 et TD2 dans votre fichier :

À chaque fois que vous avez écrit une fonction, n'oubliez pas de

  1. interpréter le fichier (avec la commande Run Module du menu Run ou la touche F5) pour vérifier que votre fichier est correct,
  2. tester la fonction définie dans l'interpréteur.

Exemples de tests :

>>> abs(0)
???
>>> abs(-1)
???
>>> abs(12.3)
???
>>> abs(-123e456)
???
>>> abs("123")
???
>>> derniere_lettre("Info 113")
???
>>> derniere_lettre("Info 113  ")
???
>>> derniere_lettre("")
???
>>> lettre_milieu("ABA")
???
>>> lettre_milieu("kayak")
???
>>> lettre_milieu("anna")
???
>>> lettre_milieu("      abcde")
???
>>> lettre_milieu("")
???

Expressions booléennes

Testez les commandes suivantes dans l'interpréteur :

>>> x = 1
???
>>> y = 2
???
>>> 3 = z
???
>>> x == y
???
>>> x = y
???
>>> x == y
???
>>> x = x * 3
???
>>> x > y
??? 

Écrivez une fonction test1 dans votre fichier qui teste si un nombre est un multiple de 2 ou de 3 mais pas de 6.

Faites une version en utilisant uniquement des opérations booléennes (and, or, not etc.) et une version en utilisant la construction

if ...:
    ...
elif ...:
    ...
else:
    ...

du langage Python.

N'oubliez pas de tester votre fonction dans l'interpréteur !!!

Écrivez la fonction est_OK du TD2, qui teste si une chaîne est OK, mais sans prendre en compte les majuscules :

>>> est_OK("OK")
True
>>> est_OK("oK")
True
>>> est_OK("ok")
True
>>> est_OK("KO")
False
>>> est_OK("")
False
>>> est_OK("okapi")
False

Écrivez la fonction est_Python du TD2, qui teste si une chaîne est Python, mais sans prendre en compte les majuscules :

>>> est_Python("python")
True
>>> est_OK("PyThOn")
True
>>> est_OK("P")
False
>>> est_OK("python-3.4")
False

Écrivez (dans votre fichier) toutes les fonctions que vous avez faites en TD, et testez les (dans l'interpréteur).