You are on page 1of 47

Atelier Python

Based on : Dr. GASMI Ghada‘s course


Python
Prise en main
Historique

 1989 - Guido Van Rossum, un développeur Néerlandais lance la première


version
 1991 - Le langage est suffisamment abouti pour proposer une première
version publique 0.9.0.
 2000 - Le langage continue à évoluer pour atteindre la version 2.0.0. Il intègre
de plus en plus de modules de codes (de librairies) permettant de traiter
divers sujets : réseaux, accès aux bases de données, parsing de fichiers..
 2008 - Une rupture de compatibilité avec Python 2 et lancement de Python3.
 1er janvier 2020 - La branche de code Python 2.x est gelée
Caractéristiques
• Langage dynamiquement interprété

• Open source pour interpréteur et bibliothèque standard

• Orienté objets

• Facile à utiliser et souple

• Système de gestion d’exceptions

• Nombreux types d’utilisation/bibliothèque spécialisées


Caractéristiques
Python est un langage de programmation interprété. Il est associé à un interpréteur de commandes disponible pour
différents OS (Windows, Linux, Mac OS X, etc.)
C’est un « vrai » langage c.-à-d. types de données, branchements conditionnels, boucles, organisation du code en
procédures et fonctions, objets et classes, découpage en modules.
Très bien structuré, facile à appréhender, c’est un langage privilégié pour l’enseignement.

Python est associé à de très nombreuses librairies très performantes, notamment des librairies de calcul
scientifique (Numpy, SciPy, Pandas, etc.).
De fait, il est de plus en plus populaire, y compris auprès des data scientists. Il est plus généraliste que R qui est
vraiment tourné vers les statistiques.
Mode d’exécution/ Mode opératoire (1/2)

Mode d’exécution : transmettre à l’interpréteur Python le fichier script « .py » ou en mode intéractif

Mode intéractif (avec IDLE ou cmd)

Lancer l’interpréteur Python et introduire les commandes de manière interactive.


 Ce n’est pas adapté pour nous (programmation = enchaînement automatique d’instructions)
Mode d’exécution/ Mode opératoire (2/2)

Fichier Script .py

Double cliquer le fichier « .py » pour lancer


automatiquement le programme dans la console.
Mode d’exécution/ Mode opératoire (2/2)

Fichier Script .py

Menu : RUN / RUN MODULE


(ou raccourci clavier F5)
 Permet de mieux suivre l’exécution du programme. Messages d’erreur accessibles,
pas comme pour l’exécution console.
Python propose les outils standards de la
programmation (1/2)

Données typées. Python propose les types usuels de la programmation : entier, réels, booléens,
chaîne de caractères.

Structures avancées de données. Gestion des collections de valeurs (énumérations, listes) et des
objets structurés (dictionnaires, classes)

Séquences d’instructions, c’est la base même de la programmation, pouvoir écrire et exécuter


une série de commandes sans avoir à intervenir entre les instructions.

Structures algorithmiques : les branchements conditionnels et les boucles.


Python propose les outils standards de la
programmation (2/2)
Les outils de la programmation structurée : pouvoir regrouper du code dans des procédures et
des fonctions.
 mieux organiser les applications

Organisation du code en modules. Fichiers « .py » que l’on peut appeler dans d’autres
programmes avec la commande import

Possibilité de distribution des modules : soit directement les fichiers « .py », soit sous
forme d’extensions prêtes à l’emploi.

Python est « case sensitive » : différencie les termes écrits en minuscule et majuscule.
Domaines d'application

 Le scripting

 Le développement Web

 Le calcul scientifique

 Le Big Data et le Machine Learning

 Programmation en Systèmes Embarqués

 Programmation réseau 12
Installation
Installation
Installation
Installation
Installation
Accès à l'interpréteur

L’interpréteur Python permet


de convertir vos instructions en
un langage compréhensible par
votre ordinateur
Accès à l'éditeur interactif IDLE

IDLE est un environnement


de développement intégré
spécialement pour Python
qui permet d'exécuter le
code
Les IDE

• IDE (Integrated Development Environment) disposent de fonctionnalités


