0% ont trouvé ce document utile (0 vote)
9 vues72 pages

Chap1 Python

Le document présente une introduction au langage de programmation Python, couvrant son historique, ses caractéristiques, et ses avantages. Il décrit également l'environnement de développement intégré, les modes d'exécution, ainsi que l'utilisation des commentaires, de l'aide et des modules. Python est mis en avant pour sa polyvalence, sa simplicité et son adoption croissante dans divers domaines, notamment la science des données et le développement web.

Transféré par

daryldedzo01
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues72 pages

Chap1 Python

Le document présente une introduction au langage de programmation Python, couvrant son historique, ses caractéristiques, et ses avantages. Il décrit également l'environnement de développement intégré, les modes d'exécution, ainsi que l'utilisation des commentaires, de l'aide et des modules. Python est mis en avant pour sa polyvalence, sa simplicité et son adoption croissante dans divers domaines, notamment la science des données et le développement web.

Transféré par

daryldedzo01
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 72

Langage évolué & Business

Intelligence
Chapitre 1 – Le langage Python : Notions de
base

2 ÈME EB , BIS et BI
Plan du
Chapitre
1. Historique du langage

2. Présentation générale de Python

3. Environnement de développement intégré de Python

4. Mode interactif & mode script

5. Commentaires, Aide et modules en Python

6. Types élémentaires

7. Affectation des variables et mots réservés

8. Opérations d’entrée/sortie

9. Structures conditionnelles et itératives

2
1)Historique du
langage
Python est un langage de programmation développé depuis 1989 par le développeur néerlandais
Guido Van Rossum et de nombreux collaborateurs.
Le nom Python revient à une série de comédie des années 70 de la BBC nommée “Monty
Python’s
Flying Circus”
Principales versions officielles parues :
Python 1.0 – Janvier 1994, Python 2.0 – Octobre 2000
Python 2.4 – Novembre 2004, Python 2.5 – Septembre 2006
Python 2.6 - Octobre 2008, Python 2.7 – Juillet 2010
Révolution du langage python et apparition de la v3
◦ Python 3.0 - Décembre, 2008
◦ Python 3.5 – Septembre, 2015

3/76
1)Historique du
Classement
langage (Septembre
2016)
TIOBE
Septembre
2016
Avril
2015
Avril
2014
Langage de
Programmation
Ratings Evolution

1 1 2 Java 18.236% -1.33%


2 2 1 C 10.955% -4.67%
3 3 4 C++ 6.657% -0,13%
4 5 5 C# 5.493% +0.58%
5 8 8 PYTHON 4,302% +0.64%
6 6 9 JAVASCRIPT 3.297 +0,59%
7 7 7 PHP 3.009 +0.32%
9 12 13 PERL 2,33% +0,43%

4/76
1)Historique du langage
Classement PYPL (Septembre
2016)

Le classement PYPL (PopularitY


of Programming Language
Index) se base sur l’analyse du
nombre de fois où un tutoriel
pour un langage spécifique est
recherché sur Google.

5
2)Présentation générale de
Python
C’est un langage qui inclut tous les types de données, les branchements
conditionnels, les boucles, l’organisation du code en procédures et
fonctions, objets et classes, découpage en modules.
Mode d’exécution : transmettre à l’interpréteur Python le fichier script
«.py »
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.

6
2)Présentation générale de Python
Mode compilé vs. mode interprété
 Langage interprété : + portabilité application ; - lenteur (ex. R, VBA,
Python…)
 Langage compilé : + rapidité ; - pas portable (ex. Lazarus)
Langage pseudo-compilé : + portabilité plate-forme ; - lenteur (ex.
Java)
Python est interprété, il est irrémédiablement lent, mais… on peut
lui associer des librairies intégrant des fonctions compilées qui, elles,
sont très rapides.

7
2)Présentation générale de Python Avantages (1/4)

Python est un logiciel libre « free » : utilisation sans restriction dans les projets
commerciaux;
Python est un langage portable (peut fonctionner sur différentes plateformes OS (operating system);
Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs
dizaines de milliers de lignes;
La syntaxe de Python est très simple et, combinée à des types de données
évolués;
Python est un Langage de haut niveau (faire beaucoup avec peu de code, un programme python est
3 à 5 fois moins cours qu’un programme C).

8/76
2)Présentation générale de Python
Un exemple !

