0% ont trouvé ce document utile (0 vote)
10 vues54 pages

Introduction à Python pour débutants

Le document présente une introduction au langage de programmation Python, en mettant l'accent sur sa popularité dans les domaines de la science des données et de l'apprentissage automatique. Il couvre des sujets tels que l'installation d'environnements virtuels, la gestion des bibliothèques, les types de données, les structures de contrôle et la définition de fonctions. Des exemples pratiques illustrent les concepts abordés, facilitant ainsi la compréhension des fondamentaux de Python.

Transféré par

saidjedemou
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues54 pages

Introduction à Python pour débutants

Le document présente une introduction au langage de programmation Python, en mettant l'accent sur sa popularité dans les domaines de la science des données et de l'apprentissage automatique. Il couvre des sujets tels que l'installation d'environnements virtuels, la gestion des bibliothèques, les types de données, les structures de contrôle et la définition de fonctions. Des exemples pratiques illustrent les concepts abordés, facilitant ainsi la compréhension des fondamentaux de Python.

Transféré par

saidjedemou
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 PDF, TXT ou lisez en ligne sur Scribd

Introduction à Python

CSC 4538
Julien Romero

CSC 4538 Introduction à Python


Introduction

CSC 4538 Introduction à Python


Python
● Un langage (très) populaire dans la communauté Data Science et machine
learning
● Actuellement en version 3.12 (évitez Python 2.X)
● Flexible et facile d’utilisation
○ Mais il faut bien en connaître les rouages pour ne pas faire n’importe quoi
● Langage interprété
○ Différent de Java et C
○ Conséquences :
■ Les erreurs apparaissent souvent à l’exécution
■ Python est lent car pas d’optimisation à la compilation

CSC 4538 Introduction à Python


Programmer en Python
Python est un programme que l’on peut lancer en ligne de commande

python mon_programme.py
# Avec un numéro de version
python3 mon_programme.py

Sans argument, nous avons le mode interactif de Python

En général, on utilise un IDE qui facilite les choses :

● Pycharm (recommandé dans ce cours)


● VSCode

CSC 4538 Introduction à Python


Pycharm
Créer nouveau projet :
File>New Project

Le nom du projet
(sans espace !)

On utilise un
environnement
virtuel

CSC 4538 Introduction à Python


Installation de bibliothèques en Python
Les bibliothèques sont essentielles en programmation pour facilement avoir accès à des
fonctionnalités avancées

En Python, deux gestionnaires de paquets :

● Pip (utilisé dans ce cours)


● Conda

Installation de bibliothèque très simple :

pip install nom_bibliothèque


pip install nom_bibliothèque==numéro_version

CSC 4538 Introduction à Python


Gestion des bibliothèques dans un projet
● Un projet définit toutes les bibliothèques nécessaires dans un fichier
[Link]
○ Un nom de bibliothèque par ligne, avec potentiellement un numéro de version

# Liste de bibliothèque simple


pytest
Torch
# Bibliothèques avec une version
pyformlang == 1.0.9
transformers >= 4.1.1

● Installation avec pip :

pip install -r [Link]

CSC 4538 Introduction à Python


Environnements virtuels
● Comment faire si nous avons plusieurs projets avec des bibliothèques différentes
et des versions différentes ?
● On crée un environnement de travail local séparé de l’environnement global : un
environnement virtuel
● En Python, la bibliothèque venv permet de créer un environnement virtuel

python -m venv /path/to/new/virtual/environment


# En général, on utilise :
python -m venv venv

● Création d’un nouveau dossier qui contient les bibliothèques de notre projet

CSC 4538 Introduction à Python


Utilisation d’un environnement virtuel
● Pour dire à notre terminal d’utiliser l’environnement virtuel :

source venv/bin/activate
# On vérifie le Python utilisé
which python
# Le chemin doit pointer vers notre venv
# Désactivation
deactivate

● Automatique si notre IDE est bien configuré

CSC 4538 Introduction à Python


Environnement virtuel dans Pycharm
Le dossier de
notre
environnement
virtuel

Notre terminal est


par défaut avec le
bon venv

On peut changer
l’environnement
utilisé
CSC 4538 Introduction à Python
Fondamentaux

