Leçon 2 : Bases de la Programmation

Leçon 2 : Bases de la Programmation

Introduction à Python

Python est un langage de programmation polyvalent, largement utilisé en Data Science en raison de sa simplicité, de sa lisibilité du code et de sa richesse en bibliothèques dédiées à l'analyse de données. Dans cette leçon, nous allons explorer les concepts fondamentaux de Python pour vous préparer à la programmation en Data Science.

Objectifs de la Leçon :

  • Comprendre les bases de Python en tant que langage de programmation.

  • Apprendre à écrire du code Python simple et lisible.

  • Découvrir les outils et les ressources pour apprendre Python.

Variables, Opérateurs et Structures de Contrôle

2.1 Variables

  • Définition : Une variable est un espace de stockage nommé utilisé pour stocker des valeurs. En Python, vous pouvez déclarer une variable en utilisant un nom de variable suivi d'un signe égal ( = ) et de la valeur que vous souhaitez stocker.

  • Exemple : age = 30

2.2 Opérateurs

  • Opérateurs mathématiques : Vous pouvez effectuer des opérations mathématiques en utilisant des opérateurs tels que +, -, *, /, % (modulo), etc.

  • Exemple : resultat = 10 + 5

  • Opérateurs de comparaison : Vous pouvez comparer des valeurs à l'aide d'opérateurs tels que == (égal à), != (différent de), < (inférieur à), > (supérieur à), etc.

  • Exemple : est_superieur = 10 > 5

2.3 Structures de Contrôle

  • Instructions conditionnelles : Les instructions if, elif (else if), et else permettent d'exécuter différents blocs de code en fonction de conditions.

  • Exemple :

      age = 18
      if age >= 18:
          print("Vous êtes majeur.")
      else:
          print("Vous êtes mineur.")
    
  • Boucles : Les boucles for et while permettent de répéter des blocs de code plusieurs fois.

  • Exemple :

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

Fonctions et Bibliothèques Python Utiles

2.4 Fonctions

  • Définition : Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Python offre de nombreuses fonctions intégrées, et vous pouvez également créer vos propres fonctions.

  • Exemple :

      def addition(a, b):
          return a + b
      resultat = addition(10, 5)
    
  • Appel de Fonction

Une fois qu'une fonction est définie, vous pouvez l'appeler en utilisant son nom suivi de parenthèses contenant les arguments nécessaires. Par exemple :

somme = addition(10, 5)

Portée des Variables

Les variables définies à l'intérieur d'une fonction sont locales à cette fonction, ce qui signifie qu'elles ne sont pas accessibles en dehors de cette fonction. Cela favorise l'encapsulation et la prévention de conflits de noms de variables.

2.5 Bibliothèques Python Utiles

Python dispose d'une vaste bibliothèque standard et de bibliothèques tierces qui étendent ses fonctionnalités. En Data Science, certaines bibliothèques essentielles sont :

  • NumPy : Pour le calcul numérique.

    a. Création de Tableaux

    NumPy permet de créer des tableaux multidimensionnels pour stocker des données. Par exemple, pour créer un tableau NumPy de 1 à 9 :

      import numpy as np
      tableau = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    

    b. Opérations Mathématiques

    NumPy offre des fonctions pour effectuer des opérations mathématiques sur les tableaux. Par exemple, pour effectuer une multiplication par scalaire :

      resultat = tableau * 2
    

    c. Indexation et Tranchage

    Vous pouvez accéder aux éléments d'un tableau et effectuer des tranchages pour extraire des sous-tableaux. Par exemple, pour obtenir les éléments de la deuxième à la cinquième position :

      sous_tableau = tableau[1:5]
    
  • Pandas : Pour la manipulation de données en tableaux (DataFrames).

    a. Structures de Données

    pandas offre deux principales structures de données : les Series (séries) et les DataFrame (tableaux de données). Vous pouvez les utiliser pour stocker et manipuler des données tabulaires.

    b. Lecture de Données

    pandas peut lire des données à partir de divers formats de fichiers, tels que CSV, Excel, et bases de données. Par exemple, pour lire un fichier CSV :

      import pandas as pd
      donnees = pd.read_csv('mon_fichier.csv')
    

    c. Exploration de Données

    pandas propose des fonctions pour explorer vos données, telles que head(), tail(), describe() et info(), qui vous donnent un aperçu rapide de vos données.

    d. Filtrage et Tri

    Vous pouvez filtrer les données en fonction de certaines conditions et trier les données en fonction de colonnes spécifiques. Par exemple, pour filtrer les lignes où une colonne 'Âge' est supérieure à 30 :

      resultat = donnees[donnees['Âge'] > 30]
    

    e. Agrégation

    pandas vous permet d'agréger des données en utilisant des fonctions telles que groupby(). Par exemple, pour calculer la moyenne d'une colonne en fonction d'une autre :

      moyenne_age_par_sexe = donnees.groupby('Sexe')['Âge'].mean()
    

    Ces exemples montrent comment NumPy et pandas simplifient les tâches courantes en Data Science, notamment la manipulation de données, les opérations mathématiques et l'analyse exploratoire des données.

  • Matplotlib et Seaborn : Pour la visualisation des données.

Matplotlib et Seaborn sont des bibliothèques de visualisation de données. Elles offrent de nombreuses options pour créer des graphiques et des visualisations informatives. Voici un exemple simple d'utilisation de Matplotlib pour tracer un graphique linéaire :

import matplotlib.pyplot as plt

# Données
x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 20]

# Créer un graphique linéaire
plt.plot(x, y)

# Ajouter des titres et des étiquettes
plt.title("Exemple de Graphique Linéaire")
plt.xlabel("Axe X")
plt.ylabel("Axe Y")

# Afficher le graphique
plt.show()

Scikit-Learn est une bibliothèque d'apprentissage automatique (machine learning) qui propose un large éventail d'algorithmes pour la classification, la régression, le regroupement, et plus encore. Voici un exemple de classification en utilisant l'algorithme k plus proches voisins (k-NN) :

from sklearn.neighbors import KNeighborsClassifier

# Créer un modèle k-NN
model = KNeighborsClassifier(n_neighbors=3)

# Entraîner le modèle sur des données d'apprentissage
model.fit(X_train, y_train)

# Faire des prédictions
predictions = model.predict(X_test)

Exercice Pratique

  • Installez Python sur votre ordinateur (si ce n'est pas déjà fait) et exécutez votre premier script Python.

  • Familiarisez-vous avec la déclaration de variables, les opérateurs, les instructions conditionnelles et les boucles.

  • Explorez la documentation de NumPy, Pandas et Matplotlib pour comprendre comment ces bibliothèques peuvent vous être utiles en Data Science

  • Essayez de créer une fonction Python qui effectue une opération mathématique de votre choix.

  • Utilisez Matplotlib pour créer un graphique de votre choix en utilisant des données fictives.

Nous avons abordé les bases de la programmation en Python, y compris la déclaration des variables, les opérateurs, les structures de contrôle, les fonctions et les bibliothèques Python essentielles en Data Science. Vous êtes maintenant prêt à commencer à écrire du code Python et à explorer davantage ce langage de programmation polyvalent.

Python : Structures de Données

2.6 Structures de Données

Python offre plusieurs structures de données pour stocker et organiser des informations. Voici quelques-unes des structures de données les plus couramment utilisées en Data Science :

Listes

  • Définition : Une liste est une collection ordonnée d'éléments, qui peut contenir des valeurs de différents types. Les éléments d'une liste sont indexés (numérotés) à partir de zéro.

  • Exemple :

      ma_liste = [1, 2, 3, 4, 5]
    

Dictionnaires

  • Définition : Un dictionnaire est une structure de données qui associe des clés à des valeurs. Les clés doivent être uniques. Les dictionnaires sont utiles pour stocker des données structurées.

  • Exemple :

      mon_dictionnaire = {'nom': 'John', 'âge': 30, 'ville': 'Paris'}
    

Tuples

  • Définition : Un tuple est similaire à une liste, mais il est immuable, ce qui signifie que son contenu ne peut pas être modifié une fois créé.

  • Exemple :

      mon_tuple = (1, 2, 3)
    

Séquences

  • Définition : Les séquences sont des structures de données ordonnées qui incluent des listes, des chaînes de caractères, des tuples et d'autres types de données itérables.

  • Exemple :

      ma_chaine = "Bonjour, Data Science !"
    

Opérations sur les Structures de Données

Python propose de nombreuses opérations pour manipuler les structures de données. Voici quelques exemples :

  • Accès aux éléments d'une liste : ma_liste[2] renverra le troisième élément.

  • Ajout d'un élément à une liste : ma_liste.append(6) ajoutera 6 à la fin de la liste.

  • Accès à une valeur dans un dictionnaire : mon_dictionnaire['nom'] renverra 'John'.

  • Concaténation de chaînes de caractères : chaine1 + chaine2 combinerait deux chaînes.

  • Itération à travers une séquence : Vous pouvez utiliser une boucle for pour parcourir les éléments d'une séquence.

Exercice Pratique

  • Créez une liste de noms de villes et utilisez une boucle for pour les afficher.

  • Créez un dictionnaire représentant un étudiant avec des clés telles que 'nom', 'âge', 'matière préférée', etc.

  • Explorez la documentation de Python sur les structures de données pour en savoir plus sur les opérations disponibles.

Les structures de données sont essentielles pour stocker et organiser des informations en Data Science. En les maîtrisant, vous serez en mesure de gérer et d'analyser des ensembles de données de manière plus efficace.

Opérations sur les Chaînes de Caractères

2.7 Opérations sur les Chaînes de Caractères

En Data Science, vous travaillerez souvent avec des données textuelles, et la manipulation de chaînes de caractères est un aspect important de la programmation en Python. Voici quelques opérations courantes sur les chaînes de caractères :

Concaténation

Vous pouvez combiner des chaînes de caractères en les additionnant. Par exemple :

chaine1 = "Bonjour"
chaine2 = " Data Science"
resultat = chaine1 + chaine2

Longueur d'une Chaîne

Pour déterminer le nombre de caractères dans une chaîne, vous pouvez utiliser la fonction len() :

chaine = "Data Science"
longueur = len(chaine)

Découpage de Chaînes

Vous pouvez découper une chaîne en utilisant des indices :

chaine = "Data Science"
partie = chaine[5:]  # Cela récupérera "Science"

Remplacement de Texte

Pour remplacer un texte par un autre, vous pouvez utiliser la méthode replace() :

chaine = "Bonjour, Data Science"
nouvelle_chaine = chaine.replace("Bonjour", "Hello")

Formats de Chaînes de Caractères

Python propose plusieurs méthodes pour formater des chaînes de caractères. Vous pouvez utiliser des f-strings, des méthodes de formatage ou l'opérateur %. Voici un exemple d'utilisation des f-strings :

nom = "Alice"
age = 30
message = f"Je m'appelle {nom} et j'ai {age} ans."

Exercice Pratique

  • Créez une chaîne de caractères avec une phrase de votre choix et utilisez des opérations pour la modifier.

  • Utilisez une des méthodes de formatage pour afficher une phrase avec des variables insérées.

  • Explorez davantage les opérations de chaînes de caractères en Python.

La manipulation de chaînes de caractères est un outil essentiel pour nettoyer, analyser et afficher des données textuelles en Data Science. Elle vous permettra de travailler avec des ensembles de données variés et de présenter vos résultats de manière plus compréhensible.

Gestion des Erreurs (Exceptions)

2.8 Gestion des Erreurs

La gestion des erreurs est un aspect essentiel de la programmation. Les erreurs peuvent survenir à tout moment, que ce soit en raison d'une mauvaise saisie de l'utilisateur ou de problèmes inattendus. Python offre un moyen de gérer ces erreurs à l'aide de blocs try...except. Voici comment cela fonctionne :

try:
    # Code qui pourrait provoquer une erreur
    resultat = 10 / 0
except ZeroDivisionError:
    # Que faire en cas d'erreur
    print("Division par zéro !")

Dans cet exemple, le code à l'intérieur du bloc try provoquerait une ZeroDivisionError car il tente de diviser par zéro. Le bloc except définit ce qu'il faut faire en cas d'erreur, à savoir afficher un message d'erreur.

La gestion des erreurs est cruciale pour garantir que votre programme ne se bloque pas en cas d'erreur inattendue.

Boucles et Itérations

2.9 Boucles et Itérations

Les boucles sont utilisées pour répéter un bloc de code plusieurs fois. Python propose deux types de boucles couramment utilisées : for et while.

Boucle for

La boucle for est utilisée pour itérer sur des séquences (comme des listes, des chaînes de caractères, des dictionnaires) ou sur une plage de nombres. Voici un exemple :

nombres = [1, 2, 3, 4, 5]
for nombre in nombres:
    print(nombre)

Cela affichera les nombres de 1 à 5.

Boucle while

La boucle while répète un bloc de code tant qu'une condition est vraie. Par exemple, pour afficher les nombres de 1 à 5 en utilisant une boucle while :

nombre = 1
while nombre <= 5:
    print(nombre)
    nombre += 1

Exercice Pratique

  • Écrivez un programme Python qui demande à l'utilisateur de saisir un nombre et affiche sa table de multiplication de 1 à 10.

  • Utilisez une boucle for pour itérer sur les éléments d'une liste de fruits et affichez-les.

  • Écrivez un programme qui demande à l'utilisateur de deviner un nombre secret (par exemple, 42) et utilisez une boucle while pour répéter la question jusqu'à ce que l'utilisateur trouve la bonne réponse.

Les boucles et la gestion des erreurs sont des outils puissants pour contrôler le flux de votre programme et gérer les situations imprévues. En les maîtrisant, vous serez en mesure d'automatiser des tâches répétitives et de rendre votre code plus robuste.

La suite du cours continuera à approfondir ces concepts et à vous guider dans la création de vos propres projets de Data Science en Python.