9
2)Présentation générale de Python Avantages(2/4)
Python est un langage orienté objet qui supporte l’héritage et la surcharge des opérateurs; Python est
Dynamiquement typé:
◦ tout objet manipulable par le programmeur possède un type bien définit à l'exécution,

◦ qui n'a pas besoin d'être déclaré à l'avance.

Python est un langage inter-opérable (avec C Cython, Java Jython, C++, Fortran F2Py…)
Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur,
◦ par un mécanisme de comptage de références,

◦ il intègre un système de gestion de mémoire automatique (ramasse miette ou garbage collector)

10/76
2)Présentation générale de Python
Avantages(3/4)
Python intègre, comme Java ou les versions récentes de C++, un système
d'exceptions,
◦ permettant de simplifier considérablement la gestion des erreurs,
◦ Lorsqu'une exception se produit, l'exécution normale du programme est
interrompue et
l'exception est traitée !!

Multi paradigmes, supportant les principaux styles de programmation :


◦ impératif, procédural, orienté objet...

Evolutif, Python est un langage qui continue à évoluer, grâce à une communauté
d’utilisateurs très actifs
11/76
2)Présentation générale de Python
Avantages (4/4)
Langage polyvalent : Nous pouvons presque tout faire avec Python grâce à ses
bibliothèques variées
Utilisé par de grands acteurs dans le monde: La NASA, Google, Youtube,
Mozilla…
De plus en plus utilisé dans la recherche, l’enseignement et l’industrie.

12/76
2)Présentation générale de Python
Domaines d’applications
Python, est un langage de programmation de plus en plus populaire utilisé entre autres:
◦ WEB: Google (pure Python et Django*), Youtube, Mozilla, Yahoo, eBay (Plone**), Nokia (Plone**)
◦ Scientifique : la NASA (pure Python et Plone), la CIA (Plone)… la liste est bien trop longue.
◦ L’enseignement principalement dans plusieurs pays

*: Django est un Framework (Plateforme de développement Web) écrit en Python.


**: Plone permet à des personnes n'ayant pas de connaissance technique de créer et mettre à jour des informations
sur un site web public ou sur un intranet en utilisant un simple navigateur web

13/76
3) Environnement de développement intégré de Python
Plusieurs EDI sont disponibles,
IDLE : est un environnement de développement intégré fourni avec Python (bon
choix pour débutant), IDLE propose un certain nombre d'outils :
◦un éditeur de texte (pour l’écriture de script) avec une coloration syntaxique, une
indentation
automatique et l’auto-complétion*.
◦ un interpréteur (pour exécuter le programme)
◦ un débogueur (pour tester le programme)

C’est l’EDI Le plus populaire, soit 23% des utilisateurs de python


*: Auto-complétion – ou complément automatique – est une fonctionnalité d’un logiciel qui propose à l’utilisateur des
compléments de réponses pouvant convenir aux premières mots ou aux premières phrases qu’il a commencé à taper dans
le champ de saisie.

14/76
3) Environnement de développement
intégré
Il existe d'autres IDE pour Python :
• Eclipse/Pydev (17,31%),
• NetBeans,
• Spyder,
• Eric...

Pour les non débutants d’autres IDE


complet :

• winPython ,
• anaconda V3,
• Python(x,y)..

15/76
4) Mode interactif & mode
script
Une fois installé Python (la dernière version 3.5.0) peut être utilisé en deux modes, mode
interactif ou en mode script:

Image extraite du cours de Jean-Luc Charles, Eric Ducasse, Art et Métiers Paris Tech

16/76
4) Mode interactif & mode
script
Description : Dans le mode interactif, vous pouvez entrer directement des
commandes Python dans l'interpréteur Python, et les résultats sont
immédiatement affichés.
C'est un environnement interactif qui permet d'explorer et de tester le code
ligne par ligne.

Utilisation : Vous pouvez lancer le mode interactif en ouvrant un terminal et


