0% ont trouvé ce document utile (0 vote)
2 vues15 pages

Python Certification Guide

Ce document est un guide complet sur la certification Python 3, couvrant les fondamentaux du langage, les structures de données, la gestion des fichiers et les fonctions. Il inclut des astuces pour l'examen, des exemples de code, et des explications sur les types de données, les opérateurs, les boucles et les conditions. Le document se termine par des conseils sur la manipulation de fichiers et l'utilisation de bibliothèques comme os et shutil.

Transféré par

yasmine.hsairi
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues15 pages

Python Certification Guide

Ce document est un guide complet sur la certification Python 3, couvrant les fondamentaux du langage, les structures de données, la gestion des fichiers et les fonctions. Il inclut des astuces pour l'examen, des exemples de code, et des explications sur les types de données, les opérateurs, les boucles et les conditions. Le document se termine par des conseils sur la manipulation de fichiers et l'utilisation de bibliothèques comme os et shutil.

Transféré par

yasmine.hsairi
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

GUIDE COMPLET

Certification Python 3
Toutes les astuces, des plus simples aux plus avancees

Ce document couvre l'integralite du Module 1 : Python Basics, Structures de donnees,

Fichiers, Dictionnaires, Fonctions et le Mini-Projet Sentiment Classifier.

1. FONDAMENTAUX DU LANGAGE

1.1 Pourquoi Python ?