CSC 4538 Introduction à Python


Préambule
● Python est un langage typé dynamiquement
○ Les types sont vérifiés à l’exécution
● Attention ! Python a des types, même s’ils sont un peu cachés !
● En Python, un retour à la ligne signifie la fin d’une instruction
○ Sauf dans des case précis, en particulier en utilisant \
○ Bien qu’il soit possible de finir une instruction avec un ; comme en Java, on ne le fait jamais

CSC 4538 Introduction à Python


Déclaration de variables
nom_variable = valeur

Par rapport à Java, on ne déclare pas le type de la variable. Par contre, on peut y
accéder:

type(nom_variable)

On peut afficher une variable avec :

print(nom_variable)

CSC 4538 Introduction à Python


Déclaration simultanée de variables
● On peut attribuer d’un seul coup plusieurs variables en affectant les valeurs d’une
séquence (voir plus bas). Par contre, la séquence doit avoir exactement le bon
nombre d’éléments

x, y, z = [1, 2, 3]
# x = 1, y = 2, z = 3
x, y = "ab"
# x = "a", y = "b"
x, y = "ABC" # Error

CSC 4538 Introduction à Python


Les types - Booléens
● Valeurs : True et False (attention à la majuscule !)
● Opérateurs classiques en toutes lettres : and, or, not
● Certains objets et structures ont une valeur booléenne associée
○ 0, et structures vides sont False

# Litéraux
True
False
# Opérations
True and False # False
True or False # True
not True # False
# Transformations
not [] # Negation of the empty list is True!

CSC 4538 Introduction à Python


Les types - Nombres
● Un type entier (int) et un type flottant (float)
● Notation exposant (float) : 1e10
● Opérations : +, -, /, // (division entière), *, %, ** (puissance)
● Fonctions prédéfinies : abs(x) (valeur absolue), int(x) (conversion en entier),
float(x) (conversion en flottant)
● Fonctions avancées dans la bibliothèque math (installée par défaut)
○ floor(x), ceil(x)

1 + 5.0 # 6.0

int(5.5) # 5

int("5") # 5

CSC 4538 Introduction à Python


Chaînes de caractères
● Les strings en Python sont de type str. On les définit :
○ Avec des simples guillets ('mon texte'). Attention ! Différent de Java
○ Avec des guillemets doubles ("my text")
○ Avec des triple guillemets simples ('''my text'''). Possibilité de revenir à la ligne dans les guillemets.
■ Souvent utilisé pour faire des commentaires sur plusieurs lignes
○ Avec des triple guillemets doubles ("""my text"""). Idem
● Opérations à connaître : [Link] (trouve une sous-string), [Link] (tout en
minuscule), [Link] (tout en majuscule), [Link] (enlève des caractères au
début et à la fin de la string), [Link] (coupe la string en un tableau de
sous-string suivant un délimiteur), [Link](ancien, nouveau)
(remplace ancien par nouveau dans s)

CSC 4538 Introduction à Python


Chaînes de caractères - Exemple
"This is " + "Sparta!" # Concaténation

"WolOLO".lower() # "wololo"

"Where is Wally?".find("Wally") # 9, l’index

"This is a sentence".split(" ")

# ['This', 'is', 'a', 'sentence']

" White ".strip() # "White"

"Hello".replace("H", "h")

# 'hello'

CSC 4538 Introduction à Python


Les listes - Rappels
● Une liste est une structure de donnée permettant de facilement parcourir les
éléments et de rajouter des éléments
● La liste chaînée est constituée de nœuds contenants une valeur et une référence
vers le nœud suivant

CSC 4538 Introduction à Python


Les listes - Rappels
1 2 4 6

Ajout 1 2 3 4 6

Suppression 1 2 3 4 6

CSC 4538 Introduction à Python


Les listes
● Les tableaux ne sont pas présents par défaut. À la place, on utilise des listes (de
type list)
● Une liste peut contenir des éléments de plusieurs types (différent de Java)
● Déclaration avec une crochets, et les éléments sont séparés par des virgules
● Opérations : len(l) (nombre d’éléments), l1 + l2 (concaténation),
[Link](element) (ajout d’un élément à la fin de la liste), l[i] (obtient l’
élément à la position i), l[i:j] (tous les éléments entre i inclu et j exclu), x in
l (vérifie si x est dans l), x not in l (vérifie si x n’est pas dans l), list(x)
(conversion en liste si possible)