en exécutant la commande python ou python3. Vous verrez alors un invite
interactif (>>>) où vous pouvez entrer des commandes Python directement.

17/76
4) Mode interactif & mode
script

18/76
4) Mode interactif & Mode script

Description : Dans le mode script, vous écrivez votre code dans un fichier
avec l'extension .py et exécutez le fichier Python en entier. C'est la manière
la plus courante d'écrire des programmes plus longs et structurés.

Utilisation : Vous créez un fichier avec l'extension .py (par exemple,


mon_script.py) et exécutez le script en utilisant la commande python
mon_script.py depuis le terminal.

19/76
4) Mode interactif & Mode script

Vous exécuteriez ce script en utilisant la commande python mon_script.py

20/76
4) Mode interactif & Mode script

Différences principales :

Le mode interactif est plus adapté à l'exploration et aux tests rapides de


petits morceaux de code.

Le mode script est utilisé pour écrire des programmes complets et


structurés qui sont sauvegardés dans des fichiers.

21/76
4) Mode interactif & mode script Mode interactif
Les instructions tapées sont exécutées directement par l’interpréteur python,
c’est aussi le mode calculette .

22/76
4) Mode interactif & mode script Mode script
(1/2)

Une nouvelle fenêtre s’ouvre , vous écrivez votre code Python. Il faut enregistrer dans un
fichier d’extension « .py »

23/76
4) Mode interactif & mode
script Mode script (2/2)

Exécution :

24/76
5) Commentaires, Aide et modules en Python
Commentaires
Tout ce qui suit le caractère # est considéré comme un commentaire
et ne sera jamais évalué.

20
5) Commentaires, Aide et modules en Python
Utilisation de l’aide
L’utilisation de l’aide en ligne se fait par la commande
help(identificateur)
Exemple :
>>>help(int)
Help on class int in module builtins:
class int(object)
| int(x=0) -> integer
| int(x, base=10) -> integer
….
Methods defined here:
| abs (...)
| x. abs () <==> abs(x)
| add (...)
| x. add (y) <==> x+y
| and (...)
| x. and (y) <==> x&y
| bool (...)
| x. bool () <==> x != 0
26/76
5) Commentaires, Aide et modules en Python
Utilisation de l’aide

L'utilisation de l'aide en ligne en Python se fait par la commande help(identificateur), où


l'identificateur est le nom de la fonction, de la classe ou du module sur lequel vous
souhaitez obtenir de l'aide. Cela vous fournit une documentation détaillée sur cet
élément particulier.

Permettant aux développeurs de comprendre comment utiliser cette classe et


quelles méthodes sont disponibles.

27/76
5) Commentaires, Aide et modules en Python
Utilisation de l’aide
Help on class int in module builtins: Indique que vous consultez la documentation pour la classe int qui est
définie dans le module intégré (builtins).

class int(object) : Donne la signature de la classe int. Ici, object indique que la classe int est une sous-classe
de l'objet de base en Python.

int(x=0) -> integer : Indique que la classe int peut être instanciée avec un argument optionnel x (par défaut
égal à 0), et renverra un entier.

28/76
5) Commentaires, Aide et modules en Python
Utilisation de l’aide
Methods defined here : Signale que les méthodes définies pour la classe int sont répertoriées ci-dessous.

_ _abs_ _(...) : La méthode _ _abs_ _ est expliquée ici, indiquant que x._ _abs_ _() est équivalent à abs(x).

_ _add_ _(...) : La méthode _ _add_ _ est expliquée ici, indiquant que x._ _add_ _(y) est équivalent à x + y.

_ _and_ _(...) : La méthode _ _and_ _ est expliquée ici, indiquant que x._ _and_ _(y) est équivalent à x & y.

_ _bool_ _(...) : La méthode _ _bool_ _ est expliquée ici, indiquant que x._ _bool_ _() est équivalent à x != 0.

29/76
5) Commentaires, Aide et modules en Python
Import de modules (1/4)
Trois manières d’import de modules
1ère manière:

