Sie sind auf Seite 1von 42

Cours de Python

adnan.souri@gmail.com 1
Plan du cours Découvrir Python
1. Variables, Types, Affectation, Opérateurs
2. Les entrées / sorties standards
3. La sélection
4. L’itération
5. Programmation modulaire (les fonctions)
6. Les séquences (Chaines, Listes, Tuples, Ensembles)
7. Les dictionnaires
8. Les fichiers de données

2
Découvrir PYTHON

Les variables et l’affectation

• Pas de délimiteurs de programme (debut, fin, { }, main, …)


• En python, on commence un code source par la 1ère instruction !
• On n’a pas besoin de déclarer une variable !
• C’est la première affectation qui va s’en charger !
• La variable prend alors le type de la valeur affectée

– Exemples :
x = 7
Création d’une variable qui va porter le nom « x » de type « int » puisqu’elle a
la valeur 7 entière.
a = ‘r’
Création d’une variable qui va porter le nom « a » de type « str » puisqu’elle a
la valeur ‘r’ caractère.

3
Découvrir PYTHON

Les types

• Les types simples


int float str bool

• Les types composites


list tuple dict set

• On peut avoir le type d’une variable grâce à la fonction prédéfinie : type( )

4
Algorithmique de base

Affectation multiple

• On peut réaliser dans certains cas des affectations multiples.

• C’est-à-dire : on affecte plusieurs valeurs à plusieurs variables à la fois.

• On utilise des virgules pour la séparation des variables ainsi que pour la
séparation des valeurs.

• Exemple :
>>> x, y, z = 20, 7, 13

5
Algorithmique de base

Les opérateurs

Opérateur en PYTHON Désignation


+, –, *, / Opérations arithmétiques classiques
// Quotient de la division entière
% Modulo
** Puissance
<, >, <=, >= Inf, sup, inf ou égal, sup ou égal
= =, != Egal, différent
and, or, not Opérateurs logiques
+=, – =, *=, /=, //=, %= Affectation élargie
in Opérateur d’appartenance

6
Algorithmique de base

Les commentaires

• Pour écrire un commentaire on utilise le caractère # (dièse) au début de


la ligne et on le fait suivre par le texte commentaire.

• Exemple :
>>> x = 7 # c’est une instruction d’affectation :)

• Astuce :
>>> ’’’ si on veut commenter
sur plusieurs
lignes !
’’’

7
Les entrées / sorties standards

L’écriture

• La syntaxe de l’instruction d’écriture est :


print(" expression ")
Ou bien
print(‘expression’)

• expression peut avoir plusieurs formes, ainsi on peut afficher :


– Du texte : print(" texte a afficher ")
– La valeur d'une variable : print(x)
– Mélange de texte et de valeurs :
print("Les valeurs sont x",x,"et y:",y)

8
Les entrées / sorties standards

La lecture

• La syntaxe de l’instruction de lecture est :


x = input()

• On peut encore afficher du texte en attendant la lecture :


x = input(’saisir une valeur : ’)

9
Les entrées / sorties standards

Type de la fonction input( )

• La fonction de lecture input( ) a par défaut le type « str »


>>> x = input(‘saisir une valeur entière : ’)
35
>>> print(x)
’35’

• Pour la convertir en nombre, on utilise l’opérateur de conversion « int ».


>>> x = int(input(‘saisir une valeur entière : ’))
35
>>> print(x)
35

10
La sélection

Instruction composée

• Un bloc d’instruction en python est une portion de code qui :


– Commence par une instruction qui se termine par deux points ( : )
– Cette instruction implique l’exécution de plusieurs autres instructions du bloc
– Toutes les instructions du bloc seront écrites de manière indentée

Exemple :
instruction1 :
instruction2
instruction3
instruction4

11
La sélection

La sélection

1 La syntaxe de la sélection réduite : 2 La syntaxe de la sélection simple :


if expression : if expression :
bloc d’instructions bloc d’instructions
else:
bloc d’instructions

3 La syntaxe de la sélection : 4 La syntaxe de la sélection imbriquée :


if expression : if expression :
if expression :
bloc d’instructions
bloc d’instructions
elif: else:
bloc d’instructions bloc d’instructions
else: else :
bloc d’instructions bloc d’instructions

12
Application

1. Ecrire un script python qui permet de saisir deux entiers a et b au clavier et de


calculer leur somme

2. Ecrire un programme qui demande un entier au clavier et affiche OK si ce nombre


est positif

3. Ecrire un programme qui demande un entier au clavier, affiche POS si ce nombre


est positif et NEG sinon.

4. Ecrire un programme qui demande un entier au clavier, affiche POS si ce nombre


est positif, NEG si le nombre est négatif et NUL s’il est nul.