CSC 4538 Introduction à Python


Les types séquences
● La plupart des opérations présentes pour les listes fonctionnent aussi pour
d’autres types “séquence” :
○ Les strings
○ Les tuples : structure immuable déclarée avec des éléments entre parenthèses
○ Les ranges : représentation d’entiers entre deux limites
■ range(x) : tous les éléments entre 0 et x (exclu)
■ range(x, y) : tous les éléments entre x (inclu) et y (exclu)
■ range(x, y, z) : tous les éléments entre x (inclu) et y (exclu) avec un pas de z

CSC 4538 Introduction à Python


Exemple
l = [1, "2", 3.3]
l[2] # 3.3
l[0:2] # [1, "2"]
l[-1] # 3.3, les indices négatifs commencent de la fin
l[-1] = 3 # On peut changer les valeurs
[Link](4)
print(l) # [1, "2", 3.3, 4]
len(l) # 3
"2" in l # True
2 not in l # True
"2" in "123456" # True
t = (1, 2, "3")
t[0] # 1
t[0] = 0 # Erreur, les tuples sont immuables
range(3) # 0, 1, 2
range(1, 3) # 1, 2
list(range(1, 5, 2)) # 1, 3

CSC 4538 Introduction à Python


Les sets
● Les sets permettent de représenter un ensemble de valeur (pas de duplication) et
de pouvoir rapidement ajouter un élément et vérifier la présence d’un élément
● Définit avec des accolades { }
● Opérations : x in s, x not in s, len(s), [Link](s2),
[Link](s2), [Link](s2), [Link](s2),
[Link](x), set(x) (conversion en set)

CSC 4538 Introduction à Python


Les sets - Example
s0 = {1, 2, "3", 2}
# is equivalent to
s0 = set([1, 2, "3", 2])

len(s0) # 3, the element 2 is saved only once


2 in s # True

s1 = {2, 5}
[Link](s0) # {1, 2, "3", 5}
[Link] (s0) # {2}
[Link](s0) # {5}

CSC 4538 Introduction à Python


Les tables d’associations
● Les tables d’associations permettent d’associer à des clefs une valeur
● En Python, on les appelle les dictionnaires. On utilise les accolades {} comme les
sets, mais les éléments sont de la forme key: value
● Opérations : d[clef] (obtient la valeur associée à la clef), len(d) (nombre de
clefs), [Link]() (retourne les clefs), [Link]() (retourne les valeurs),
[Link]() (retourne une collection de tuples (clef, valeur)), clef in d
(vérifie si la clef est dans d), [Link](key, valeur_défaut) (obtient la valeur
associée à une clef si elle existe, sinon un valeur par défaut)

CSC 4538 Introduction à Python


Les tables d’associations - Exemples
d = {"France": "Paris", "Italy": "Rome"}
"France" in d # True
len(d) # 2
[Link]() # "France", "Italy"
[Link]() # "Paris", "Rome"
[Link]() # ("France", "Paris), ("Italy", "Rome")
d["France"] = "Lyon"
# On change la valeur associée à France
[Link]("Spain", "Inconnu")
# 'Inconnu'

CSC 4538 Introduction à Python


None
● En Python, le null de Java s’écrit None
● Retourné par défaut par une fonction sans valeur de retour
● Pour savoir si une valeur est None, on utilise value is None ou value is
not None

CSC 4538 Introduction à Python


Structures de contrôle

CSC 4538 Introduction à Python


Les structures de contrôle
● On retrouve les même que dans les autres langages
● En Python, l’indentation est obligatoire car elle permet de délimiter les blocs

CSC 4538 Introduction à Python


Conditions
Parenthèses non
if condition: obligatoires autour
instruction1 de la condition
instruction2
...
elif condition:
instructions Attention à
elif condition: l’indentation
instructions
else:
instructions elif et non else if

CSC 4538 Introduction à Python


Conditions - Exemple
if x > 0:
print("Positive")
elif x < 0:
print("Negative")
else:
print("Zero")