>>>import math
>>>dir(math)
[' doc ', ' name ', ' package ', 'acos', 'acosh', 'asin', 'asinh', 'atan',
'atan2', 'atanh', 'ceil', 'copysign', 'cos',………, 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'trunc']
>>> math.ceil(7.8989) #partie entière supérieure
8
>>> math.floor(7.8989) #partie entière inférieure
7
>>>help(math.ceil)
Help on built-in function ceil in module math:
ceil(...)
ceil(x)
Return the ceiling of x as an int.
This is the smallest integral value >= x.

30/76
5) Commentaires, Aide et modules en Python
Import de modules (1/4)
Trois manières d’import de modules
1ère manière:

>>>import math
Cela importe le module math, qui est un module Python intégré fournissant des fonctions mathématiques.

>>>dir(math)
Renvoie la liste des attributs du module math. Les attributs incluent différentes fonctions mathématiques telles que acos,
ceil, floor, etc.
>>> math.ceil(7.8989) #partie entière supérieure
8
Utilisée pour arrondir à la partie entière supérieure de 7.8989,
résultant en 8.
>>>help(math.ceil)
La commande help(math.ceil) fournit une documentation détaillée
sur la fonction ceil du module math. Elle explique que la fonction
ceil(x) renvoie le plafond de x en tant qu'entier, ce qui est la plus
petite valeur entière supérieure ou égale à x.

31/76
5) Commentaires, Aide et modules en Python
Import de modules (2/4)
2ème manière: Utilisation d’un alias
>>>import math as m
>>>dir(m)
[' doc ', ' name ', ' package ', 'acos', 'acosh', 'asin', 'asinh',
'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos',………, 'pi', 'pow',
'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
>>> m.sqrt(2)
1.4142135623730951
>>> m.tan(m.pi)
-
1.2246467991473532
e-16
32/76
5) Commentaires, Aide et modules en Python
Import de modules (2/4)
2ème manière: Utilisation d’un alias
>>>import math as m
Cela importe le module math et lui donne un alias m. Désormais, au lieu d'utiliser
math.sqrt, vous pouvez utiliser l'alias m : m.sqrt
>>>dir(m)
La fonction dir(m) renvoie la liste des attributs du module math, mais cette fois-ci, on
utilise l'alias m au lieu de math.
>>> m.sqrt(2)
La fonction sqrt du module math est utilisée avec l'alias m pour calculer la racine carrée
de 2.
>>> m.tan(m.pi)
La fonction tan du module math est utilisée avec l'alias m pour calculer la tangente de
pi.

33/76
5) Commentaires, Aide et modules en Python
Import de modules (3/4)
3ème Manière : Importation de toutes les fonctions d’un module

>>>from math import *


>>>dir(math)
->Erreur
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
dir(math)
NameError: name 'math' is not defined
Mais les fonctions du module sont directement accessibles
>>>sqrt(2)
1.4142135623730951
>>> help(abs)
Help on built-in function abs in module builtins:
abs(...)
abs(number) -> number
Return the absolute value of the argument.

34/76
5) Commentaires, Aide et modules en Python
Import de modules (3/4)
3ème Manière : Importation de toutes les fonctions d’un module

>>>from math import *

Cela importe toutes les fonctions du module math. L'utilisation de l'étoile *


signifie que toutes les fonctions du module deviennent directement accessibles sans
avoir besoin de spécifier le nom du module.

>>>dir(math)
->Erreur
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
dir(math)
NameError: name 'math' is not defined

Lorsque vous utilisez from math import * le nom du module math n'est pas défini
directement dans l'espace de noms global. C'est pourquoi la commande dir(math)
génère une erreur.

35/76
5) Commentaires, Aide et modules en Python
Import de modules (3/4)
3ème Manière : Importation de toutes les fonctions d’un module

>>>sqrt(2)
En important toutes les fonctions avec
from math import * vous pouvez utiliser
directement la fonction sqrt sans spécifier le
module
1.4142135623730951

>>> help(abs)
Help on built-in function abs in module builtins: abs(...)
abs(number) -> number
Return the absolute value of the argument.

