Formation I.S.N.

Sur la console

Après avoir installé Python sur l'ordinateur, il est maintenant temps de découvrir l'interpréteur de commandes de ce langage. Les petits tests qui suivent, même s'ils paraissent anodins vont permettre de découvrir les premiers rudiments de syntaxe de ce langage. En effet, comme tout langage (de programmation ou pas), Python possède une syntaxe claire qu'il convient de respecter rigoureusement pour être compris.

Pour commencer il faut ouvrir l'interpréteur de commande (ou shell).


console idle

A l'ouverture de l'interpréteur de commandes, un message d'accueil apparaît donnant quelques informations concernant la version de Python mise en route, l'architecture de l'ordinateur utilisée ainsi que les commandes à saisir pour obtenir davantage d'informations.

On retrouve également les triples chevrons >>> qui indiquent que Python est prêt à recevoir votre première instruction.

Cet interpréteur de commande va permettre de tester directement du code. On saisit une ligne d'instruction puis on appuie sur la touche ENTRÉE du clavier et Python nous répond. Puis on en saisit une deuxième, puis une troisième…

Cet interpréteur de commandes est très utile pour comprendre les bases de Python et réaliser nos premiers petits programmes. Mais le principal inconvénient réside dans le fait ce qui est saisi n'est pas sauvegardé. Nous verrons plus tard comment sauvegarder son script mais pour l'heure, commençons par nous familiariser avec les commandes élémentaires de Python.

Pour bien communiquer avec Python



1- Saisir la commande

			premier test Python
			

avec Python et taper ENTRÉE.

Python nous renvoie une erreur de syntaxe car il ne comprend pas cette instruction.



2- Saisir la commande

			"premier test Python"
			

avec Python et taper ENTRÉE.

Python nous renvoie le texte ce qui signifie que l'instruction est comprise.



3- Saisir la commande

			type(_)
			

et taper ENTRÉE.

Python nous renvoie class 'str'

De la même manière que les mots d'une langue ont une nature (nom, adjectif, verbe, préposition …), Python a besoin de connaître la nature de l'instruction ou de l'expression qui lui est donnée pour la comprendre et éventuellement la réutiliser. En langage informatique on appelle cela le type.

Ainsi dans cet exemple, nous lui avons fourni une expression de type chaîne de caractères ou string en anglais. D'où la réponse donnée par Python lorsque nous lui demandons le type : 'str'.

Python connaît une multitude de types. Il convient donc de respecter rigoureusement les symboles associés afin qu'il les reconnaissent. Par exemple, les symboles guillemets “ … ” permettent de créer une chaîne de caractères.

Seuls les nombres (entier et décimaux) sont reconnus sans être encadrés par des symboles.



4- Saisir un nombre entier, taper ENTRÉE puis saisir type(_) et taper de nouveau ENTRÉE.

			7
			type(_)
			

Python nous renvoie le nombre 7 et le type 'int' pour integer, nombre entier.



5- Saisir un nombre décimal, taper ENTRÉE puis saisir type(_) et taper de nouveau ENTRÉE (le séparateur décimal est le point et non la virgule).

			5.2
			type(_)
			

Python nous renvoie le nombre 5,2 et le type 'float' pour flottant, nombre à virgule flottante.

Opérations courantes



1- Saisir dans la console d'interprétation 5+3, taper ENTRÉE puis saisir type(_) et taper de nouveau ENTRÉE.

			5 + 3
			type(_)
			

Python calcule le résultat de la somme. S'agissant de la somme de deux nombres entiers, le résultat appartient au type 'int'.

L'opération + fonctionne évidemment aussi avec les nombres entiers négatifs. L'utilisation de parenthèses pour séparer l'opérateur + du signe n'est pas nécessaire pour Python même s'il est recommandé de l'utiliser pour plus de lisibilité.


			-5+-7
			type(_)
			-5+(-7)
			type(_)
			


2- Saisir dans la console d'interprétation 3.11+2.09, taper ENTRÉE puis saisir type(_) et taper de nouveau ENTRÉE.

			3.11+2.09
			type(_)
			

