Vous êtes sur la page 1sur 17

Licence 2 RI & RT & II Programmation en Python

Ousmane SADIO
1. Introduction à la programmation avec Python 1
ousmane.sadio@ucad.edu.sn

1. Introduction à la programmation avec


Python

2018-2019
INSTITTUT SUPERIEUR D’INFORMATIQUE
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 2
ousmane.sadio@ucad.edu.sn

❑ Popularité de Python
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 3
ousmane.sadio@ucad.edu.sn

❑ Pourquoi Python?
Python est un langage puissant, à la fois facile à apprendre et riche en possibilités. Sa
syntaxe est simple, concise et efficace. On peut résumer Python en quatre points forts :
→ Productivité : produire rapidement du code compréhensible
→ Qualité : code évolutif et maintenable, Programmation Orientée Objet (POO)
→ Portabilité : disponibilité de l’interpréteur Python sur de nombreuses plates-formes
→ Intégration : capable d’intégrer des composants écrits dans un autre langage
Quelques caractéristiques intéressantes :
▪ Code très lisible, et très bien structuré : on “code ce qu’on pense”
▪ Langage interprété, c.à.d. pas de phase de compilation explicite
▪ Pas de déclarations de types, gestion automatique de la mémoire
▪ Multiparadigme : programmation orienté objet, procédural et fonctionnel
▪ Librairie standard et les paquetages additionnels, donnent accès à une grande
variété de services
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 4
ousmane.sadio@ucad.edu.sn

❑ Domaines d’application
Les domaines d'application naturels de Python incluent entre autres:
▪ L'apprentissage de la programmation objet
▪ Les scripts d'administration système ou d'analyse de fichiers textuels
▪ Tous les développement liés à l'Internet et en particulier au Web: scripts CGI,
navigateurs Web, sites Web, moteurs de recherche…
▪ L'accès aux bases de données
▪ La réalisation d'interfaces graphiques utilisateurs
▪ Le calcul scientifique et l'imagerie
▪ Le traitement de données : datascience
▪ Les systèmes embarqués et objets connectés : ordinateurs monocartes (Raspberry
Pi, Beaglebone, …)
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 5
ousmane.sadio@ucad.edu.sn

❑ Syntaxe
Les programmes sont écrits pour être lus par des humains, il est nécessaire alors de
rendre les programmes faciles à lire et évidents. La communauté Python a ses propres
standards sur ce à quoi doit ressembler le code, codifiés dans le PEP8. Ainsi un
programme doit avoir :
Le Zen de Python
→ Une syntaxe simple à écrire et à lire Préfère :
→ L’indentation est obligatoire : il est recommandé la beauté à la laideur,
d'utiliser 4 <espace> par niveau d'indentation et pas l’explicite à l’implicite,
de caractère <tab>. le simple au complexe,
→ Pas de points-virgules ni d’accolades et le complexe au compliqué,
le déroulé à l’imbriqué,
l’aéré au compact
Prend en compte la lisibilité
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 6
ousmane.sadio@ucad.edu.sn

❑ Variables
En python tout est objet… par conséquent dans les programmes on sera amené à
manipuler de nombreux objets; et le moyen pour Python de manipuler ces objets est de
leur donner un nom par l’intermédiaire de variables. On dit que les variables référencent
les objets.
Un nom de variable en python débute par une lettre majuscule A–Z ou minuscule a-z, un
underscore _, suivie de zéro, un ou plusieurs lettres, chiffres ou soulignés.
Pour créer (ou déclarer) une variable, il suffit d’affecter son nom avec une valeur.
>>> age = 17
On pourra ainsi manipuler cet objet, le nombre 17, par l’intermédiaire de cette variable.
En python, il est très important de donner de bon noms de variables, c.à.d. des noms de
variables explicites.
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 7
ousmane.sadio@ucad.edu.sn

❑ Mots-clés réservés
Les mots-clés ci-contre sont réservés et ne peuvent donc pas être utilisés pour définir
vos propres identifiants (variables, noms de fonction, classes...).
False def if raise
None del import return
True elif in try
and else is while
as except lambda with
assert finally nonlocal yield
break for not
class from or
continue global pass
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 8
ousmane.sadio@ucad.edu.sn

❑ Typage des données Python


Python est un langage à typage fort dynamique.
→ Dynamique : un langage est typé dynamiquement si la déclaration des variables se
fait sans spécifier le type.
→ Fort : un langage est fortement typé si :
(1) La compilation ou l'exécution peuvent détecter des erreurs de typage.
(2) Les conversions implicites de types sont formellement interdites.
En d’autres termes, le typage est lié à l’objet par conséquent l’objet va garder le même
type durant toute l’exécution du programme; on parle de typage fort. Par contre, en cours
d’exécution du programme, la variable peut changer de type selon le type de l'objet
référencé; on parle de typage dynamique.
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 9
ousmane.sadio@ucad.edu.sn

❑ Types de base
Python propose 4 types simples de base. Ils sont dits simples car permettant de stocker
une seule donnée par variable. On obtient le type d’une variable avec la fonction type.
→ Entier : les nombres entiers sont le type int.
>>> type(4)
<class 'int'>
→ Flottant : les nombres à virgule flottante sont le type float.
>>> type(1.567643)
<class 'float'>
→ Booléen : c’est une variable à deux états (True ou False) de type bool.
>>> type(True)
<class 'bool'>
→ Nombre complexe : on utilise le suffixe j pour les variable de type complex.
>>> type(2+3j)
<class 'complex'>
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 10
ousmane.sadio@ucad.edu.sn