En important toutes les fonctions avec from math import * vous pouvez
utiliser directement la fonction sqrt sans spécifier le module La commande
help(abs) fournit une documentation détaillée sur la fonction abs sans
spécifier le module. Cela est possible en raison de l'importation de
toutes les fonctions avec
from math import * 36/76
5) Commentaires, Aide et modules en Python
Import de modules (4/4)
La troisième manière représente l’avantage d’accéder directement aux fonctions
mais représente également l’inconvénient:
◦d’encombrement de l’espace de noms réservé et,
◦ la possibilité de conflit entre deux fonctions ayant le même identificateur provenant de
deux modules différents !!!
◦ Il est généralement recommandé d'importer seulement les fonctions nécessaires ou
d'utiliser des alias pour éviter ces problèmes.

Exemple
>>>from math import *
>>>from numpy import *
◦ Les deux contiennent la fonction sqrt , l’une définie pour les réels l’autre sur les tableaux!
◦ Laquelle sera utilisée ????

37/76
5) Commentaires, Aide et modules en Python
Module math
Parmi les fonctions les plus utiles du module math, on trouve :
 Racine carrée : sqrt
 Factorielle : factorial
 Fonctions trigonométriques : cos, sin, tan, asin, acos, atan
 Conversion des angles :degrees, radians
 log, exp : log,log10, log2
 fonctions d’arrondissement : floor, ceil
 troncature : trunc
NB : Le module math stocke aussi la valeur de π et de e.

38
6) Les types sous Python
(1/9) Les types sous Python

Les types Les


élémentaires conteneurs

Non Mutables
Mutables

Non
Ordonnés Ordonnés Ordonnés

Tuples Chaînes de Ensembles


Les listes
caractères Dictionnaires

39
6) Les Types sous Python
(2/9)
Python est un langage dont le typage est automatique. Cela signifie que bien que gérant différents
types, lorsqu'une variable est affectée, l'interpréteur trouvera automatiquement son type.

40/76
6) Les types élémentaires
(3/9)
Un objet ne peut changé ni d’identité ni de type !
Quand un objet n’a plus de nom (nombre de référence nul), il est détruit
automatiquement:
◦ mécanisme automatique de "ramasse miettes", ou garbage collector.

>>> x = 9 x 9
>>> y = x int
>>> y

>>> x = "abc" x
>>> 9 "abc"
int st
y
r

41/76
6) Les types élémentaires
(4/9)
Les types élémentaire intrinsèques (built-in)
◦ Le NONETYPE : seule valeur possible None
◦c’est la valeur retournée par une fonction qui ne retourne rien,
◦ Le type bool : deux valeurs possible True et False (1/0)
◦ Les types numériques int, float, complex :
◦ Le type int x = 898, Le type float x = 8.98
◦ Le type complex z = 8+1j*8

Le type d’un objet détermine :


◦ les valeurs : domaine de définition
◦ les opérations possibles (+, -, /, …)

42/76
6) Les types élémentaires (5/9) Le type entier : <class int>
>>> x=3
>>> y=6
>>> type(x),type(y)
(<class 'int'>, <class 'int'>)
Les opérations arithmétiques +, -, *, **, /, //, %

>>> z=x+y z= x. add (y)


9
>>> z
9
>>> z= x. sub (y)
z=x-y
-3
>>>
18
>>>
x*y x**y # puissance
729

43/76
6) Les types élémentaires
(6/9) Le type entier : <class
int>
>>> pow(x,y) # calcul de x à la puissance y
729
>>> x/y # division réelle
0.5
>>> x//y #quotient de la division entière
0
>>> x%y #reste de la division entière
3
Les opérateurs de comparaison <, <=, !=, ==, >, >=
>>>x==y
False
>>>x>=y
False
>>>x<=y
True
>>>x!=y
True

44/76
6) Les types élémentaires
(7/9) Le type réel: <class
float>
>>> x=12/7; y=4.
>>> x;y
1.7142857142857142
4.0
>>> type(x); type(y)
<class 'float'> <class 'float'>

Les opérations arithmétiques


