Initiation à la
programmation python
Séance visioconférence 1 Date : 24/10/2020 à 15h
Enseignante Tutrice : Mme Mansouri L.
Partie abordée :
Module 1:Introduction générale et les concepts de base
Module 2: les structures de contrôle
Module 3 : Les fonctions
Module 4: Les séquences
Contenu du module 1: introduction générale et
concepts de base
Présentation de python :
▪ c’est quoi python
L’affichage et la saisie des données
▪ Les caractéristiques de python
Les variables
▪ Ce qu’on peut faire avec
▪ Mode interactif et mode script
Installation de Python 3 (sur windows)
La calculatrice Python
▪ L’affectation
▪ Les types de données
▪ Les fonctions de conversion
des types
Quelques règles de syntaxe python
Python?
créé en 1989 par Guido van Rossum, aux Pays-Bas.
La première version publique publiée en 1991.
La dernière version de Python :la version 3.9
Python 3 n'est pas rétro-compatible avec python2 : Il a
rompu la compatibilité avec les versions antérieures!
Les caractéristiques de python
Il est multiplateforme : C’est-à-dire qu’il fonctionne sur de nombreux systèmes
d’exploitation : Windows, Mac OS, Linux, Android, iOS, depuis les mini-ordinateurs
Raspberry Pi jusqu’aux supercalculateurs.
Il est gratuit
La syntaxe de Python est très simple et, combinée avec des types de donnée
évolués (listes, dict,...), conduit à des programmes à la fois compacts et lisibles.
C’est un langage interprété
Python n'est pas très rapide (car interprété), mais il y a des librairies C disponibles
comme Numpy qui permettent de faire des programmes en langage python qui
sont très rapides et efficaces en termes de mémoire.
Extensible : Python a déjà une multitude de librairies et de modules par défaut..
De plus, il est toujours possible d’en développer pour ses propres besoins.
Il est orienté objet
Il est très utilisé en bio-informatique et plus généralement en analyse de données.
Utilisation de l’interpréteur comme simple calculatrice
6
>>> 22 / 3
7.333333333333333
>>> 22//3
7
>>> -6 // 5
-2
>>> 12.8 // 1.1
11.0
>>> 13 % 3
1
Saisie de données au clavier
7
La fonction input
Elle provoque une interruption dans le programme courant où l’utilisateur est invité à
entrer des données au clavier et à terminer avec <Enter>. L’exécution du programme
se poursuit alors et la fonction fournit en retour les valeurs entrées par l’utilisateur.
La fonction input est soit, sans paramètre ou soit, avec un seul paramètre, une chaîne
de caractères, lequel est un message explicatif destiné à l’utilisateur.
>>> nom = input("Entrez votre nom (entre guillemets) :")
>>> print (nom)
La chaîne de caractères est entrée entre des apostrophes ou des guillemets.
Identificateur de variable
8
Règles à respecter pour les noms de variables
Une séquence de lettres (a → z, A → Z) et de chiffres (0 à 9) qui doit toujours
commencer par une lettre. Le symbole _ est considéré comme une lettre.
Aucune lettre accentuée, cédille, espace, caractère spécial à l’exception
du caractère souligné _.
Les minuscules et les majuscules sont des lettres différentes.
Exemple :
Identificateurs valides :Variable_entiere, entier1, mot_en_francais
Identificateurs invalides : 1er_entier,nom.2, nom de variable, deuxième_entier,a-b.
Éviter d’utiliser le symbole _ comme 1er caractère car il peut être utilisé pour
définir des entités spéciales pour Python.
9
Les 28 mots réservés ci-dessous ne peuvent être utilisés comme nom de
variable :
Attention :
Bien que la longueur des identificateurs ne soit plus un problème dans les
langages de programmation d’aujourd’hui, utilisez des noms de taille
raisonnable ayant une signification.
Il peut exister des limites qui peuvent changer d’un interpréteur à l’autre.
Opérateur d’affectation =
10
Syntaxe :
identificateur_de_variable = expression
Exemple :
>>> x1 = 8
>>> x2 = x1 - 5
>>> x1 = x1 + 1
>>> print (x1, x2)
9 3
>>>
Note :
Pour définir le type des variables avant de pouvoir les utiliser, il suffit
d’assigner une valeur à un nom de variable pour que celle-ci soit
automatiquement créée avec le type qui correspond le mieux à la valeur
Publicité
fournie. Python possède donc un typage dynamique et non un typage
statique .
Opérateurs d’affectation +=, -=, =, /=, %=, *=, //=
11
L’évaluation d’une expression et une affectation sont combinées.
Équivaut à x = x ** 2.
Exemple :
>>> x = 5
>>> x **= 2
>>> x
25
>>> x %= 3
>>> x
1
>>> x //= 2
>>> x
0
>>>
Note :
Python ne comporte pas les opérateurs ++ et --.
Types de données
12
Type « int »
Les entiers ordinaires de Python correspondent aux entiers standards.
La plupart des machines (32 bits) sur lesquelles s’exécute Python permettent de
coder tous les entiers entre -231 et 231 – 1, i.e. -2 147 483 648 et 2 147 483 647.
Normalement, les entiers sont représentés en format décimal en base 10, mais
on peut aussi les spécifier à l’aide de leur représentation en base 8 ou 16.
Type «float»
Les données ayant un point décimal ou un exposant de 10.
Ex. :3.14159
-12. 13 2e13
0.3e-11
Cela permet de manipuler des nombres positifs ou négatifs compris entre 10-308
et 10308 avec une précision de 12 chiffres significatifs.
Type « str »
13
Une chaine de caractères (str) est une séquence de caractères, délimitée
par des guillemets dans sa forme littérale (simple ' ou double "). On peut
généralement utiliser indifféremment l'un ou l'autre type de guillemets
Exemples : ch1="python"
ch2='cours python'
Types de données élémentaires
14
Type « bool »
Les valeurs booléennes True ou False constituent un cas particulier des entiers.
Dans un contexte numérique tel qu’une addition avec d’autres nombres, True est
traité comme un entier valant 1, et False a la valeur 0.
Type « complex »
Cela représente des nombres complexes de la forme a + b j où
a et b sont des réels en virgule flottante, a représente la partie
réelle, b la partie imaginaire et j2 = -1.
Exemples :
6.25 + 2.3j
-4.37 + 13J
0 + 1j
1 + 0j
Fonctions de conversion des types
Il est possible de convertir explicitement une donnée d'un type vers un autre, en
utilisant des fonctions prédéfinies. (dites, "fonctions de transtypage") :
la fonction str() : convertit une variable en chaîne de caractères.
la fonction int() : convertit une variable en nombre entier.
la fonction float() : convertit une variable en nombre réel (encore appelé nombre à
virgule flottante).
La foncion complex() : convertit en complex
QUELQUES RÈGLES DE SYNTAXE PYTHON
▪ Les limites des instructions et des blocs sont définies par la mise en page .
▪ Un commentaire Python commence toujours par le caractère spécial #.
▪ Instruction composée : en-tête, double point, bloc d'instruction
Exemple
▪ Les blocs d'instructions sont toujours associés à une ligne d'en-tête contenant une instruction bien
spécifique (if, elif, else, while, def, etc.) se terminant par un double point.
▪ Les blocs sont délimités par l'indentation : toutes les lignes d'un même bloc doivent être indentées
exactement de la même manière (c'est-à-dire décalées vers la droite d'un même nombre d'espaces).
16
Contenu du module 2: Les structures de contrôle
Les structures conditionnelles
Les structures itératives
▪ boucle while
▪ boucle for
Rupture des séquence
▪Break
▪ continue
La structure complète if
if condition1:
traitement1
elif condition2:
traitement2
elif condition3:
traitement3
...
else:
traitement4
Les structures itératives
La boucle while :
while cond :
instruction 1
...
instruction n
Les structures itératives
La boucle for :
for x in ensemble:
instruction 1
...
Publicité
instruction n
for x in range (val_min,val_max,nbre_pas)
instruction 1
...
instruction n
while – else/ for - else
Les boucles while et for peuvent posséder une clause else qui ne s’exécute que si la
boucle se termine normalement, c’est-à-dire sans interruption :
Exemple :
total_sum = 0
a = int(input("donner une valeur:"))
while a != 0:
total_sum += a
if total_sum >= 21:
print('Total sum is', total_sum)
break
a = int(input("donner une somme :"))
else:
print('Total sum is less than 21 and is equal to', total_sum, '.')
L’instruction break
L’instruction break permet de sortir immédiatement de la boucle for ou while
en cours contenant l’instruction
for x in range(1, 11):
if x == 5:
break
print("x= ",x)
La boucle sera interrompue à la valeur
de x = 5 et on aura l’affichage de ces
valeurs seulement :
x =1
x=2
x=3
x=4
L’instruction continue
L’instruction continue passe immédiatement à l’itération suivante
de la boucle for ou while en cours contenant l’instruction et
reprend à la ligne de l’en-tête de la boucle
for x in range(1, 7):
if x == 5:
continue
print("x= ",x)
On aura cet affichage :
x=1
x=2
x=3
x=4
x=6 # la boucle a sauté la valeur 5
Contenu du module 3: Les fonctions
1. Définition et syntaxe
2. Appel d’une fonction
3. Portée des variables
4. La fonction lambada
Syntaxe et déclaration
def nomDeLaFonction(liste de paramètres):
Remarques :
...
bloc d'instructions
...
▪ Le bloc d’instructions est
obligatoire. S’il est vide, on
emploie l’instruction pass.
▪ La valeur de retour est définie
en utilisant le mot-clé return.
▪ On peut définir des valeurs
d’argument par défaut
▪ On peut retourner plusieurs
valeurs.
Exemples
def sum(i1, i2=10):
result = 0
for i in range(i1, i2 + 1):
result += i
return result
def Ordre(number1, number2):
if number1 < number2:
return number1, number2
else:
return number2, number1
Appel d’une fonction
Variable=nom_fonction(liste_param_reel);
mécanisme:
La portée des variables
La portée d’une variable est la partie du programme où la variable peut
être utilisée et y accéder.
Une variable créée à l’intérieur d’une fonction est appelée une variable
locale.
Les variables locales ne sont accessibles que dans une fonction.
La portée d’une variable locale commence à partir de sa création et
continue jusqu’à la fin de la fonction qui contient la variable.
En Python, on peut également utiliser des variables globales.
Imbrication des fonctions
Il est possible de définir une fonction dans une autre fonction. Dans ce cas, elle est locale à la fonction, elle
n’est pas visible à l’extérieur.
30
La fonction lambada
▪ Les lambdas Python sont de petites fonctions anonymes (essentiellement utilisé dans les
calculs mathématiques).
▪ des fonctions extrêmement courtes car limitées à une seule instruction.
▪ pas de return, l'expression est automatiquement retournée
▪ pas d'instructions, seulement une expression (par exemple : for, if, while ne sont admis ! )
Syntaxe
Exemples:
lambda arg1, arg2,… : instruction de retour
F(x)=x2
F(x,y)=x2+
Publicité
y
F=lambda x: x**2
Print(F(3))
F=lambda x, y : x**2 + y
Print(F(3,5))
9
14
31
Contenu du module 4: Les séquences
1. Les chaines
2. Les listes
3. Les tuples
Une séquence est un conteneur ordonné d’éléments indexés par des entiers
indiquant leur position dans le conteneur.
Un objet mutable est un objet qui peut être modifié, dont on peut changer les
propriétés une fois qu’il a été défini.
Les types immutables : bool, int, str, bytes, tuple, range et frozenset .
Les types mutables : Tous les autres types, les listes, les dictionnaires, ou les
instances de vos propres classes.
Opérations communes à toutes les séquences
La notation en slice
La notation en slice permet d’omettre certaines valeurs.
S[:b] # de l’indice 0 jusqu’à b
S[a:] # de l’indice a jusqu’à la fin
S[:] # toute la séquence
S[::p] # tous les p termes de la séquence du début à la fin
S[-1:-len(S)-1:-1] # la séquence renversée
Exemple de slicing
s = "Rayons-X"
s = "Rayons-X"
Exemple
s = "Rayons-X"
print(s[1:4]) # de l'index 1 compris à 4 non compris : 'ayo'
print(s[-2:] ) # de l'index -2 compris à la fin : '-X'
print(s[:3]) # du début à l'index 3 non compris : 'Ray'
print(s[3:]) # de l'index 3 compris à la fin : 'ons-X'
print(s[::2]) # du début à la fin, de 2 en 2 : 'Ryn-'
Les chaines de caractères
Opérations sur les chaines
• Longueur :
s = "abcde"
len(s) # affiche 5
• Concaténation:
s1 = "abc"
s2 = "defg"
s3 = s1 + s2 # s3 sera égale à 'abcdefg'
• Répétition :
s4 = "bien! "
s5 = s4 * 3
s5= 'bien! bien! bien! '
Quelques méthodes sur les chaines
méthode
description
lower()
Mets la chaîne en minuscules
upper()
prmet de mettre une chaîne de
caractères en majuscules
capitalize()
Mets la 1ere lettre de la chaine en
majuscules
replace(old, new) Remplace une sous-chaine old par
une sous-chaine new
strip(), lstrip(),
rstrip()
strip() supprime les espaces
éventuels en début et en fin de
chaîne. lstrip() enlève les espaces
éventuels seulement en début de
chaîne tandis que rstrip() enlève les
espaces éventuels en fin de chaîne.
Exemple
prenom = "LAMIA"
prenom_m = prenom.lower()
print(prenom_m)# affiche lamia
prenom = "lamia"
prenom_m = prenom.upper()
print(prenom_m)# affiche LAMIA
prenom = "lamia"
prenom_m = prenom.capitalize()
print(prenom_m)# affiche Lamia
mot1 = "crime"
mot2 = mot1.replace('im', 'is')
print(mot2)#affiche crise
titre1 = " Cours Python "
titre2 = titre1.strip()
print(titre2)
find(x)
startswith()
endswith()
Cette méthode fait exactement la
même chose que index(y) sauf
que si elle ne trouve pas la sous-
chaîne, elle retourne -1
retourne True si la chaîne
commence par la sous-chaîne
passée en argument. Sinon, elle
retourne False.
retourne True si la chaîne se
termine par la sous-chaîne passée
en argument. Sinon, elle
retourne False.
phrase ="J'ai trouvé une chaine."
mot = 'porte'
indice = phrase.find(mot)
Publicité
print(indice)
phrase = "Python est un langage."
mot = phrase.startswith("Python")
print(mot)#affiche True
phrase = "Python est un langage."
mot = phrase.endswith("lapin")
print(mot)# affiche False
Les listes
Une liste est une collection ordonnée et modifiable et dynamique d’éléments
éventuellement hétérogènes.
Syntaxe :
Nom-liste =[élement1, élement2, élément3,..]
Exemples :
couleurs = ['blanc','rouge','noir','vert']
Liste de listes
Exemple : Considérons le tableau suivant :
5
3
57
2
12
1
On peut stocker les éléments de ce tableau dans une liste de la manière suivante :
tableau=[[5,7,12],[3,2,1]]
L’élément 3 de ce tableau est l’élément d’index 0 de l’élément d’index 1 du tableau.
tableau[1][0] renvoie l’élément d’index 0 de l’élément d’index 1 du tableau
(l’élément d’index 1 du tableau est la liste [3,2,1]) c'est-à-dire 3.
Exemples :
tab=[[5,57,12],[3,2,1]]
print(tab[0]) #affiche [5, 57, 12]
print(tab[1]) # affiche [3, 2, 1]
print(tab[2]) # erreur ,on n'a pas l'indice 2
print(tab[1][0]) # affiche 3
Les listes en compréhension
Les listes en compréhension sont des listes dont le contenu est défini
par filtrage du contenu d'une autre liste selon un principe analogue à celui de
la définition en compréhension de la théorie des ensembles.
Exemples :
• Copie de liste
l1 = [1, 2, 3]
l2=[x for x in l1]
• Filtrage avec un test
from math import sqrt
entiers=[1,-2,3,4,-5,6,7,8,-9,10]
positifs=[x for x in entiers if x>=0]
print(positifs)
racine=[sqrt(x) for x in positifs]
print(racine)
Les Tuples
Un tuple est un ensemble d’éléments comparable aux listes mais qui, une fois
déclaré, ne peut plus être modifié.
Il s’agit d’une séquence immuable d’objets indicés qui peuvent être des nombres
entiers ou décimaux, des chaînes de caractères, des listes, des tuples etc…
Utilités :
▪ Le tuple permet de renvoyer plusieurs valeurs lors d’un appel de fonction.
▪ protégée en écriture: les données transmises par la fonction input() ne seront pas
modifiées en cours d’exécution par un autre programme.
Syntaxe et déclaration
Un tuple est un ensemble d’éléments séparés par des virgules.
Exemples :
tuple1=(1, "python",2.5)
C=(5,)
Print(type(c)) # affiche <class ‘tuple’>
C=(5)
Print(type(c)) #affiche <class ‘int’>
Opérations sur les tuples
▪ Pas des méthodes remove() ou append()
•L’instruction in
Mais il est possible d’utiliser l’instruction in pour faire un test d’appartenance
Exemple :
tuple_1 = (5, 2, 25, 56)
Print (2 in tuple_1) # affiche True
•La fonction len()
Il est également possible d’utiliser la fonction intégrée len() pour déterminer la
longueur d’un tuple.
Le parcours d’une séquence s
46
for membrein s:
instruction
instruction
. . .
instruction
for indicein range(len(s)):
instruction
instruction
. . .
instruction
for indice, membre in enumerate(s):
instruction
instruction
. . .
instruction
A chaque itération, membre contient un élément de la séquence s;
le bloc d’instructions est exécuté avec l’élément membre.
A chaque itération, indice contient l’indice d’un élément de la séquence s;
le bloc d’instructions est exécuté avec l’indice d’un membre.
On peut aussi parcourir séquentiellement une séquence s par
élément et par indice.
A chaque itération,indice et membre réfèrent un élément de la séquence s;
le bloc d’instructions est exécuté avec l’élément membre et l’indice de ce
membre.