supplémentaires (mécanismes d’auto-complétion, systèmes de détection des
erreurs de syntaxe).
Les IDE

L'IDE PyCharm
PyCharm est le meilleur IDE tout simplement. Sa
version gratuite est très complète et répond à tous
les besoins d'un développeur python.

Sublime Text
Il est ultra light, il est beau, il est fort, il est puissant!
Sublime text possède toute une panoplie de plugins
dont vous serez vite accroc! Sa version de base est
gratuite, une petite alerte vous demandera de temps
en temps si vous voulez acheter une licence pour
soutenir le projet mais rien ne vous oblige à le faire.
Utiliser Spyder de Anaconda
C’est le mode de fonctionnement
Pour lancer le programme que nous allons privilégier !

Informations, dont l’aide


+ Accès aux variables
(CTRL+I sur les mots clés)

Editeur de code

Console IPython
Sorties + interaction avec l’utilisateur
Python
Premiers pas
Les commentaires

• Dans un script, tout ce qui suit le caractère # est ignoré par


Python jusqu’à la fin de la ligne et est considéré comme un
commentaire.

• Les triples double-quotes marquent le début et la fin d’un


commentaire multi-lignes.

24
Les blocs d’instructions et l’indentation

Un bloc d’instructions est une unité de programmation qui regroupe une séquence ordonnée
d’instructions qui s’exécutent les unes après les autres. Un programme impératif va faire s’enchaîner
les blocs d’instructions en les branchant les uns aux autres via des structures de contrôle telles que
if, for, while, . . .
• En python, il n’ ya pas de marqueur de début et de fin d’un bloc d’instructions (pas de { } etc..)
• L’indentation marque le début d’un bloc :
Recommandation (PEP8) pour la syntaxe de chaque niveau d'indentation est très simple : 4 espaces
(Certains IDE comme Spyder intègrent cette indentation par défaut)
• Un bloc est terminé par une ligne vide (Recommandation et bonne pratique Python)

25
Les variables

 Un nom de variable doit commencer par une lettre ou un


caractère de soulignement

 Un nom de variable ne peut pas commencer par un nombre

 Un nom de variable ne peut contenir que des caractères


alphanumériques et des traits de soulignement (A-z, 0-9 et _)

 Les noms de variables sont sensibles à la casse


Les variables

 En Python, une variable est une zone de la mémoire de l'ordinateur dans laquelle une valeur
est stockée. Aux yeux du programmeur, cette variable est définie par un nom, alors que pour
l'ordinateur, il s'agit en fait d'une adresse, c'est-à-dire d'une zone particulière de la mémoire.
 En Python, on ne déclare pas une variable : une variable est créée au moment de l’affectation

La déclaration d'une variable et son initialisation se font en même temps.


 Python est un langage au typage dynamique
1. Python devine que la variable est un entier.
>>> x = 2
2. Python alloue l'espace en mémoire pour y accueillir un entier. Python a aussi
>>> x
2 fait en sorte qu'on puisse retrouver la variable sous le nom x.
3. Enfin, Python a assigné la valeur 2 à la variable x.

>>> a = 1.2
>>> d= a+3
>>> d
4.2
Les variables
>>> a = 3 >>> var = 1 >>> a = 5
>>> b = a >>> print ( var ) >>> b = a
>>> c = 10 ** a 1 >>> a = b + 3
>>> d = a * c >>> var = " abcd " >>> print (a, b)
>>> print (a, b, c, d) >>> print ( var ) 8 5
3 3 1000 3000 abcd
>>> pi=3.14
>>> print(pi)
3.14
Le passage des types primitifs en Python s'apparente à un passage par valeur.
Quelques exemples à problème :
>>> x=y
>>> a = [1, 2, 3]
Traceback (most recent call last):
>>> b = a
File "<pyshell#4>", line 1, in <module>
>>> a.append (4)
x=y
>>> print(a, b)
NameError: name 'y' is not defined
[1, 2, 3, 4] [1, 2, 3, 4]
Le passage des types composés en Python s'apparente à un passage par référence.
https://pythontutor.com/python-debugger.html#mode=edit
Les variables
Affectation simple Affectations multiples
#typage automatique #même valeur pour plusieurs variables
a = 1.0 a = b = 2.5