❑ Conversion de type sur les nombres


Convertir explicitement un entier en flottant :
>>> float(5)
5.0
Convertir explicitement un flottant en entier (troncature) :
>>> int(3.7)
3
>>> int(-3.7)
-4
Convertir explicitement un flottant en entier (arrondi) :
>>> round(3.7)
4
Si un opérateur arithmétique est utilisé avec des opérandes de types différents, Python va
automatiquement convertir l’opérande dont le type est plus “étroit” vers le type le plus “large”.
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 11
ousmane.sadio@ucad.edu.sn

❑ Opérateurs de base
Les opérateurs mathématiques de base sont :
→ Opérateurs classiques : + - * /
→ Division entière tronquée : //
→ Puissance : **
→ Modulo (reste de la division entière) : %
→ Valeur absolue : abs
Les opérateurs de pré/post incrémentation/décrémentation ++ et -- n'existant pas sous
Python, on utilisera += 1 et -= 1.
>>> age = 17
>>> age += 1
>>> age
18
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 12
ousmane.sadio@ucad.edu.sn

❑ Opérateurs de comparaison
C’est des opérateurs qui retournent les valeurs True ou False de type booléen. Python
offre notamment les opérateurs suivants :
→ est égal à : ==
→ est différent de : !=
→ est inférieur à : <
→ est supérieure à : >
→ est inférieur ou égal à : <=
→ est supérieure ou égale à : >=
>>> 3 == 4
False
>>> 3 < 4
True
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 13
ousmane.sadio@ucad.edu.sn

❑ Opérateurs logiques
Python permet de réaliser certaines opérations logiques citées ci-après selon leur ordre
de priorité.
→ le “non” logique (la négation) : not
→ le “et” logique (la conjonction) : and
→ le “ou” logique (la disjonction) : or
Python permet de chaîner les comparaisons. On peut par exemple définir la condition :
10 < age < 20 qui est équivalente en Python à age > 10 and age < 20.
>>> age = 17
>>> age>10 and age<20
True
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 14
ousmane.sadio@ucad.edu.sn

❑ Chaines de caractères
Pour écrire une chaîne de caractères, il faut l’écrire entre deux apostrophe ' ou entre
deux guillemets ".
>>> type("michel")
<class 'str'>
→ Concaténation
La concaténation consiste à regrouper plusieurs chaînes en une seule, en mettant la
seconde à la suite de la première et ainsi de suite.
>>> mot1 = "hello"
>>> mot2 = "world"
>>> mot1 + " " + mot2 + " !"
Hello world !
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 15
ousmane.sadio@ucad.edu.sn

❑ Chaines de caractères : formatage


Le formatage permet de composer des chaînes de caractères incorporant des données
de types entier, flottant et chaîne.
→ La méthode format
La méthode .format définis dans la chaîne entre accolades { } , les indicateurs de format
permettent d’afficher les variables.
>>> nom = "Timmy"; age = 12
>>> "Je m’appelle {0} et j’ai {1} ans".format(nom, age)
Je m’appelle Timmy et j’ai 12 ans
→ La méthode f string
La lettre f est placé devant la chaine de caractère, puis on met entre accolades { } les
variables que l’on souhaite substituer.
>>> nom = "Timmy"; age = 12
>>> f"Je m’appelle {nom} et j’ai {age} ans"
Je m’appelle Timmy et j’ai 12 ans
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 16
ousmane.sadio@ucad.edu.sn

❑ Chaines de caractères : fonctions et méthodes de chaînes


Quelques fonctions :
len(chaine) retourne le nombre de caractères de chaîne
str(nombre) convertit un nombre en chaîne
Quelques méthodes :
.find(sch,debut,fin) retourne l'indice du début de la sous-chaîne sch. Si sch n'est pas
trouvée, .find retourne -1
.count(chaine,debut,fin) retourne le nombre d'occurences de la sous-chaîne sch
.replace(s1,s2,nb) : remplace toutes (ou seulement nb) occurences de s1 par s2
.upper() et .lower(): convertit tous les caractères respectivement en majuscules,
minuscules, ou inverse la casse
Licence 2 RI & RT Programmation en Python
Ousmane SADIO
1. Introduction à la programmation avec Python 17
ousmane.sadio@ucad.edu.sn

❑ Instructions d’entrées/sorties
Les instructions d’entrées/sorties permettent à un programme Python d’interagir avec
l’utilisateur.
→ Ecrire sur la sortie standard
La fonction print() permet d'afficher la valeur d'une ou plusieurs variables. Cette fonction
print est dédiée à l'affichage uniquement.
>>> print("Hello world !")
Hello world !
→ Lire au clavier
La fonction input() affiche une invite et récupère les caractères saisis par l’utilisateur.
Cette fonction renvoie la chaîne de caractères contenant la saisie de l’utilisateur.
>>> nom = input("Entrez votre nom: ")
>>> age = int(input("Entrez votre age: "))