>>> x+y
5.714285714285714
>>> x-y
-
2.285714285714285
6
>>> x*y
6.857142857142857
>>> x/y
0.42857142857142855
45/76
6) Les types élémentaires
(8/9) Le type réel: <class
float>
>>> x**y
8.636401499375259
>>> x/y
0.428571428571428
55
>>> x//y
0.0
>>> x%y
1.714285
71428571
42
>>>
x=12/5
>>> x
2.4
>>>in
46/76
t(x)#
6) Les types élémentaires (9/9)
Le type booléen : <class bool>
La classe « bool » hérite de la classe « int »

>> x=3 ; y=4 ; z=3


>>> B=x==y >>>int(True)
>>> B 1
False >>>int(False)
>>> E=x<y 0
>>> E
True Les opérations logiques :
>>> B and E and, or, not…
False
>>> B or E
True

47/76
7) Affectation des variables et mots réservés
(1/4)
Une affectation crée un nom (identificateur, variable) qui référence un
objet (les identifiants au format nom sont réservés à
l’interpréteur Python)
C’est l’objet qui porte le type et les données (valeur, pour un objet
numérique).
Un même objet peut être référencé sous plusieurs noms (alias).
>>>x=5 x
>>>y=5
>>>x,id(x),type(x)
y
(5, 505626168, <class 'int'>) 5
>>>y,id(y),type(y) 505626168
(5, 505626168, <class 'int'>)
z

48/76
7) Affectation des variables et mots réservés
(1/4)
Les valeurs de x et y sont 5 dans les deux cas.

Les identifiants (id(x) et id(y)) sont les mêmes, ce qui indique que x et y pointent vers le même objet
en mémoire.

En Python, les petits entiers sont souvent optimisés et réutilisés, d'où le même identifiant pour des
entiers de petite valeur comme 5.

Les types de x et y sont tous deux <class 'int'>, indiquant qu'ils sont de type entier.

En résumé, dans cet exemple, x et y sont des variables de type entier contenant la valeur 5, et en
raison de l'optimisation de Python pour les petits entiers, ils partagent le même objet en mémoire,
comme en témoigne leur identifiant identique.

49/76
7) Affectation des variables et mots réservés
(2/4)
Nom des variables
Les noms de variables sont des noms qu’on choisit assez librement
Quelques règles pour les noms de variables sous Python :

1. Un nom de variable est une séquence de lettres (a à z , A à Z) et de chiffres, qui doit toujours commencer par
une lettre.

2. Les lettres accentuées, les cédilles, les espaces, les caractères spéciaux tels que $, #, @, etc. sont interdits, à
l'exception du caractère _ (souligné).

3. La casse est significative, Attention : Mariem, mariem , MARIEM sont donc des variables différentes. Soyez
attentifs !

4. Prenez l'habitude d'écrire l'essentiel des noms de variables en caractères minuscules (y compris la première
lettre). Il s'agit d'une simple convention, mais elle est largement respectée. N'utilisez les majuscules qu'à
l'intérieur même du nom, pour en augmenter éventuellement la lisibilité, comme dans TableDesMatieres.

50/76
7) Affectation des variables et mots réservés
(3/4)
Assignation
En Python comme dans de nombreux autres langages, l'opération d'affectation est représentée par le signe égal :

>>> n = 7 # donner à n la valeur 7

>>> msg = "Quoi de neuf ?" # affecter la valeur "Quoi de neuf ?" à msg

>>> pi = 3.14159 # assigner sa valeur à la variable pi


Mémoire
@

n 7 en binaire
@ « quoi de neuf » en
msg
binaire…
@
3,14159
Pi
en binaire.
.
.
51
7) Affectation des variables et mots réservés
(4/4)
Mots réservés
En plus de ces règles, il faut encore ajouter que vous ne pouvez pas
utiliser comme noms de variables les 29 « mots réservés » au langage ci-
dessous :

and assert break class continue def


del elif else except exec finally
for from global if import in
is lambda not or pass print
raise return try while yield