Résultat surprenant ! Python calcule avec des nombres de type 'float' ce qui conduit à un résultat approximatif (on s'attendait normalement à obtenir 5,2). Se rapporter au chapitre Representation de l'information pour comprendre la manière dont un nombre à virgule flottante est encodé par l'ordinateur ce qui expliquera ce résultat.

Il convient donc, dès qu'on le peut, de travailler avec des nombres entiers plutôt qu'avec des nombres décimaux dans un programme.



3- Les résultats restent les mêmes lorsqu'il s'agit d'une multiplication qui n'est autre qu'une addition ré-itérée :

			8*7
			4.7*2.1
			type(_)
			
C'est le symbole * qui représente la multiplication.



4– Saisir dans la console d'interprétation

			3**2
			3**3
			3**4
			
Le symbole ** représente est l'opérateur de puissance.



5– Saisir dans la console d'interprétation

			5+2*3
			(5+2)*3
			
On constate que la priorité des opérations est respectée.



6– Saisir dans la console d'interprétation

			24/8
			24/5
			27/7
			
Le symbole / représente la division décimale. Si le quotient est entier, Python renvoie 0 comme chiffre des dixièmes. Si le quotient est décimal, Python renvoie le nombres de décimales nécessaire pour obtenir sa valeur exacte. Si le quotient est non décimal, Python renverra une valeur approchée décimale contenant 16 chiffres. Quelle que soit le quotient demandé, Python renverra toujours une type 'float' (même pour 24/8 qui est entier).



7– Saisir dans la console d'interprétation

			47//9
			47%9
			

L'opérateur // renvoie le quotient de la division euclidienne.

L'opérateur % renvoie le reste de la division euclidienne.

Ces deux opérateurs renvoient des nombres de type 'int'.



8– Saisir dans la console d'interprétation a=4 (on affecte la valeur 4 à la variable a) puis a, puis id(a), puis type(a).

			a=4
			a
			id(a)
			type(a)
			

Une fois la valeur 4 affectée à la variable a, cette affectation reste valable jusqu'au redémarrage de la console sauf si l'affectation d'une autre valeur à cette même variable a vient écraser la précédente.

Une variable possède un identifiant (fonction id()) correspondant à un nombre entier à 10 chiffres indiquant l'adresse mémoire avec laquelle la variable est stockée.

Une variable possède également un type : celui de la valeur qui lui est affectée.

Pour connaître davantage de détails sur la fonction id() (resp. toute autre fonction), saisir help(“id”) (resp. help(“nom_de_la_fonction”)).


			help("id")
			


9– Saisir dans la console d'interprétation

			a,b=11,12
			a
			b
			
Cette syntaxe permet l'affectation simultanée de plusieurs valeurs sur plusieurs variables. On appelle cela l'affectation parallèle.



10– Saisir dans la console d'interprétation

			sin(0)
			

On s'attendait à autre chose qu'un message d'erreur de la part de Python.

En réalité, Python ne connaît pas par défaut les fonctions mathématiques. Il a donc besoins de l'import préalable d'un paquet additionnel de fonctions appelé module.

Pour importer la fonction sinus, il faut saisir préalablement from math import sin.


			from math import sin
			

Il est évidemment possible d'importer l'ensemble des fonctions mathématiques incluses dans le paquet maths. Pour cela il faut saisir from math import * (l'étoile signifie « universel »).


			from math import *
			

Pour connaître toutes les fonctions incluses dans le paquet math, saisir help(“math”).



11– Le symbole dièse (#) permet de commencer un commentaire dans le script c'est-à-dire une succession de caractères qui ne seront pas interprétés par Python.

			from math import *
			sqrt(2)  #La fonction sqrt donne une valeur approchée de la racine carrée positive.
			

Le commentaire apparaît en rouge dès lors que le symbole # est inscrit.



12– Pour terminer, écrivons notre premier petit programme.

Nous ne dérogerons pas à la tradition informatique qui consiste à commencer l’apprentissage d’un langage par l’affichage d’une salutation.

En python, ce sera très simple :


			print("Hello world !") #Ceci est mon premier programme !
			

Est-il possible de modifier la ligne précédente et de l’exécuter à nouveau, pour obtenir l’affichage "Bonjour tout le monde" ?

C’est le problème de la console : on devrait procéder par copier/coller, car dans cette fenêtre, seule la dernière ligne est interprétée par Python. On peut toutefois récupérer et modifier les lignes déjà entrées par les raccourcis Alt+P (précédent) et Alt+N (suivant) permettant de naviguer dans l’historique des commandes. Mais cette méthode s'avère très peu pratique, dès que l’on souhaite écrire un script de plus de deux ou trois lignes.

On préfère alors utiliser un éditeur de texte à l’intérieur duquel on peut naviguer et faire toutes les modifications souhaitées.

Remarque : Selon le langage de programmation choisi, le programme demandant l’affichage d’une salutation peut être plus ou moins long. Par curiosité et pour avoir un catalogue assez complet de l'ensemble des langages de programmation existants, se rendre sur la page : http://fr.wikipedia.org/wiki/Liste_de_programme_Hello_world