#typage explicite #affectations parallèles


a = float(1) a, b = 2.5, 3.2
La seconde évite les ambiguïtés. a,b=3,4
>>> print(a,b)
Ecriture scientifique 3 4
Ecrire des nombres très grands ou très petits avec >>> a,b=b,a Permutation sans
>>> print(a,b) utiliser une 3ème variable
des puissances de 10 en utilisant le symbole e
4 3
>>> 1e6
1000000.0
>>> 3.12e-3
0.00312
Types de variables
>>> not(True)
False
 Types de base : int, float, str, bool (True, False) >>> True and False
False
 Type bool :
>>> a = "tano"
 Type str : désigne les chaînes de caractères : doit être délimitée par >>> len(a)
des guillemets (ou des quotes) 4
>>> a[0]
Une chaîne de caractère se comporte comme un vecteur : 't'
>>> a[1:3]
 Il y a trois types numériques en Python :
'an'
(int) permet de représenter n'importe quel nombre entier, peu >>> a[2:]
'no'
importe sa taille.
from cmath import sqrt
(float) permet de représenter des nombres comportant une partie a = 1
b = -4 c = 2e2
décimale, compris entre 10−308 et 10308. La valeur spéciale math.inf delta = b ** 2 - 4 * a * c
représente l'infini. x1 = (-b + sqrt(delta)) / (2 * a)
x2 = (-b - sqrt(delta)) / (2 * a)
(complex) permet de représenter des nombres complexes, où le print('Les deux racines sont :')
nombre imaginaire se note j. print(x1)
print(x2)
Types de variables

 Connaître le type d’un objet :


type(nom_de_variable)
>>> type(a) <class 'float'>
 Une variable peut changer de type dans un programme : par simple affectation ou par transtypage
 Conversion de type : Forcer le typage d’une variable (sert aussi pour le transtypage)
Type_destination (variable ou valeur)
b = float(1)
 Même sans point décimal, b sera considéré comme float (b = 1, il aurait été int dans ce cas).
 Supprimer un objet de la mémoire
del nom_de_variable
où nom_de_variable représente le nom de l’objet à supprimer.
Transtypage

Conversion en numérique
a = « 12 » # a est de type chaîne caractère
b = float(a) #b est de type float

N.B. Si la conversion n’est pas possible ex. float(« toto »), Python renvoie une erreur

Conversion en logique
a = bool(« TRUE ») # a est de type bool et contient la valeur True a = bool(1) #
renvoie True également

Conversion en chaîne de caractères


a = str(15) # a est de type chaîne et contient « 15 »
33
Opérations arithmétiques sur type numérique

Priorité :
1. parenthèses
2. exposant
3 multiplication et division
4. addition et soustraction
Opérations arithmétiques sur les chaînes de
caractères

Addition
chaine1 + chaine2

Multiplication
Chaine * nbreRépetitions
Opérations d'affectation sur les types numériques

Opérateur Description Exemple Est la même que


= Affectation simple a=b
+= Addition puis affectation a += b a=a+b
-= Soustraction puis affectation a -= b a=a–b
*= Multiplication puis affectation a *= b a=a*b
/= Division puis affectation a /= b a=a/b
%= Modulo puis affectation a %= b a=a%b
//= Division entière puis affectation a //= b a = a // b
**= Exponentiation puis affectation a **= b a = a ** b
&= Et bit à bit puis affectation a &= b a=a&b
|= Ou bit à bit puis affectation a |= b a=a|b
^= XOR puis affectation a ^= b a=a^b
>>= Décalage binaire à droite puis affectation a >>= b a = a >> b
<<= Décalage binaire à gauche puis affectation a <<= b a = a << b
Opérateurs logiques

Opérateurs relationnelles Opérateurs logiques


Opérateur Nom Exemple Résultat Opérateur Exemple Résultat
== Égal à a == b Retourne True si a est égal à b True si les deux a
and a and b
et b sont Trues
!= Non égal à a != b Retourne True si a n’est pas égal à b
True si a ou b est
or a or b
True
> Supérieur à a>b Retourne True si a est supérieur à b
True si a n’est pas
not !a
< Inférieur à a<b Retourne True si a est inférieur à b True