52
8) Les opérations d’entrée/sortie (1/4)
Opération d’affichage : print()
Opération d’affichage : print()
>>> print('ceci est un message')
ceci est un message
>>> print("ceci est un message")
ceci est un message
>>> print("ceci un message \n
avec retour à la ligne")
ceci un message
avec retour à la ligne
>>> print(""" Ceci est un message
sur plusieurs lignes
avec beaucoup d'espaces et des
sauts de ligne""")
Ceci est un message
sur plusieurs lignes
avec beaucoup d'espaces et des
sauts de ligne

53/76
8) Les opérations d’entrée/sortie (2/4)
Opération d’affichage : print()
>>> x=10;y=10;z=10;
>>> print (x, y, z, sep=' ');
10 10 10
>>> print (x, y, z, sep=';');
10;10;10
>>> print (x, y, z , sep='\n');
10
10
10
>>> print ('x =',x,'y =',y, 'z =', z, sep= ' ' , end =';');
x = 10 y = 10 z = 10;

sep: désigne le caractère de séparation


end: désigne le caractère de marquage de fin

54/76
8) Les opérations d’entrée/sortie (3/4)
Opération de lecture : input()
Opération de lecture : input()
>>> x=input("saisir : ")
Saisir : 3498392483
>>> print("la saisie",x, "est de type",type(x))
la saisie 3498392483 est de type <class 'str'>

55/76
8) Les opérations d’entrée/sortie (4/4)
Opération de lecture : input()
Il est toutefois possible de convertir la quantité saisie en entier, réel ou même booléen au moyen de
int(), float(), et bool()
>>> x=int(input("saisir un entier"))
saisir un entier 12
>>> print(x, "de type", type(x))
12 de type <class 'int'>
#Ou encore en réel
>>> x=float(input("saisir un réel"))
saisir un réel 23
>>>>>> print(x, "de type", type(x))
23.0 de type <class 'float'>

56/76
9)Structures conditionnelles & Itératives
Principe d’indentation
De manière générale, un bloc contient tout le code avec une même indentation.

ceci est le bloc principal


if condition:
bloc 2
if condition2:
bloc 3
fin du bloc 2
fin du bloc 1

44
9)Structures conditionnelles &
Itératives Les structures
conditionnelles (1/4)
Syntaxe: (Attention à
l’indentation !!! )
if condition1:
instruction 1
elif L'indentation après le ":" est obligatoire.
condition2:
instruction 2
elif condition3:
instruction 3
instruction 4
else :
instructio
n 5
instructio
n 6 58/76
9)Structures conditionnelles & Itératives
Les structures conditionnelles (2/4)
Ecrire un programme qui saisit un nombre et teste si l’entier est nul, pair ou
impair

59/76
9)Structures conditionnelles & Itératives
Les structures conditionnelles (3/4)
Application: Résolution d’équation de 2nd degré
Ecrire un programme qui saisi trois entiers a, b et c et résout dans l’ensemble C l’équation
de second degré ax2+bx+c= 0.
On discutera tous les cas possibles pour a, b et c !

60/76
9)Structures conditionnelles &
Itératives Les structures
conditionnelles (4/4)

61/76
9)Structures conditionnelles & Itératives
Les structures itératives : Boucle For
(1/5)
Syntaxe:
for i in range(a): for i in range(a,b,c):
instructions instructions

for i in range(a,b): For i in iter:


instructions instructions