5. Ecrire un programme qui affiche l’ordre croissant de 3 entiers a, b et c saisis au


clavier

13
L’itération

L’itération

• La boucle while :
while condition :
bloc d’instructions

• La boucle for :
La fonction range( ) est un itérateur qui génère des nombres successifs.
Elle admet 3 utilisations : range(d, f, p) , range(d, f) , range(f)

for i in range(d,f,p):
bloc d’instructions

14
Application

for i in range(0, 10, 2) :


print(i)

for i in range(0, 10) :


print(i)

for i in range(10) :
print(i)

15
break / continue / pass

• break : Interrompre une boucle

• continue : Court-circuiter une boucle

• pass : réaliser une instruction vide !

for i in range(10) :
if i==5 :
break / continue / pass
print(i)

16
Les fonctions

• Des sous-programmes :

– Moins complexes
– Indépendants
– Réutilisables

• On distingue les built-in (des fonctions prédéfinies) des fonctions.


– print( ), input( ), sqrt( ), …

17
Définition d’une fonction

def Le nom de la fonction La liste des paramètres

def nomFonction(var1, var2, var3) : Les deux points


instruction_1
instruction_2
… le corps de la fonction

instruction_n

18
L’instruction « return »

• L’instruction return (renvoyer ou retourner)


termine la fonction même si cette instruction est exécutée avant la fin du corps de la
fonction.

• En python, une fonction peut retourner plusieurs valeurs et même de types


différents. 

19
Appel d’une fonction

• L’appel d’une fonction se fait par l’expression

nom_fonction(param_1, param_2, ..., param_n)

• L’ordre des paramètres dans l’appel de la fonction doit concorder avec celui-ci dans
sa définition

20
Les variables locales

• Les variables locales sont les variables qui n’existent que dans le corps de la
fonction.

• Dans une certaine mesure, les paramètres peuvent être assimilés aux variables
locales.

• Quand une fonction est appelée, ses variables locales reçoivent les valeurs des
paramètres d’appel.

• A la sortie de la fonction, les variables locales sont perdues ; elles n’occupent plus
d’espace mémoire

21
Les variables globales

• On appelle variable globale une variable définie en dehors de toute fonction.

• Une variable globale est connue dans toute la portion de code qui suit sa création.

• Son contenu est « visible » de l'intérieur d'une fonction, mais la fonction ne peut
pas le modifier.

• Si on veut modifier la valeur d’une variable global par des fonctions différentes, il
faut déclarer le mot clé global avant la 1ère utilisation de cette variable.

22
Portée des variables

Résultats ?

23
Application

1. Ecrire une fonction Multiples qui affiche les 10 premiers multiples d’un entier a
passé en paramètre.

2. Utiliser cette fonction dans un programme pour afficher les 10 premiers multiples
des entiers : de 1 jusqu’à 9.

3. Reformuler la fonction Multiple pour afficher les n premiers multiples d’un entier
a.

24
Les fonctions récursives

• Une fonction récursive est une fonction qui réalise un auto appel au sein de sa
définition

• En plus, lorsqu’on a une fonction récursive, on vise toujours à déterminer un cas de


base pour la terminaison des appels récursifs

• Exemple : (la factorielle : n! = n x (n-1)! )

def factorielle(n):
if n = = 0 : return 1
else : return n * factorielle(n-1)

• pgcd(a,b), fibonacci(n), …

25
Chaîne de caractères : str

• Une donnée de type chaîne de caractères est :


une suite quelconque de caractères délimitée soit par des apostrophes, soit par des
guillemets.

Exemples :
• phrase1 = 'des œufs.'
• phrase2 = ' "Oui", répondit-il,'
• phrase3 = "j'aime bien"

26
Chaîne de caractères

• Le caractère spécial « \ » (antislash) permet quelques subtilités complémentaires :

– En premier lieu, il permet d'écrire sur plusieurs lignes une commande qui serait
trop longue pour tenir sur une seule (cela vaut pour n'importe quel type de
commande).

– A l'intérieur d'une chaine de caractères, l'antislash permet d'insérer un certain


nombre de codes spéciaux (sauts à la ligne, apostrophes, guillemets, etc.).

27
Indexation des chaînes de caractères

• La taille (nombre de caractères) d’une chaine de caractères et donnée par la


fonction len( ).

• Pour accéder a un caractère dans une chaîne, on utilise l’opérateur [ ] dans lequel
on précise l’indice ; un entier signé qui indique la position du caractère.

• L’indexation d’une chaîne CH commence par 0 jusqu’à len(CH)-1


0 1 2 3 4 5
CH a b c d e f
-6 -5 -4 -3 -2 -1
• Ou bien par -1 jusqu’à – len(CH)