CSC 4538 Introduction à Python


Boucles - while
while condition:
instructions

l = [1, 2, 3, 4]
# Une liste est considérée vraie si elle n’est pas vide
while l:
# pop enlève et retourne le dernier élément de la liste
print([Link]())

CSC 4538 Introduction à Python


Boucles - For
● La boucle for diffère des autres langages. En Python, on itère toujours sur une
collection
● Comme les autres langages, on peut utiliser break pour sortir de la boucle et
continue pour passer directement à l’itération suivante
for var in collection:
instructions

CSC 4538 Introduction à Python


Boucles - For - Exemple
# Itère sur une liste
l = [1, 2, 3, 4]
for x in l:
print(x)

# Itère sur des entiers


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

# Itère sur tous les items d’un dictionnaire


# (clefs et valeurs ensembles)
d = {"France": "Paris",
"Italy": "Rome"}
for key, value in [Link]():
print("The key is ", key,
"and the value is ", value)
# Remarquez la syntaxe de print

CSC 4538 Introduction à Python


Définition de fonctions
● On définit une fonction avec le mot clef def
def function_name(arg1, arg2, ...):
# implementation

def add(first_value, second_value):


return first_value + second_value
# Appel à la fonction
x = add(1, 2)

● On peut donner une valeur par défaut à un argument avec la syntaxe : arg=valeur

CSC 4538 Introduction à Python


List comprehension
● Il est possible de créer une liste à partir d’une autre liste en utilisant une syntaxe très
simple :
[expression for x in collection ]

Ou
[expression for x in collection if condition ]

Ce qui est équivalent à :


res = []
for x in collection:
if condition:
[Link](expression)

● Avantages : Clair, concis, et souvent plus rapide

CSC 4538 Introduction à Python


