TP 1

Notions de Base



séparateur

Ce premier TP a pour but de voir ou revoir les notions de base indispensables pour apprendre à programmer en python.

Les réponses aux questions posées doivent être stockées dans un fichier texte. Ce fichier texte et les codes réalisés dans ce TP sont à conserver pour pouvoir être utilisés lors de l'examen. Un questionnaire relatif à ce TP est disponible sur Moodle et doit être effectué.

1. L'INTERPRETE ET L'EDITEUR DE TEXTE PYTHON

Un code python peut s'exécuter dans 2 environnement différents :

image du terminal linux

Le terminal python lancé depuis le shell Linux à l'aide de la commande python3
image du terminal d'IDLE
Le terminal lancé à l'aide du programme idle3, environnement de développement intégré
nouveau fichier avec IDLE
L'accès à l'éditeur de fichier se fait à l'aide du Menu "File"
option "New File".
fichier IDLE

L'éditeur de fichier ressemble à un éditeur de fichier classique
il est doté d'un menu "Run".
séparateur

2. PREMIERE UTILISATION DE L'INTERPRETE PYTHON

Créez dans votre dossier personnel un répertoire PI31 et un sous répertoire TP1 dans lequel vous stockerez les fichiers relatifs à ce TP.

Lancez Idle.

2.1. Vérifiez le numéro de version utilisée (vous devez être en python 3.X).

2.2. Tapez dans l’interprète le code suivant (les trois signes >>> ne sont pas à saisir, ils constituent l'invite de commande python) :

>>> "Hello\n world"

2.3. Tapez dans l’interprète le code suivant :

>>> print("Hello\n world")

2.4. Quelle est la différence entre les deux affichages ?

2.5. Quel est l'effet des caractères \n dans le message passé en argument de la fonction print ?

séparateur

3. CREATION DU PREMIER SCRIPT A L'AIDE DE L'EDITEUR DE TEXTE D'IDLE

Créez un nouveau fichier dans l’éditeur de texte d'Idle.

Ecrire dans ce fichier la commande :

print("Hello\n world")

Enregistrez ce fichier dans votre répertoire TP1 sous le nom tp1_1.py

3.1. Exécutez ce script. Où apparaissent les résultats de ce script ?

3.2. Modifiez votre fichier de la manière suivante :

# Mon premier script
print("Hello\n world" )

Exécutez de nouveau le script : il y-a-t-il une différence notable dans l'exécution du programme ?

3.3. Justifier le nom de commentaire donné à une ligne précédée du signe #.

séparateur

4. OPERATIONS SUR LES ENTIERS

La fonction type() permet de trouver le type de la variable passée en argument.

4.1. Testez dans un terminal les commandes suivantes et notez leur résultat :

>>> type(4)
>>> type(-4)
>>> type(0)

4.2. Les opérateurs applicables sur les entiers sont bien sur *, /,+, - mais aussi //, % et **. Testez dans un terminal les instructions suivantes et en déduire le rôle des opérateurs //, % et **.

>>> 5//2
>>> 5%2
>>> 5**2

4.3. Testez les instructions suivantes et en déduire la priorité des opérateurs précédents.

>>> 7 + 3 * 4
>>> (7 + 3) * 4
>>> 15 // 2 ** 2 % 3

4.4. La variable prédéfinie "_" sert à réutiliser le résultat du calcul précédent, un peu comme la touche "Rep" de certaines calculatrices.

Tapez dans le terminal les instructions suivantes :

>>> 1 * 1000
>>> _ * 1000

Il est à noter que l'on peut refaire cette opération facilement en appuyant sur la flèche UP qui permet de ré-afficher une instruction entrée précédemment.

4.4.1. Au bout de combien de fois l'ordre de grandeur de la mole est atteint ?

4.4.2. En supposant qu'un caractère affiché à l'écran soit codé sur un octet, combien d'octets sont nécessaires pour afficher à l'écran la valeur de la mole ? Combien de fois peut-on afficher à l'écran la valeur de la mole à l'aide d'une barrette mémoire de 4 Go ?

4.4.3. En supposant qu'un chiffre affiché à l'écran ait une dimension de 10 pixels par 20 pixels, combien de fois peut-on afficher la valeur de la mole sur un écran de résolution 1600 x 900 ?

séparateur

5. LES BOOLEENS

Les booléens sont des variables ne disposant que de deux valeurs : 0 ou False et 1 ou True. Elle furent inventée en 1854 par le mathématicien britannique George Boole, utilisées la première fois pour les circuits de commutation téléphoniques par Claude Shannon et très souvent utilisées aujourd'hui en informatique.

5.1. Testez dans un terminal les instructions suivantes et notez le résultat obtenu :

>>> type ( True )
>>> type ( False )

5.2. Testez dans un terminal les instructions suivantes et commentez le résultat obtenu :

>>> 1 < 2 < 5
>>> (1 < 2) or (2==0)
>>> not 1 == 2
>>> not 1 == 2 and 5 < 10

5.3. Testez dans un terminal les instructions suivantes et expliquez le résultat obtenu :

>>> not ( True or False ) == not True and not False
>>> not ( True or False ) == ( not True and not False )

séparateur

6. LES NOMBRES FLOTTANTS

Ces nombres sont notés par la présence d’un point décimal "." ou une notation exponentielle "e" ou "E" dans le nombre.

6.1. Testez dans un terminal les instructions suivantes et notez le résultat obtenu :

>>> type(3.14)
>>> type(6.02e23)

6.2. Les opérateurs arithmétiques sont les mêmes que ceux déjà vus pour les entiers. Essayez et commentez :

>>> 8 / 4
>>> 20.0 // 3
>>> 20.0 % 3
>>> 2.0 ** 10

séparateur

7. LES CHAINES DE CARACTERES

Ces variables contiennent un ou plusieurs caractères

7.1. Testez dans un terminal les instructions suivantes et commentez :

>>> type("Hydrogène")
>>> type('Hydrogène')
>>> type("L'atome d'Hydrogène")
>>> type('L'atome d'Hydrogène')
>>> print("""L'atome d'Hydrogène
est le plus léger de tous
les atomes de l'Univers""")

7.2. La longueur d'une chaîne de caractères peut être automatiquement évaluée grâce à la fonction len(). Testez dans un terminal les instructions suivantes et commentez :

>>> len("Hydrogène")
>>> len("L'atome d'Hydrogène")

7.3. Une chaîne de caractères peut être ajoutée à une autre chaîne de caractères, on parle alors de "concaténation" de chaî̂nes de caractères. Testez dans un terminal les instructions suivantes et commentez l'affichage final obtenu :

>>> texte1="L'atome"
>>> texte2=" d'Hydrogène"
>>> texte=texte1+texte2
>>> print(texte)

7.4. On peut aussi "multiplier" une chaîne de caractère... Testez dans un terminal l'instruction suivante et commentez l'affichage obtenu :

>>> print("1 million"+" de milliard"*2)

séparateur

8. CHANGEMENT DE TYPE D'UNE VARIABLE (TRANSTYPAGE)

Contrairement à d'autres langages, python permet de facilement changer le type d'une variable.

Testez les transtypages suivant et commentez :

>>> float(2)
>>> int(2.3)
>>> int(2,3)
>>> int (5/2)
>>> float(int(2.3))
>>> int("128")
>>> int("abc")
>>> bool(0)
>>> bool(1)
>>> bool(12)
>>> bool("")
>>> bool(" ")

séparateur

9. AFFECTATION D'UNE VALEUR A UNE VARIABLE

Lors de l'affectation d'une valeur à une variable, on relie un contenu (la valeur) à un contenant (la variable) autrement dit on relie une adresse mémoire au contenu de la mémoire à cette adresse.

9.1. Tapez ces exemples et commentez :

>>> G = 6.67e-11
>>> type (G)
>>> element = "Hydrogène"
>>> type(element)
>>> mp,mn,me=1.67e-27,1.67e-27,9.1e-31
>>> mp,mn,me

9.2. On peut accéder à l'adresse mémoire d'une variable à l'aide de la fonction id(). Tapez ces exemples et commentez :

>>> id(mp)
>>> id(me)
>>> mp=me
>>> id(mp)

séparateur

10. ENTREES ET SORTIES

Les entrées (saisies de valeurs via le clavier) se font avec la fonction input() et les sorties (affichage à l’écran) se font avec la fonction print().

Il est important de noter que les entrées saisies à l'aide de la fonction input() sont stockées en python 3 sous forme de chaînes de caractères !

10.1. Tester dans l’interprète les instructions suivantes et notez le résultat obtenu :

>>> v = input ("Entrez la valeur de la vitesse du son dans l'air : ")
>>> type(v)
>>> print(v)

molécule de butane
La molécule de butane C4H10
image réalisée avec MolView
pont diviseur de tension
Le pont diviseur de tension
schéma réalisé avec Inkscape

10.6. Ecrire un script que vous appellerez tp1_6.py permettant de convertir une température exprimée en degré Celsius en une température en degré K et degré Farhenheit.

Un exemple d'exécution :

Entrez la température en degré Celsius : 22
La température en degré K est : 295.15
La température en degré fahrenheit est : 71.6

10.7. Ecrire un script que vous appellerez tp1_7.py permettant de convertir une durée exprimée en secondes en durée exprimée en h/min/s.

Un exemple d'exécution :

Entrez la durée en s : 15451
La durée en h/min/s est : 4 h 17 min 31 s