Syntaxe et objets de Base Python
Syntaxe de Base et Concepts Fondamentaux en Python
Section 1.1 : Les Bases de la Syntaxe Python
La syntaxe de Python est conçue pour être lisible et concise. Comprendre ses particularités peut vous aider à écrire du code plus efficace et expressif.
Expressions et Indentations
- Expressions : En Python, chaque ligne de code est généralement une expression, par exemple - a = 5ou- print(a).
- Indentations : Python utilise l’indentation pour définir des blocs de code. Contrairement à d’autres langages qui utilisent des accolades, l’indentation en Python n’est pas seulement pour la lisibilité mais est syntaxiquement significative. 
Commentaires
- En Python, les commentaires commencent par #. Tout ce qui suit#sur la ligne est ignoré par l’interpréteur.
- NB: L’utilisation du # est utilisé dans de nombreux langages de programmation, comme le C, le C++, le Java, le PHP, le Perl, le Ruby, le Python, etc. pour définir les commentaires
Types de Données Primitifs
- Nombres : Python supporte int,float, et plus rarement utilisés,complex.
- Chaînes de Caractères : Déclarées avec des guillemets simples 'texte'ou doubles"texte". Le+peut concaténer des chaînes.
- Booléens : TrueetFalse. Intéressant, en Python,0,None, un string vide'', et les collections vides comme[],{}sont considérés comme équivalents àFalse.
Section 1.2 : Variables et Opérateurs
Les variables en Python sont des identificateurs liés à des valeurs. Elles ne nécessitent pas de déclaration explicite de type.
Déclaration de Variables et Conventions de Nommage
- Les noms de variables doivent commencer par une lettre ou un underscore - _, suivis de lettres, chiffres, ou underscores.
- Les conventions de nommage courantes incluent - snake_casepour les variables et fonctions,- CamelCasepour les classes.
Opérateurs Arithmétiques et de Comparaison
- Python offre une gamme complète d’opérateurs arithmétiques (+,-,*,/,//pour la division entière,%pour le modulo,**pour la puissance) et de comparaison (==,!=,>,<,>=,<=).
Opérateurs Logiques
- Les opérateurs logiques incluent and,or, etnot.
Opérateurs Spéciaux
- Opérateurs Bitwise : Opèrent sur des bits et incluent &(ET),|(OU),^(XOR),~(NON),<<(décalage à gauche),>>(décalage à droite).
- Opérateur d’Identité : isetis notvérifient si deux variables pointent vers le même objet.
- Opérateur d’Appartenance : inetnot invérifient si une valeur est présente dans une séquence.
Section 1.3 : Structures de Contrôle
Les structures de contrôle en Python permettent d’exécuter conditionnellement des blocs de code ou de répéter des opérations.
Instructions Conditionnelles
- if,- else,- elifpermettent d’exécuter des blocs de code basés sur des conditions.
Boucles
- Boucle For : Itère sur une séquence (comme une liste, un tuple, un dictionnaire, un ensemble, ou une chaîne de caractères). 
- Boucle While : Continue à exécuter un bloc de code tant qu’une condition est vraie. 
Compréhensions de Liste
- Une façon concise de créer des listes. Par exemple, [x for x in range(10)]crée une liste des nombres de 0 à 9.
Section 1.4 : Gestion des Erreurs et Exceptions
La gestion des erreurs est cruciale pour écrire des applications robustes. Python fournit un mécanisme de gestion des exceptions pour gérer les erreurs de manière contrôlée.
Try-Except Blocks
- Un bloc - trypermet de tester un bloc de code pour les erreurs, et le bloc- exceptpermet de gérer l’erreur.
Gestion de Plusieurs Exceptions :
Vous pouvez spécifier plusieurs blocs except pour gérer différentes exceptions.
Bloc Finally :
Le bloc finally est facultatif et exécuté quel que soit le résultat des blocs try et except.
Section 1.5 : Exemple Concret Mélangeant les Concepts
Voyons comment on peut combiner les concepts abordés précédemment dans un exemple pratique. Cet exemple utilise une boucle while, une instruction conditionnelle if, et gère une éventuelle exception.
Exemple Pratique : Boucle et Conditions
Imaginons un scénario où nous avons deux variables x et y. Nous voulons exécuter une boucle qui continue tant que la somme de x et y est supérieure à 8. Dans la boucle, nous effectuons une opération qui peut potentiellement lever une exception.
Dans cet exemple, la boucle while continue de s’exécuter tant que la condition x + y > 8 est vraie. Si x est impair, le code essaie de diviser par zéro, ce qui lève une ZeroDivisionError. Dans ce cas, le message d’erreur est imprimé, et le mot-clé break interrompt la boucle. Le bloc finally est exécuté après chaque itération, peu importe les erreurs.
Section 1.6 : Structures de Données de Base - Listes et Tuples
Python offre plusieurs structures de données intégrées, comme les listes et les tuples, qui sont essentielles pour le stockage et la manipulation de données.
Listes
- Les listes en Python sont des collections ordonnées et modifiables. Elles peuvent contenir des éléments de différents types. 
- Opérations de Base sur les Listes : - Ajout d’éléments (append,extend).
- Suppression d’éléments (remove,pop).
- Accès et slicing (ma_liste[0],ma_liste[1:3]).
 
- Ajout d’éléments (
Tuples
- Les tuples sont similaires aux listes, mais ils sont immuables (leurs valeurs ne peuvent pas être modifiées après leur création). 
- Utilisés pour des données qui ne doivent pas être modifiées, comme les clés dans les dictionnaires. 
Section 1.7 : Structures de Données de Base - Dictionnaires et Ensembles
Les dictionnaires et les ensembles sont des structures de données puissantes pour stocker et gérer des ensembles de données.
Dictionnaires
- Les dictionnaires stockent des paires clé-valeur. Ils sont mutables et non ordonnés. 
- Manipulation de Dictionnaires : - Ajout et modification d’éléments (mon_dictionnaire["nom"] = "Bob").
- Suppression d’éléments (del mon_dictionnaire["age"],mon_dictionnaire.pop("langage")).
- Accès sécurisé (get).
 
- Ajout et modification d’éléments (
Ensembles
- Les ensembles sont des collections non ordonnées de valeurs uniques. Utiles pour les opérations mathématiques comme les unions, intersections, et différences. 
- Opérations sur les Ensembles : - Ajout (add) et suppression (remove) d’éléments.
- Opérations comme union,intersection, etdifference.
 
- Ajout (
Section 1.8 : Exemple Pratique Mélangeant les Structures de Données
Voyons comment combiner listes, tuples, dictionnaires et ensembles dans un exemple pratique.
Exemple de Manipulation de Structures de Données
Supposons que nous avons une liste de tuples, chaque tuple contenant le nom d’un étudiant et son score. Nous voulons créer un dictionnaire où chaque clé est un score unique, et la valeur est la liste des noms d’étudiants ayant ce score.
Dans cet exemple, nous parcourons la liste etudiants. Pour chaque tuple, nous vérifions si le score est déjà une clé dans le dictionnaire scores. Si ce n’est pas le cas, nous ajoutons une nouvelle clé avec le score et initialisons sa valeur avec une liste contenant le nom de l’étudiant. Si le score existe déjà, nous ajoutons simplement le nom de l’étudiant à la liste correspondante.
Section 1.9 : Compréhensions de Liste, de Dictionnaire et d’Ensemble
Les compréhensions en Python sont un moyen concis et puissant de créer de nouvelles listes, dictionnaires ou ensembles à partir de séquences ou d’autres structures itérables.
Compréhensions de Liste
- Les compréhensions de liste fournissent une façon concise de créer des listes. Elles consistent en une expression suivie par une clause - for, puis zéro ou plusieurs clauses- forou- if.
Compréhensions de Dictionnaire
- Semblables aux compréhensions de liste, mais créent des dictionnaires. Elles sont entourées de - {}avec une paire clé-valeur suivie d’une clause- for.
Compréhensions d’Ensemble
- Utilisées pour créer des ensembles de manière similaire aux compréhensions de liste, mais avec des éléments uniques. 
Section 1.10 : Exemple Concret Utilisant les Compréhensions
Les compréhensions peuvent être particulièrement utiles pour transformer et filtrer des données. Voici un exemple qui utilise des compréhensions de liste et de dictionnaire pour traiter des données.
Exemple Pratique : Transformation de Données
Imaginons que nous avons une liste de mots et que nous voulons créer un dictionnaire qui associe chaque mot à sa longueur, mais seulement pour les mots de plus de trois lettres.
Dans cet exemple, la compréhension de dictionnaire parcourt la liste mots, incluant uniquement les mots dont la longueur dépasse trois lettres. Pour chaque mot éligible, le dictionnaire longueur_mots est construit avec le mot comme clé et sa longueur comme valeur.
Section 1.11 : Opérateurs Ternaires et Expressions Lambda
Les opérateurs ternaires et les expressions lambda en Python offrent des moyens concis d’effectuer des opérations conditionnelles et de créer de petites fonctions anonymes.
Opérateurs Ternaires
- Les opérateurs ternaires permettent d’écrire des instructions conditionnelles en une seule ligne. La syntaxe est : - [valeur_si_vrai] if [condition] else [valeur_si_faux].
Expressions Lambda
- Les expressions lambda permettent de créer de petites fonctions anonymes. Elles sont utiles pour des opérations simples nécessitant une fonction. 
Section 1.12 : Techniques Avancées de Manipulation de Séquences
Python fournit des outils puissants pour manipuler des listes, des tuples et d’autres séquences de manière expressive.
Slicing Avancé
- Le slicing permet de sélectionner des sous-parties d’une séquence. En plus des bases, Python permet des slicings plus complexes. 
Listes et Dictionnaires Imbriqués
- Les listes et dictionnaires peuvent être imbriqués pour créer des structures de données complexes. 
Section 1.13 : Exemple Pratique Combinant Plusieurs Concepts
Pour conclure ce chapitre, combinons plusieurs des concepts abordés dans un exemple illustrant leur utilité pratique.
Exemple : Filtrage et Transformation de Données
Supposons que nous avons une liste de dictionnaires représentant des livres, et nous voulons extraire les titres des livres publiés après 2000.
Dans cet exemple, une compréhension de liste est utilisée pour parcourir livres, en extrayant le titre de chaque livre dont l’année est supérieure à 2000. Cela démontre comment les compréhensions de liste peuvent être utilisées pour filtrer et transformer des données de manière concise et lisible. ```
Pour vous entrainez à pratiquer ces notions: