Le langage Python
Python est un langage de programmation orienté objet.
Il a été crée par Guido Von Rossum à l’université d’Amsterdam en 1991.
Environnement complet de développement comprenant :
- un interpréteur performant
- de nombreux modules
2 versions en parallèle depuis 2007 avec le lancement de Python 3.0
- Python 3 : 3.9.7 (30 août 2021)
- Python 2 : 2.7.15 (1er mai 2018)
Il existe des versions de Python adaptées pour Android et iPhone en version 2.5 ou 2.6
Update : Python 2 a été sauvagement assassiné le 1 er Janvier 2020
Python est un langage open source, simple, très populaire et répandu.
Python est un langage interprété avec possibilité de générer du byte-code.
Le langage Python
Popularité (Septembre 2020)
[Link]
Le langage Python
TIOBE/PYPL (Septembre 2021)
Structure de programme
Exécuter du code Python
1. Utiliser le mode interactif
- Intéressant pour tester rapidement du code
- CTRL D pour quitter
python
- la machine affiche une invite (>>>) Python 2.5.2 (r252:60911, Jan 20 2010, 21:48:48)
- l’utilisateur tape une expression [GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
correcte Type "help", "copyright", "credits" or "license" for more information.
- la machine affiche cette valeur >>> 3+4
7
>>> print ("Hello tout le monde")
Pour afficher du texte Hello tout le monde
print('' ..... '') >>>
2. Utiliser des scripts pour automatiser
- Sous Linux faire un chmod +x du script
- Autrement utiliser : python nomduscript
#!/usr/bin/python
# -*- coding:utf-8 -*-
print("Hello universe")
Langage évolué, compilation, interprétation
●
interprétation (« code source » est le programme que vous avez écrit) :
Code source interpréteur résultat
L'interpréteur lit le code source ....et le résultat apparaît sur l'écran
●
compilation :
Code exécuteur résultat
Code source compilateur objet
Le compilateur lit ...produit un code objet ....on exécute ......et le résultat
le code source . (binaire) le code objet apparaît sur
l'écran
Invite de commandes Python
# On peut réaliser des affectations multiples # Pour écrire un commentaire
>>> x=y=z=1
le typage des variables est
>>> print (x, y ,z)
dynamique,
(1, 1, 1)
par opposition au typage statique
(langage C ou C++)
# affectations parallèles
>>> x,y=1,2
• affecter plusieurs variables par la
>>> print (x, y) même valeur
(1, 2) >>> a = b = c = 0
>>> affecter plusieurs variables en
>>> x, y = y, x + y même temps
>>> print (x, y) >>> a, b = 0, 1
(2,3) >>> plus fort (attention affectation en
ligne se fait après le return )
>>> a, b = b, a + b
# Une division d'entiers retourne un entier
# le résultat est affecté à la variable __
>>> 7/2 Pour afficher des variables
Avec python 2
3 print(Var1,Var2,.....)
>>> 7/2.0
3.5 équivaut à : 3.5 à la puissance 2
Attention mettre devant _ (underscore)
>>> _ **2 sinon erreur interpréteur
12.25
Voici les résultats à la console...........
Invite de commandes Python
le typage des variables est
dynamique,
par opposition au typage statique
(langage C ou C++)
3 méthodes d'affectation
multiple et parallèles
Pour afficher des variables
print(Var1,Var2,.....)
Attention mettre devant _
sinon erreur interpréteur
équivaut à :
3.5 à la puissance 2
Nb : Avec python2, 7/2 affiche 3 et non 3.5. Il faut écrire 7/2.0
Première opération de lecture
input et raw_input sont 2 instructions qui permettent :
- d'afficher un message à écran
- et faire saisir à l'utilisateur une valeur ou expression
- qui sera affectée à une variable
raw_input n’existe pas dans Python 3
Dans Python 3, input correspond à raw_input de
python 2.
>>> x=raw_input('Entrez votre nom :')
Entrez votre nom : foo bar
>>> x La variable X reçoit la saisie
'foo bar' - avec raw_input
>>> x=input('Entrez votre nom :')
Entrez votre nom :'foo bar' - avec input Ici il faut mettre des quotes
>>> x
'foo bar'
Voici les résultats à la console...........
Passage de paramètres à un script ([Link][])
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys import du module sys qui permet d’interagir
print ("Hello !") l’environnement d’exécution du code python
for x in [Link] :
print (x) Ici il permet de récupérer les arguments
print("Le nom du script est : " + [Link][0]) passés lors de l’exécution du script.
print("Votre prénom est : " + [Link][1])
print("Votre nom est : " + [Link][2])
3 arguments
fonction (ou procédure, méthode) avec passage Résultat
de paramètres:
$>python [Link] foo bar
bout de code « emballé séparément » pour : Hello tout le monde
− éviter d’avoir un morceau de code en plusieurs [Link]
exemplaires foo
− mettre en relief un morceau de code en bar
précisant ses données et résultats Le nom du script est : [Link]
− permettre la réutilisation d’un code dans Votre prénom est : foo
d’autres développements Votre nom est : bar
Voici les résultats à la console...........
Passage de paramètres
[Link][0]
[Link][1]
[Link][2]
Structure de contrôle – blocs
La structure if
if (var {==,<,>,!=, >=,<=} ......): Attention :
... instruction saisir« : » à la fin de la ligne,
else :
... instruction
elif est la contraction
de « else if »
if (var {==,<,>,!=,>=,<=} ......):
... instruction #!/usr/bin/python
elif a < 0 : # -*- coding:utf-8 -*-
... instruction
else : from random import *
... instruction magic=randint(0,100)
gagne=input("Entrez un nombre :")
if gagne == magic:
print("Gagné")
elif gagne > magic:
print("Perdu, votre nombre est trop grand")
elif gagne < magic:
print("Perdu, votre nombre est trop petit")
else:
print ("je ne passe jamais ici")
La structure while
while condition: Attention :
bloc d'instructions saisir« : » à la fin de la
if condition-de-sortie : ligne,
break # pour interrompre un traitement vous constatez que le
prompt principal (>>>)
est maintenant remplacé
>>> # Suite de Fibonacci
par un prompt
... # La somme de deux éléments définit le suivant
secondaire constitué de
>>> a, b = 0, 1
trois points
>>> while b < 1000 :
... print(b)
...
... a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> x=0 >>> x=0
>>> while 1: # boucle fausse >>> while 1: #programme correct
... if x == 10 : # le if pas dans le while ... if x == 10 : # if dans la while
... break # break en dehors while ... break # break dans if - while
... print(x) ... print(x)
... x=x+1 ... x=x+1
La structure for
>>> for x in (1,2,3): L'instruction for de Python itère parmi les éléments de
... print(x), n'importe quelle séquence dans l'ordre où ils apparaissent
... dans la séquence.
123 La fonction enumerate() permet récupérer une liste de tuples
(indice, valeur) en fonction du contenu de la liste
>>> l=['a','e','i','o','u','y']
>>> for x, lettre in enumerate (l):
... print(x,lettre)
>>> l=[(1,'a'),(2,'b'),(3,'c')]
>>> for x,y in l:
... print(x,y)
# x est le premier élément de chaque n-uplet
# y est le second élément de chaque n-uplet
>>> # Mesurer quelques chaînes:
... a = ['chat', 'fenêtre', 'défenestrer']
>>> for x in a:
... print(x, len(x))
La structure for
>>> range(4) range construit une collection
[0, 1, 2, 3] range (nbre itérateur)
range (Valeur de début, valeur de fin, pas)
>>> range(1000,1010)
[1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009]
>>> range (10,-10,-2) Valeur début comprise
[10, 8, 6, 4, 2, 0, -2, -4, -6, -8] Valeur fin non comprise
Pas de 1 par défaut
Pas de -1
Pas de -2
Valeur début comprise
Valeur fin non comprise
Instruction range
range construit une collection
range (nbre itérateur)
range (Valeur de début, valeur de fin non comprise, pas)
# Comment itérer >>> for i in range(10):
>>> range(10) ... print (2*i),
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ...
0 2 4 6 8 10 12 14 16 18
>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 3) >>> a = ['Marie', 'avait', 'un', 'petit', 'mouton']
[0, 3, 6, 9] >>> for i in range(len(a)):
... print i, a[i]
>>> range(-10, -100, -30) ...
[-10, -40, -70] 0 Marie
1 avait
2 un
3 petit
Valeur de fin comprise est la 4 mouton
longueur de la liste calculée
automatiquement par la fonction
len (liste)
EXERCICES d'Application
Structure de programme