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.
Le but de ce TP est de se familiariser avec :
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
.)
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 :
def
, else
, etc.) sont en orange,
len
) sont en violet,
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.
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
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 ???
123
.
x
dont la valeur est 123
.
Qu'est-ce que l'interpréteur Python affiche après une affectation de variable :
>>> x = 123 ???
y
pour stocker le résultat intermédiaire,
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
.
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 F
ile
, commande N
ew 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 S
ave
ou Save
A
s
du menu F
ile
). 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.
info101-tp1.py
,
nombre
dans ce fichier, qui contient le nombre entier 5**5**5
,
Run Module
du menu R
un
(ou bien un simple appui sur la touche F5
),
nombre
est bien définie dans l'interpréteur.
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 R
un
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.
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 :
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 :
derniere_lettre
qui donne le dernier symbole d'une chaîne de caractères,
lettre_milieu
qui donne le symbole au milieu d'une chaîne de caractères.
À chaque fois que vous avez écrit une fonction, n'oubliez pas de
Run Module
du menu R
un
ou la touche F5
) pour vérifier que votre fichier est correct,
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("") ???
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 :
test2
qui teste si un nombre est un multiple de 2,
test3
qui teste si un nombre n'est pas un multiple de 3,
test2_pas3
qui teste si un nombre est un multiple de 2 ou de 3, mais pas de 6.
N'oubliez pas de tester votre fonction dans l'interpréteur !!!