• L’affectation d’une valeur à un élément d’une chaine de caractères est interdite !


CH [i] = x

28
Les chaînes de caractères

• Les chaines sont non modifiables !!! Comment ? CH [i] = x

• Concaténation : str + str donne str


• x = ’MBD-’ et y = ’SIM’ => x+y donne ’MBD-SIM’

• Répétition : str * int ou bien int * str donne str


• x = ’ok’ et y=4 => x*y donne ’okokokok’

29
Les chaînes de caractères

• Les tranches (slices) :


• une tranche est une sous-chaine (une partie) à partir d’un certain indice d (inclus)
jusqu’à un autre indice f (non inclus) avec un pas de déplacement p dans la chaine.

• Pour une chaine CH, CH = ’abcdefgh’


• On écrit : CH[d : f : p]

• CH[0 : 5 : 1]
• CH[2 : 7 : 2]
• CH[-3 : -7 : -1]
• CH[-1 : -7 : -3]

30
Les chaînes de caractères

• Les tranches (slices) :


• Lorsque la valeur du pas (p) n’est pas déterminée, elle est par défaut 1.

• Lorsque la valeur du début de la tranche (d) n’est pas déterminée, on commence par
défaut par le 1er caractère de la chaine.

• Lorsque la valeur de la fin de la tranche (f) n’est pas déterminée, on avance par
défaut jusqu’au dernier caractère de la chaine.

• Et si le pas est négatif ?!

>>> CH = ’abcdefgh’ >>> CH[1 : 6]


>>> CH[ : 7 : 2] >>> CH[-3 : : -1]
>>> CH[ : : 3] >>> CH[ : : -3]

31
Les méthodes

• upper
• lower
• capitalize
• isupper
• islower
• istitle
• swapcase
• …

32
Les listes

• Une liste est un conteneur d’objets.


• Ces objets peuvent être de même type : comme pour les tableaux,
• Ou bien de types différents, d’où la puissance de Python

• Accès aux éléments : par [ ]

• Différences avec les chaines de caractères : Les éléments des listes sont
modifiables.

33
Les méthodes

• append
• extend
• pop
• …

34
Les tuples / les ensembles

• Les tuples
– Les tuples sont des listes immuables, qu'on ne peut modifier
– Définis par des virgules séparant les différents éléments
– Souvent, on utilise des parenthèses

• Les ensembles
– Les ensembles sont des conteneurs d’objets non répétitifs
– Définis par des accolades
– Pas d’indexation !

35
Les dictionnaires

• Un dictionnaire est un tableau associatif


• Association : « cle : valeur »
• Limité syntaxiquement par des accolades : { }

• Il possède les caractéristiques suivantes :


– une clé dans un dictionnaire est unique ;
– l’opérateur d’appartenance d’une clé (in) ;
– la fonction taille (len( )) donnant le nombre de couples stockés ;
– il est itérable (on peut le parcourir) mais n’est pas ordonné.

36
Les dictionnaires

• Méthodes de création

>>> d = {} # dictionnaire vide


>>> d1 = dict( ) # dictionnaire vide
>>> d2 = {clé1 : valeur1, clé2 : valeur2}
>>> d3 = dict(clé1= valeur1, clé2 = valeur2)
>>> d4 = dict([(clé1, valeur1), (clé2, valeur2)])

37
Les dictionnaires

• Type composite mais n’appartient pas aux séquences.

• Type modifiable, mais les couples enregistrés n’occupent pas un ordre immuable.

• Une clé pourra être alphabétique, numérique, etc.


En fait de tout type sauf les types « list » et « dict ».

• Les valeurs pourront être de tout type sans exclusion.

38
Accès aux éléments

• Pour les séquences ; on a utilisé ...

• Le dictionnaire est aussi un objet conteneur (Non plus une séquence).

• Il n'a quant à lui aucune structure ordonnée.

• Pour accéder aux objets contenus dans le dictionnaire, on utilise les clés qui
peuvent être de bien des types distincts.

• Soit D un dictionnaire :

D[clé] donne la valeur associée

39
Parcours des dictionnaires

• for .. in ..
– for i in dictionnaire

• Ou bien, utiliser les méthodes :


• keys
• values
• items

40
Les fichiers de données

• Il s’agit de:
– Ouvrir un fichier (selon un mode)
– Lire à partir du fichier, ou bien y écrire
– Fermer le fichier
• Les fonctions :
– pointeur = open(nom_du_fichier, mode_ouverture)
– pointeur.read()
– Var = pointeur.read(n)
– Var = pointeur.readline( )
– Var = pointeur.readlines( )
– pointeur.write( )
– pointeur.writelines( )
– pointeur.close( )

41
Fin du cours

adnan.souri@gmail.com 42

Das könnte Ihnen auch gefallen