>= Supérieur ou égal à a >= b Retourne True si a est supérieur ou égal à b

<= Inférieur ou égal à a <= b Retourne True si a est inférieur ou égal à b

Opérateur None Dénote une variable “vide” : pointe sur None pour représenter qu’elle ne contient rien.
Il est juste possible de tester si une variable pointe dessus ou pas.
if x is not None
Opérateurs logiques

Opérateurs d’identité Opérateur d'appartenance


Ils permettent de vérifier si deux valeurs (ou variables)
Operateur signification Exemple
sont situées sur le même emplacement mémoire. deux
variables égales n'impliquent pas qu'elles sont identiques. True si la valeur / variable
in 5 in x
se trouve dans la séquence
Operateur signification Exemple True si la valeur / variable
not in ne se trouve pas dans la 5 not in x
Renvoie True si les deux séquence
is a is b
variables sont le même objet
>>> a=[1, 2, 3, 4, 5]
Renvoie True si les deux >>> 6 in a
is not variables ne sont pas le a is not b False
même objet >>> 1 in a
a = ["blue", "red"]
True
print("red" in a)
print("red" not in a)
Opérateurs binaires

Soit x = 10 (0000 1010 en binaire) et y = 4 (0000 0100 en binaire)

Operateur signification Exemple


& ET logique x& y = 0 (0000 0000)

| OU logique x | y = 14 (0000 1110)

~ NON logique ~x = -11 (1111 0101)

^ XOR x ^ y = 14 (0000 1110)

>> Décalage binaire à droite x>> 2 = 2 (0000 0010)

<< Décalage binaire à gauche x<< 2 = 40 (0010 1000)


Opérations d'affectation sur les chaînes de
caractères

Affectation

 +=

 *=
Affichage

 print("message")
 print("message", var1, var2,
"message")
 print(var1, var2, sep="-", end=".")

print(« prix ttc : », pttc)


Fonctionne également

Concaténation de 2 chaînes de caractères


Affichage formaté

• La méthode .format() permet une meilleure organisation de l'affichage des variables

>>> x = 32
>>> nom = "John"
>>> print("{} a {} ans".format(nom, x))
John a 32 ans
#Another way to do it
txt = "For only {price:.2f} dollars!"
>>> x = 32 print(txt.format(price = 49))
>>> nom = "John"
>>> print("{0} a {1} ans".format(nom, x))
John a 32 ans
>>> print("{1} a {0} ans".format(nom, x))
32 a John ans
Affichage formaté

 Formatage d’une variable float, mettre dans les accolades :

◦ Les deux points : indiquent qu’on veut préciser le format.


◦ .nf indiquent la précision voulue, soit ici n chiffres après la virgule.
>>> from math import *
>>> pi
3.141592653589793
>>> print(pi)
3.141592653589793
>>> print("la valeur de pi: {:.3f}".format(pi))
la valeur de pi: 3.142
>>>
Affichage formaté
 Alignement :
◦ <: alignement à gauche
◦ >: alignement à droite
◦ ^: Centré
◦ Préciser le nombre de caractères servant pour l’écriture
 On peut préciser aussi le caractère qui servira de remplissage lors des alignements :
caractère type_alignement nbrecaratères
>>> print("pi: {:<10.2f} c'est simple".format(pi))
pi: 3.14 c'est simple
>>> print("pi: {:*>10.2f} c'est simple".format(pi))
pi: ******3.14 c'est simple
>>> print("pi: {:*<10.2f} c'est simple".format(pi))
pi: 3.14****** c'est simple
Exercice

Soit le pourcentage de la population donné par la formule :


percentage= ((4500 + 2575)/14800)*100
Affichez le pourcentage à l’écran avec 0, 1, 2 puis 3 décimales. On
souhaite que le programme affiche la sortie suivante
La saisie au clavier

 Chaine = input(« message d’invite »)

 Possibilité de casting pour passer aux différents autres types.


Exercice

Ecrire un script qui lit un entier n et calcule la


valeur n+nn+nnn

You might also like