Aller au contenu principal

Python en mode interactif

🎯 Objectif

Ces travaux pratiques ont pour objectif la découverte du langage Python à travers son mode interactif.

🖥️ 1. Lancement de Linux

Si vous ne disposez pas de l'exécutable Python 3 sur votre ordinateur, lancez l'émulateur Linux comme suit :

  • Lancer un navigateur Web
  • Vous connecter à l'adresse https://bellard.org/jslinux
  • Identifier la version x86 Alpine Linux 3.12.0 Console
  • Cliquer sur click here pour lancer l'émulation

⌨️ 2. Le mode interactif de Python

Lancer Python

Le langage Python est généralement installé par défaut sur les systèmes d'exploitation Linux et macOS. Il est disponible depuis l'interpréteur de commande sous forme d'un ou plusieurs executables.

  • Lancer un interpréteur de commande Linux
  • Saisir py et appuyer deux fois sur la touche tab de votre clavier.

L'interpréteur vous affiche toutes les commandes disponibles dont le nom commence par py :

localhost:~# py
pydoc pygmentex python2.7 python3.8
pydoc3 python python3 python3.8-config
pydoc3.8 python2 python3-config pythontex
  • Saisir python --version
  • Saisir python3 --version

L'option --version permet de connaître la version de Python fournit par chacun des exécutables. Python 2 n'étant plus supporté, vous devez veiller à toujours utiliser la version 3. Nous en sommes aujourd'hui à la version 3.10, mais la version 3.8 reste amplement suffisante dans le cadre de l'apprentissage de la programmation en NSI.

  • Lancer python3 et patienter le temps du démarrage de l'application jusqu'à l'apparition de l'affichage ci-dessous
localhost:~# python3
Python 3.8.3 (default, May 15 2020, 01:53:50)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Vous êtes maintenant dans le mode interactif de Python. Dans ce mode, chaque commande saisie sera immédiatement traitée par l'interpréteur Python qui, selon la saisie, présentera ou non un résultat.

Important

Toutes les commandes saisies dans le cadre de ces travaux pratiques devront se faire en mode interactif Python.

🧮 3. Les nombres relatifs et décimaux

Tester la console

  • Saisir le littéral 10 et appuyer sur entrée. Qu'observez-vous ?
  • Saisir l'expression 10 + 10 et appuyer sur entrée. Qu'observez-vous ?
>>> 10
10
>>> 10 + 10
20

Explication

Lorsqu'une commande correspond à une expression, l'interpréteur Python l'évalue et affiche sa valeur. Il attend ensuite une nouvelle commande de la part de l'utilisateur.

Trouver les expressions

Traduisez chacune des requêtes suivantes en une expression à soumettre à l'interpréteur interactif :

  • Une addition
  • Une soustraction
  • Une multiplication
  • Une division
  • Une division euclidienne (ou division entière)
  • Un modulo (ou reste de la division)
  • Une opération contenant à la fois un entier et un flottant

Répondre aux questions

À l'aide de l'interpréteur Python uniquement, trouver la réponse aux questions suivantes :

  • Quelle est la valeur décimale du nombre hexadécimal 7E6
  • Quelle est la valeur décimale du nombre binaire 11111100111
  • Le nombre 2479939 appartient-il à la table de 7 ?
  • Le nombre 4328361193 est-il divisible par 77 ?
  • Quelle est la valeur de 2 puissance 16 ?

Comprendre les expressions

Python dispose de fonctions mathématiques disponibles en important le module math.

>>> import math
>>>

Après avoir importé le module math, testez les expressions suivantes et tenter de les expliquer à partir du résultat obtenu et en les testant avec d'autres valeurs :

  • math.sqrt(100)
  • math.pi
  • abs(-10)
  • math.sin(math.radians(90))

🔤 4. Les chaînes de caractères

Trouver les expressions

Traduisez chacune des requêtes suivantes en une expression Python à soumettre à l'interpréteur interactif :

  • Une chaîne de caractères en utilisant le délimiteur "
  • Une chaîne de caractères en utilisant le délimiteur '
  • Une chaîne de caractères en utilisant le délimiteur de votre choix et contient à la fois le caractère ' et le caractère "
  • Une concaténation de deux chaînes de caractères
  • Une répétition d'une chaîne de caractères
  • Un test d'appartenance d'une chaîne à une autre chaîne
  • Un test de non appartenance d'une chaîne à une autre chaîne

Comprendre les expressions

Testez les expressions suivantes et tenter de les expliquer à partir du résultat obtenu et en les testant avec d'autres valeurs :

  • len('Hello')
  • 'Bonjour tout le monde'[:7]
  • 'Bonjour tout le monde'[16:]
  • 'Bonjour tout le monde'[8:12]
  • 'majuscules'.upper()
  • 'MINUSCULES'.lower()
  • 'Bonjour tout le monde'.replace("Bonjour", "Au revoir")

🫙 5. Les variables

Affecter une valeur à une variable

Saisir l'instruction d'affectation x = 2 dans la console Python. Vous devez obtenir le résultat suivant :

>>> x = 2
>>>
Question

Lorsque nous soumettions une expression à l'interpréteur Python, celui-ci nous présentait la valeur de son évaluation. Selon vous, pourquoi dans le cas présent, Python n'affiche-t-il rien ?

Récupérer la valeur d'une variable

Saisir l'expression x dans la console Python. Vous devriez obtenir le résultat suivant :

>>> x
2
>>>
Question

Selon vous, pourquoi l'interpréteur Python affiche-t-il cette-fois une valeur ?

Anticiper les valeurs

Examinez chaque série de commandes et essayez de prédire leur résultat. Confirmez-les à l'aide de l'interpréteur.

Cas de l'affectation d'une expression

>>> x = 10 ** 2
>>> x
?

Cas de la réutilisation d'une même variable

>>> x = 2
>>> x = (x * 2) ** x
?

Cas de l'utilisation de deux variables

>>> x = 1
>>> x
1
>>> y = 2
>>> x = x + y
>>> y = x ** y
>>> x
?
>>> y
?

Cas d'une opération classique

>>> x = 5
>>> y = 9
>>> x
5
>>> y
9
>>> tmp = x
>>> x = y
>>> y = tmp
>>> x
?
>>> y
?
Question

Que cherchons-nous finalement à faire avec les trois lignes de code ci-dessous ?

tmp = x
x = y
y = tmp

👾 6. Les anomalies

Toutes les commandes ci-après provoquent un comportement inattendu ou une anomalie. À vous de trouver une explication.

Attention

Avant de commencer, vous devez partir d'un environnement interactif vierge :

  • Quitter le mode interactif à l'aide de la commande quit()
  • Relancer à l'aide de la commande python3
  • 10 / 0
  • x = x + 1
  • false
  • '3' + 3
  • 'A' < 65
  • math.sqrt(4)
  • 2,5
  • import math
    math.cos(math.radians(90))
  • 0.1 + 0.2 == 0.3