List comprehension - Exemple
# Divise tous les nombres pairs par deux
[x // 2 for x in range(10) if x % 2 == 0]
# [0, 1, 2, 3, 4]

# Fonctionne aussi avec les sets...


{x // 2 for x in range(10)}
# {0, 1, 2, 3, 4}

# et avec les dictionnaires !


{x: x // 2 for x in range(10)}
# {0: 0, 1: 0, 2: 1, 3: 1, 4: 2, 5: 2, 6: 3, 7: 3, 8: 4, 9: 4}

# Définition d'une matrice nulle


l = [[0 for _ in range(10)] for _ in range(10)]
[x for row in l for x in row] # Aplanit la matrice

# Permet aussi de créer des générateurs


# Qui ne génère une valeur que si on y accède
(x for row in l for x in row)

CSC 4538 Introduction à Python


Structure d’un projet Python

CSC 4538 Introduction à Python


La fonction main
● Par défaut tout le code contenu dans un fichier Python va être exécuté
○ Bien pour écrire un script
○ Problématique pour des projets plus complets où l’on importe d’autres fichiers Python
● On peut définir une “fonction main” en Python, qui en réalité est une condition
if __name__ == '__main__':
# Le contenu de notre “fonction” main

CSC 4538 Introduction à Python


Les bibliothèques
● Les bibliothèques sont essentielles en Python
● On peut les importer avec le mot-clé import ou from … import
● Pour les bibliothèques composées de plusieurs sous-composantes, on utilise le .
pour sélectionner ce qui nous intéresse
import math
[Link](3.3)

from math import floor


floor(3.3) # Pas besoin de préciser math

# On suit un chemin avec .


from [Link] import URLError

● On peut aussi importer ses propres fichiers en enlevant le .py du nom

CSC 4538 Introduction à Python


Passer des arguments à un programme
● En Java, nous récupérions les arguments directement depuis la fonction main
● En Python, on doit importer la variable contenant les arguments
from sys import argv

print(argv)
# ['[Link]', '1', '2']
# On doit parser les arguments manuellement
x = int(argv[1])
y = int(argv[2])

print(x + y)
# 3

● Pour une gestion avancée des arguments, utilisez la bibliothèque argparse

CSC 4538 Introduction à Python


Programmation orientée objet

CSC 4538 Introduction à Python


Programmation orientée objet en Python
● Python est aussi un langage orienté objet comme Java
● On déclare une classe avec le mot-clé class
● Pour référer à l’objet actuel, on utilise le mot-clé self (this de Java) qui est
toujours donné en premier argument.
● Le constructeur de la classe se fait toujours à travers une fonction __init__.
Cette fonction initialise les champs (pas la peine de les déclarer en dehors du
constructeur).
● Les méthodes fonctionnent comme les fonctions, mais prennent self en premier
argument

CSC 4538 Introduction à Python


POO - Exemple
class Person:
def __init__(self, name, surname):
[Link] = name
[Link] = surname
# Appel interne
self.get_fullname()

def get_fullname(self):
return [Link] + ' ' + [Link]

if __name__ == '__main__':
p1 = Person('John', 'Smith')
print(p1.get_fullname())

CSC 4538 Introduction à Python


Héritage
● La notion d’héritage existe aussi en Python, mais n’est pas abordée dans ce cours
● Tous les objets héritent de object qui définit quelques méthodes utiles :
○ def __str__(self) : retourne la représentation en string de l’objet
■ méthode appelée par print(x) ou str(x)
○ def __hash__(self) : retourne un hash de l’objet
○ def __eq__(self, other) : teste l’égalité entre deux objets
■ méthode appelée quand on fait x == y
○ def __lt__(self, other) : teste si self est inférieur à other
■ méthode appelée quand on fait x < y
○ def __bool__(self) : retourne l’interprétation booléenne de l’objet
○ def __len__(self) : retourne la “longueur” de l’objet
○ …

CSC 4538 Introduction à Python


Méthodes statiques
● Python possède aussi des méthodes statiques comme Java, c'est-à-dire des
méthodes ne nécessitant pas d'instance pour être appeler.
● Pour déclarer une méthode statique, il faut rajouter une annotation
@staticmethod avant la déclaration de la méthode (qui est dans une classe), et
enlever self des arguments.
class Math:
@staticmethod
def floor(x):
return [Link](x)

[Link](11.6)

CSC 4538 Introduction à Python


Les fichiers

CSC 4538 Introduction à Python


Lecture de fichiers
● Savoir lire et écrire des fichiers est crucial en Python car on l’utilise sous pour écrire de petits
scripts qui transforment un fichier.
● Pour lire un fichier :
with open("mon_fichier.txt ") as f:
# instructions
● Le bloc open est une syntaxe particulière en Python qui définit une zone de validité d’un objet
(ici f) et ferme cet objet à la fin du bloc. En Java, il faut ouvrir le fichier, mais penser à le fermer
plus tard (aussi possible en Python)
● f représente le flux de lecture du fichier. Il vient avec plusieurs fonctions, dont
[Link]() qui retourne une liste des lignes de f. Il est aussi possible d’itérer directement
sur f.

CSC 4538 Introduction à Python


Lecture de fichiers - Exemple
with open("mon_fichier.txt") as f:
for line in f:
# Enlève les retours à la ligne
line = [Link]()
print(len(line))

CSC 4538 Introduction à Python


Écriture de fichier
● Pour écrire un fichier, il faut l’ouvrir en mode écriture en ajoutant le paramètre
“w” (write) aux arguments de open.
with open("[Link] ", "w") as f:
# On peut maintenant utiliser la fonction write
[Link]("Hello")

● [Link] prend un string en argument. Si l’on veut enregistrer une liste, on peut
soit utiliser la fonction join, soit passez par un JSON.
"\n".join(["Hello", "world!"])
# 'Hello\nworld!'

import json
[Link](["Hello", "world!"])
# '["Hello", "world!"]'

CSC 4538 Introduction à Python


Pour la prochaine fois…

CSC 4538 Introduction à Python


Pour le 19 mai
● Se créer un compte sur LeetCode ([Link]
● Résoudre 10 problèmes en utilisant Python
○ Au moins 1 difficile (hard)
○ Au moins 4 moyens (medium) ou plus
○ Au moins 6 faciles (easy) ou plus
● M’envoyer par mail le lien de votre profil LeetCode pour que je puisse vérifier
○ [Link]

CSC 4538 Introduction à Python


En route pour le TP !

CSC 4538 Introduction à Python

Vous aimerez peut-être aussi