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 ("invite de commande"). 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 final de l'expression (si l'expression a une valeur) est affiché en bleu et les résultats intermédiaires (s'il y en a) ne sont pas affichés.

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))))))
???

En cherchant dans tableau correspondant, calculez

Arrondis et nombres à virgule

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

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

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

    Qu'est-ce que l'interpréteur Python affiche après une affectation de variable :

    >>> x = 123
    ???
    
  3. Calculez la valeur du polynôme précédent sur la valeur obtenue au deuxième point :
    • en utilisant une nouvelle variable y pour stocker le résultat intermédiaire,
    • en utilisant la variable x pour stocker le résultat intermédiaire.

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

Testez les combinaisons « Alt-p » et « Alt-n » pour refaire les calculs de la question précédente. À 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

La fonction racine carrée existe en Python, mais il faut ajouter la ligne suivante dans votre fichier :

  from math import sqrt

Vérifiez que cette fonction donne un résultat approprié en calculant, dans l'interpréteur, la racine carrée de 8 et de 9.

Écrivez la fonction valeur absolue en utilisant la racine carrée :

  def valeur_absolue(x):
      """renvoie la valeur absolue du nombre x"""
      ...

Testez deux définitions :

  1. une première où vous utilisez une variable pour stocker le résultat intermédiaire,
  2. une seconde où vous faites directement le calcul final sans variable intermédiaire.

Dans les deux cas, testez votre fonction dans l'interpréteur :

>>> valeur_absolue(0)
???
>>> valeur_absolue(-1)
???
>>> valeur_absolue(12.3)
???
>>> valeur_absolue(-123e456)
???
>>> valeur_absolue("123")
???

Écrivez les deux fonctions suivantes 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 :

>>> derniere_lettre("Info 101")
???
>>> derniere_lettre("Info 101  ")
???
>>> 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 les fonctions suivantes dans votre fichier :

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