range (a): désigne l’intervalle [0,a[


range (a,b): désigne l’intervalle [a,b[
range (a,b,c): désigne l’intervalle [a,b[ par pas entier égal à c
Le quatrième « iter » cas est un parcours par élément que nous pourrons effectuer avec les itérables tels
que les listes, les tuples, les chaînes de caractères ou même les fichiers…

62/76
9)Structures conditionnelles &
Itératives Boucle For (2/5)
Exemples:

(a) (b)

(d)
(c)

63/76
9)Structures conditionnelles & Itératives
Boucle For (3/5)
L’instruction for in : permet d’itérer sur le contenu d’une liste, d’un tuple, les caractères d’une chaîne ou même
un fichier …

>>>L=list(range(5)) >>> a = [‘Zero', ‘Un', ‘Deux',


>>>L ‘Trois', ‘Quatre']
[0,1,2,3,4]
>>>L1=[]
>>>for k in >>> for i in range(len(a)):
L: print(i, a[i])
L1.a ...
ppen
d(k* 1 Zero
*2)
>>>ch=”azerty” 2 Un
>>>L1
>>>ch1='' 3 Deux
L1[0,
>>>for1,
c 4,
in ch:
9, 16] 4 Trois
ch1=ch1+c*2 5 Quatre
aazzeerrttyy

64/76
9)Structures conditionnelles & Itératives
Boucle For (4/5)
#utilisation de l’instruction « continue »
for num in range(2, 10):
if num % 2 == 0:
print("Un nombre paire", num)
continue
print("Un nombre impaire", num)
#utilisation de l’instruction « break» et « else »
for n in range(2, 10):
print("n=",n)
for x in range(2, n):
print("x=",x)
if n % x == 0:
print(n, ‘=', x,
'*', n//x)
break
else: # exécuté à la fin normale de la boucle
print(n, ‘est un nombre premier')
65/76
9)Structures conditionnelles & Itératives Boucle For
(5/5)
Construction de listes par compréhension:

>>> L= [i for i in range(1,21,2)]


>>>L
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>>L=[(i,j) for i in range (1,5) for j in range (1,5)]
>>>L
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3,
1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)]
>>>L=[(i,j) for i in range (1,5) for j in range (1,5) if (i+j) %2
==0]
>>>L
[(1, 1), (1, 3), (2, 2), (2, 4), (3, 1), (3, 3), (4, 2), (4, 4)]

66/76
9)Structures conditionnelles & Itératives
Boucle tant que
Syntaxe:
 Remarque:
while condition: Il existe l’instruction « pass » pour rien faire
instructions1
 Exemple:
else: while True:
instructions2 pass # Busy-wait pour une
interruption clavier (Ctrl+C) ...
Exemple :
i=1
while i<=5:
print(i)
i +=1
else:
print("Fin
boucle")
67/76
9)Structures conditionnelles & Itératives Utilisation du break, continue, pass
Ces trois instructions permettent à l’utilisateur d’avoir un plus grand contrôle de la boucle.
 Comme en C, l’instruction « break » permet de sortir de la boucle
instantanément et de passer à la suite. Elle annule le passage dans la boucle else.
 L’instruction « continue » saute au début de la boucle la plus imbriquée.
« pass » : Si à un endroit on a syntaxiquement besoin d'un bloc mais qu'il n'y a rien à
faire, on peut utiliser l'instruction pass, qui justement ne fait rien
 Exemple

if condition:
pass
else:
instruction .
..

55
Application: Jeu de devinette (1/2)
Ecrire un programme devinette qui permet de deviner un entier généré par le
programme de façon aléatoire (compris entre 1 et 100), on indiquera à
l’utilisateur si l’entier introduit est plus grand ou plus petit que l’entier
caché.
Un bravo sera affiché lorsqu’il aurait deviné l’entier, on lui indiquera
également au bout de combien de tentatives il est parvenu à trouver le
nombre.
Remarque:
pour générer un entier aléatoire il faut importer le package random, puis utiliser
la fonction randint(a,b) où a et b désigne l’intervalle [a,b] dans lequel l’entier
aléatoire sera tiré.

69/76
Application: Jeu de devinette
(2/2)
print("Jeu de devinette")
from random import *
c=randint(1,100)
x=int(input("devinez un entier entre 1 et 100: "))
i=1
while x!=c:
if x<c:
print("votre entier est plus petit que
l'entier caché")
else:
print("votre entier est plus grand que
l'entier caché")
i+=1
x=int(input("devinez un entier
entre 1 et 100:
"))
print("Bravoooo, vous avez deviné au bout de ", i,
"tentatives")

70/76
Application 2 (1/2)
Modifier le programme précédant en ajoutant 3 niveaux de difficulté (difficile (4
tentatives), Moyen (7 tentatives) ou facile (12 tentatives))
Le joueur choisi un niveau de difficulté, un nombre d’essai lui est alors
attribué, si ce dernier épuise ses essais il aurait échoué et un message sera
affiché.
Remarque: On lui indiquera à chaque fois le nombre de tentatives restantes

71/76
Application 2
(2/2)

72/76

Vous aimerez peut-être aussi