• Simplicite : indentation obligatoire (pas d'accolades {}), typage dynamique
• Multi-plateforme : meme code sur Windows, Mac, Linux
• Langage interprete (execution ligne par ligne) vs compile (C, Java)
• Usages principaux : Data Science, Machine Learning, Web (Django), scripts

ASTUCE EXAM : La difference interprete vs compile est souvent demandee.

Python = interprete => plus lent a l'execution mais plus facile a developper.

1.2 Types de donnees de base


Type Exemple Remarque

int x = 5 Entier, illimite en Python 3

float x = 3.14 Nombre decimal

str x = "Bonjour" Chaine de caracteres

bool x = True True ou False (majuscule !)

NoneType x = None Valeur nulle / absence de valeur

1.3 Operateurs — Priorite a connaitre


Operateur Syntaxe Exemple

Division entiere // 9 // 5 = 1

Modulo (reste) % 9 % 5 = 4

Puissance ** 2 ** 3 = 8

Division normale / 9 / 5 = 1.8

Multiplication * 3 * 4 = 12

Guide de Certification Python 3 — Anis Ben Ammar | Page 1


ORDRE DE PRIORITE (de haut en bas) :

1. ** (puissance) 2. * / // % 3. + - 4. Comparaisons 5. not 6. and 7. or

ASTUCE : print(2 ** 3 ** 2) = 512 car ** s'evalue de droite a gauche !

1.4 Conversions de types


int('123') # => 123
float('3.14') # => 3.14
str(42) # => '42'
int(3.9999) # => 3 (pas d'arrondi, troncature !)
bool(0) # => False / bool(1) => True
bool('') # => False / bool('abc') => True

PIEGE FREQUENTS : int(3.99) = 3, pas 4 ! Python TRONQUE, il n'arrondit pas.

PIEGE : bool('') = False mais bool('0') = True (chaine non vide = True)

1.5 Chaines de caracteres — Methodes essentielles


Methode Syntaxe Description

.lower() [Link]() Tout en minuscules

.upper() [Link]() Tout en majuscules

.strip() [Link]() Supprime espaces debut/fin

.split() [Link](",") Divise en liste

.replace() [Link]("a","b") Remplace (retourne nouvelle chaine


!)

.find() [Link]("abc") Index premiere occurrence (-1 si


absent)

.count() [Link]("e") Nombre d'occurrences

len() len(s) Longueur de la chaine

PIEGE TRES FREQUENT : Les strings sont IMMUTABLES !

[Link]('a','b') NE MODIFIE PAS s => il faut ecrire s = [Link]('a','b')

Ce bug apparait dans le code du cours (version 'optimisee' de strip_punctuation) !

2. CONTROLE DU FLUX

2.1 Conditions if / elif / else


if condition1:
# instructions si condition1 True

Guide de Certification Python 3 — Anis Ben Ammar | Page 2


elif condition2:
# instructions si condition2 True
else:
# instructions sinon

Operateurs de comparaison :
Operateur Signification Exemple

== egal x == 5

!= different x != 5

< > <= >= comparaison x < 10

in contenu dans 'a' in 'bonjour'

not in absent de 5 not in [1,2,3]

and et logique x > 0 and x < 10

or ou logique x == 0 or x == 1

not negation not (x > 5)

2.2 Boucles
Boucle for :
for element in liste: # parcourir une liste
print(element)

for i in range(5): # 0, 1, 2, 3, 4
print(i)

for i in range(2, 10, 2): # 2, 4, 6, 8 (start, stop, step)


print(i)

for char in 'Python': # parcourir une chaine


print(char)

Boucle while :
while condition:
# instructions
# ne pas oublier de modifier la condition !

break et continue :
for i in range(10):
if i == 5:

Guide de Certification Python 3 — Anis Ben Ammar | Page 3


break # quitte la boucle
if i % 2 == 0:
continue # passe a l'iteration suivante
print(i) # affiche 1, 3 (s'arrete avant 5)

2.3 Le modele accumulateur — TRES IMPORTANT


PATTERN EXAM : Initialiser AVANT la boucle, modifier DANS la boucle.

C'est la base de presque tous les exercices de comptage / somme / collecte.

# Compter des elements


compteur = 0 # initialisation AVANT
for x in liste:
if condition:
compteur += 1 # modification DANS

# Accumuler dans une liste


resultat = [] # initialisation AVANT
for x in liste:
[Link](x*2) # modification DANS

3. STRUCTURES DE DONNEES — COEUR DU MODULE

3.1 Listes []
Ordonnee, mutable, iterable, peut contenir n'importe quel type.

Creer une liste :


ma_liste = [] # vide
ma_liste = [1, 2, 3] # avec elements
ma_liste = list(range(5)) # [0,1,2,3,4]

Methodes essentielles :
Methode / Syntaxe Description

[Link](x) Ajoute x en fin de liste

[Link]([x,y]) Ajoute plusieurs elements a la fin

[Link](i, x) Insere x a l'index i

[Link](x) Supprime la PREMIERE occurrence de x

[Link](i) Supprime et RETOURNE l'element a l'index i

del liste[i] Supprime l'element a l'index i (ne retourne rien)

[Link]() Trie EN PLACE (modifie la liste, ne retourne


rien)

Guide de Certification Python 3 — Anis Ben Ammar | Page 4


Methode / Syntaxe Description

sorted(liste) Retourne une NOUVELLE liste triee

[Link](reverse=True) Trie en ordre decroissant

[Link](key=len) Trie selon un critere (ex: longueur)

[Link](x) Compte le nombre de x dans la liste

[Link](x) Retourne l'index de la premiere occurrence de x

len(liste) Retourne la longueur

Slicing (TRES IMPORTANT) :


l = ['a','b','c','d','e']
l[0] # 'a' (premier element)
l[-1] # 'e' (dernier element)
l[1:3] # ['b','c'] (index 1 inclus, 3 exclus)
l[:3] # ['a','b','c'] (du debut jusqu'a 3)
l[2:] # ['c','d','e'] (de 2 jusqu'a la fin)
l[::2] # ['a','c','e'] (un element sur deux)
l[::-1] # ['e','d','c','b','a'] (inverse)

DIFFERENGE CLES : .sort() modifie la liste originale et retourne None.

sorted() ne modifie PAS la liste originale et retourne une nouvelle liste.

PIEGE : resultat = ma_liste.sort() => resultat vaut None !

COPIE de liste : new_l = [Link]() ou new_l = l[:] (pas new_l = l !)

3.2 Tuples ()
Comme les listes, mais IMMUTABLES (taille et contenu fixes apres creation).
mon_tuple = (1, 2, 3) # creation directe
mon_tuple = tuple([1, 2, 3]) # depuis une liste
tuple_un = (42,) # OBLIGATOIRE : virgule pour tuple a 1 element

# Tuple unpacking (tres utile)


a, b, c = (1, 2, 3) # a=1, b=2, c=3
x, y = 10, 20 # equivalent de (10, 20)

QUAND UTILISER un tuple ? Donnees qui ne doivent pas changer (coordonnees, config).

Avantage : acces plus rapide que les listes pour les grandes collections.

PIEGE : (42) n'est pas un tuple => c'est juste l'entier 42. Il faut (42,)

Guide de Certification Python 3 — Anis Ben Ammar | Page 5


3.3 Dictionnaires {}
Paires cle:valeur. Cles uniques. Mutable. Iterable.
# Creer un dictionnaire
d = {} # vide
d = {'nom': 'Alice', 'age': 25} # avec donnees
d = dict(nom='Alice', age=25) # autre syntaxe

# Acceder aux valeurs


d['nom'] # => 'Alice' (erreur si cle absente !)
[Link]('nom') # => 'Alice' (None si absente, pas d'erreur)
[Link]('prenom', 'N/A') # => 'N/A' (valeur par defaut)

# Modifier / Ajouter
d['age'] = 26 # modifie ou ajoute
del d['age'] # supprime la cle
[Link]('age') # supprime ET retourne la valeur

# Parcourir
[Link]() # toutes les cles
[Link]() # toutes les valeurs
[Link]() # paires (cle, valeur)
for cle, val in [Link](): print(cle, val)

# Tester l'existence
'nom' in d # True si la cle existe

PIEGE : d['cle_inexistante'] leve une KeyError !

SOLUTION : Toujours utiliser [Link]('cle') pour eviter les erreurs.

IMBRICATION possible : d = {'personne': {'nom': 'Ali', 'age': 30}}

Acces : d['personne']['nom'] => 'Ali'

3.4 Sets (Ensembles) {}


Elements uniques, non ordonnes. Utile pour supprimer les doublons.
# Creer un set
s = set() # vide (PAS {} qui cree un dict vide !)
s = {1, 2, 3} # avec elements
s = set([1, 2, 2, 3, 3]) # => {1, 2, 3} (doublons supprimes !)

# Operations
[Link]('python') # ajoute un element

Guide de Certification Python 3 — Anis Ben Ammar | Page 6


[Link]('python') # supprime (erreur si absent)
[Link]('python') # supprime sans erreur si absent

# Operations ensemblistes
a & b # intersection (elements communs)
a | b # union (tous les elements)
a - b # difference (dans a mais pas dans b)

# Astuce : obtenir liste sans doublons et triee


sorted(set([3,1,2,1,3])) # => [1, 2, 3]

3.5 Comparaison des structures — A MEMORISER


Structure Ordonnee Mutable Doublons Acces
Liste [] Oui Oui Oui index ou iteration

Tuple () Oui NON Oui index ou iteration

Dict {} Non* Oui Cles non cle (d['k'])

Set {} Non Oui NON iteration seule

3.6 List Comprehension


Syntaxe concise pour creer des listes. TRES frequente dans les examens.
# Syntaxe de base
[expression for element in iterable]

# Avec condition
[expression for element in iterable if condition]

# Ternaire (if/else dans l'expression)


[expr_si_vrai if condition else expr_si_faux for el in liste]

# Exemples concrets
carres = [x**2 for x in range(5)] # [0,1,4,9,16]
pairs = [x for x in range(10) if x%2==0] # [0,2,4,6,8]
cubes_pairs = [x**3 if x%2==0 else x**2 for x in range(5)]

# Dict comprehension
longueurs = {mot: len(mot) for mot in ['chat','chien','oiseau']}

Guide de Certification Python 3 — Anis Ben Ammar | Page 7


4. FICHIERS EN PYTHON

4.1 Ouvrir et fermer un fichier


# Methode classique (penser a fermer !)
f = open('[Link]', 'r') # ouvre en lecture
contenu = [Link]()
[Link]() # OBLIGATOIRE

# Methode recommandee (fermeture automatique)


with open('[Link]', 'r') as f:
contenu = [Link]() # f est ferme automatiquement apres

4.2 Modes d'ouverture — A MEMORISER


Mode Description

'r' Lecture seule. Erreur si le fichier n'existe pas.

'w' Ecriture. CREE le fichier ou EFFACE le contenu existant !

'a' Ajout. Ecrit a la FIN du fichier. Cree si n'existe pas.

'r+' Lecture ET ecriture. Le fichier doit exister.

'w+' Lecture ET ecriture. Efface le contenu existant.

PIEGE : Ouvrir un fichier en 'w' sur un fichier existant EFFACE tout son contenu !

Pour ajouter du contenu sans effacer => utiliser 'a' (append)

4.3 Lire un fichier


with open('[Link]', 'r') as f:
tout = [Link]() # tout le fichier en une seule chaine
une_ligne = [Link]() # une seule ligne (avec \n a la fin)
lignes = [Link]() # liste de toutes les lignes

# Parcourir ligne par ligne (le plus efficace)


with open('[Link]', 'r') as f:
for ligne in f:
print([Link]()) # .strip() enleve \n

4.4 Ecrire dans un fichier


with open('[Link]', 'w') as f:
[Link]('Premiere ligne\n') # write() n'ajoute pas \n auto !
[Link]('Deuxieme ligne\n')

Guide de Certification Python 3 — Anis Ben Ammar | Page 8


# Ecrire un CSV manuellement
with open('[Link]', 'w') as f:
[Link]('Col1,Col2,Col3\n') # en-tete
[Link]('val1,val2,val3\n') # donnees

ATTENTION : [Link]() n'ajoute PAS de saut de ligne automatiquement !

Toujours ajouter '\n' a la fin de chaque ligne manuellement.

ASTUCE CSV : Utiliser ',' pour separer et '\n' pour la fin de chaque ligne.

4.5 Package os et shutil


import os
[Link]() # repertoire courant
[Link]('.') # liste les fichiers
[Link]('[Link]') # teste si le fichier existe
[Link]('[Link]') # supprime un fichier

import shutil
[Link]('[Link]', '[Link]') # copie un fichier
[Link]('[Link]', '[Link]') # deplace / renomme
[Link]('dossier') # supprime un dossier

5. FONCTIONS

5.1 Syntaxe de base


def nom_fonction(param1, param2):
# corps de la fonction
return valeur # optionnel

# Appel
resultat = nom_fonction(arg1, arg2)

5.2 Types de parametres


# Valeurs par defaut
def saluer(nom, message='Bonjour'):
print(message, nom)
saluer('Alice') # => 'Bonjour Alice'
saluer('Alice', 'Salut') # => 'Salut Alice'

Guide de Certification Python 3 — Anis Ben Ammar | Page 9


# Arguments nommes (keyword arguments)
def infos(nom, age, ville):
pass
infos(age=25, ville='Tunis', nom='Ali') # ordre libre si nommes

# Nombre variable d'arguments


def somme(*args): # *args => tuple
return sum(args)
somme(1, 2, 3, 4) # => 10

def config(**kwargs): # **kwargs => dictionnaire


print(kwargs)
config(nom='Ali', age=25) # => {'nom': 'Ali', 'age': 25}

5.3 Variables locales vs globales — TRES IMPORTANT


x = 10 # variable GLOBALE

def ma_fonction():
x = 5 # variable LOCALE (different de x global !)
print(x) # => 5

ma_fonction()
print(x) # => 10 (globale inchangee)

# Pour MODIFIER une variable globale depuis une fonction :


def modifier_global():
global x
x = 99

modifier_global()
print(x) # => 99

REGLE : Une variable cree DANS une fonction est locale (invisible dehors).

REGLE : Pour modifier une variable globale dans une fonction => mot-cle 'global'.

PIEGE : Sans 'global', assigner x=99 dans une fonction cree une nouvelle variable locale !

5.4 Fonctions lambda


# Syntaxe : lambda parametres: expression
double = lambda x: x * 2

Guide de Certification Python 3 — Anis Ben Ammar | Page 10


double(5) # => 10

# Avec plusieurs parametres


somme = lambda a, b: a + b
somme(3, 4) # => 7

# Usage frequent : tri avec cle


mots = ['banane', 'kiwi', 'fraise', 'abricot']
sorted(mots, key=lambda m: len(m)) # tri par longueur

# Avec map() et filter()


list(map(lambda x: x**2, [1,2,3,4])) # [1,4,9,16]
list(filter(lambda x: x>2, [1,2,3,4])) # [3,4]

5.5 Modules et imports


import math # importe le module
[Link](16) # utilise avec le prefixe

from math import sqrt # importe une fonction specifique


sqrt(16) # utilise sans prefixe

from math import * # importe tout (deconseille en prod)

import random
[Link]() # nombre aleatoire entre 0 et 1
[Link](1, 10) # entier aleatoire entre 1 et 10

6. MINI-PROJET : SENTIMENT CLASSIFIER

6.1 Vue d'ensemble


Objectif : Analyser des tweets et calculer un score de sentiment.
1. Lire les mots positifs et negatifs depuis des fichiers .txt
2. Nettoyer chaque mot (supprimer la ponctuation, mettre en minuscules)
3. Compter les mots positifs et negatifs dans chaque tweet
4. Calculer le score net = score_pos - score_neg
5. Ecrire les resultats dans un fichier CSV

6.2 Fonction strip_punctuation


punctuation_chars = ["'", '"', ',', '.', '!', ':', ';', '#', '@']

# VERSION CORRECTE (boucle avec liste)

Guide de Certification Python 3 — Anis Ben Ammar | Page 11


def strip_punctuation(s):
for c in punctuation_chars:
s = [Link](c, '') # OBLIGATOIRE : reassigner s !
return s

# VERSIONS INCORRECTE DU COURS (bug !)


def strip_punctuation_bug(s):
for c in punctuation_chars:
[Link](c, '') # BUG : sans s = ... => rien ne change !
return s # retourne s inchange

PIEGE DU COURS : La 'version optimisee' a un bug !

[Link](c,'') NE MODIFIE PAS s car les strings sont immutables.

Il FAUT ecrire s = [Link](c, '') pour que ca fonctionne.

6.3 Fonctions get_pos et get_neg


positive_words = []
with open('positive_words.txt') as f:
for ligne in f:
if ligne[0] != ';' and ligne[0] != '\n':
positive_words.append([Link]())

def get_pos(phrase):
mots = [Link]() # decouper en mots
score = 0
for mot in mots:
mot_propre = strip_punctuation(mot).lower() # nettoyer + minuscules
if mot_propre in positive_words:
score += 1
return score

# get_neg est identique avec negative_words

6.4 Code principal — Lecture et ecriture CSV


source = open('project_twitter_data.csv', 'r')
sortie = open('resulting_data.csv', 'w')

# Lire et ignorer l'en-tete


[Link]()

Guide de Certification Python 3 — Anis Ben Ammar | Page 12


# Ecrire l'en-tete du fichier de sortie
[Link]('Number of Retweets,Number of Replies,
Positive Score,Negative Score,Net Score\n')

# Traiter chaque ligne


for ligne in [Link]():
parties = [Link](',')
texte = parties[0]
retweets = parties[1]
reponses = parties[2].replace('\n', '') # enlever le saut de ligne

pos = get_pos(texte)
neg = get_neg(texte)
net = pos - neg

[Link](retweets+','+reponses+','+str(pos)+','+str(neg)+','+str(net)+'\n')

[Link]()
[Link]()

7. BIBLIOTHEQUES CLES

7.1 Pandas
import pandas as pd

# Lire un CSV
df = pd.read_csv('[Link]')

# Infos de base
[Link]() # 5 premieres lignes
[Link] # (nb_lignes, nb_colonnes)
[Link] # noms des colonnes
[Link]() # statistiques

# Acceder aux donnees


df['colonne'] # une colonne
df[df['age'] > 25] # filtrer

7.2 NumPy
import numpy as np

Guide de Certification Python 3 — Anis Ben Ammar | Page 13


arr = [Link]([1, 2, 3, 4, 5])
arr * 2 # [2, 4, 6, 8, 10] (operations vectorisees)
[Link](arr) # moyenne
[Link](arr) # somme
[Link](arr) # maximum

8. PIEGES LES PLUS FREQUENTS A L'EXAMEN

PIEGE 1 : Strings immutables

[Link]('a','b') ne modifie pas s => toujours faire s = [Link]('a','b')

PIEGE 2 : .sort() vs sorted()

[Link]() => modifie EN PLACE, retourne None

sorted(liste) => retourne une NOUVELLE liste, liste originale inchangee

NE PAS faire : nouvelle = [Link]() => nouvelle sera None !

PIEGE 3 : Copie de liste

b=a => b et a pointent le MEME objet ! modifier b modifie a

b = [Link]() => copie independante

b = a[:] => copie independante (slicing complet)

PIEGE 4 : Set vide vs Dict vide

{} cree un DICTIONNAIRE vide, PAS un set !

set() est la seule facon de creer un set vide

PIEGE 5 : int() tronque, n'arrondit pas

int(3.9) = 3 (pas 4 !)

Pour arrondir : round(3.9) = 4

PIEGE 6 : Boucle while infinie

Ne pas oublier de modifier la condition a chaque iteration !

Ou utiliser break pour sortir si une condition est atteinte.

PIEGE 7 : dict['cle_absente'] leve une KeyError

Utiliser [Link]('cle') qui retourne None sans erreur

Guide de Certification Python 3 — Anis Ben Ammar | Page 14


Ou [Link]('cle', valeur_par_defaut)

PIEGE 8 : Tuple a un seul element

(42) n'est pas un tuple => c'est juste 42 entre parentheses

(42,) est un tuple (virgule obligatoire)

9. RECAP EXPRESS — DERNIERE MINUTE

A RETENIR ABSOLUMENT FONCTIONS INCONTOURNABLES


✓ Strings = immutables len() range() type() print()
✓ Liste = ordonnee + mutable int() str() float() bool()
✓ Tuple = ordonne + immutable append() extend() insert()
✓ Dict = cle:valeur + mutable sort() sorted() reverse()
✓ Set = unique + non ordonne split() strip() replace()
open() read() write() close()
✓ sort() retourne None
keys() values() items() get()
✓ {} = dict vide, set() = set vide
map() filter() lambda
✓ int(3.9) = 3 (troncature)

Bonne chance a l'examen !

Guide de Certification Python 3 — Anis Ben Ammar | Page 15

Vous aimerez peut-être aussi