Syntaxe Fondamentale et Structure du Langage Python

Gestion de l'Encodage des Fichiers Source

Par défaut, Python 3 utilise l'encodage UTF-8. Cependant, il est possible de spécifier un encodage différent en ajoutant une déclaration spécifique sur l'une des deux premières lignes du script. Cette déclaration doit suivre une syntaxe précise, reconnue par les analyseurs lexicaux :

# -*- coding: utf-8 -*-

D'autres formats comme # coding=utf-8 ou les formats spécifiques à VIM sont également acceptés. Si un fichier contient des caractères non-ASCII (comme des accents ou des caractères chinois) sans déclaration appropriée, une erreur de type SyntaxError: (unicode error) peut survenir. Pour éviter cela, assurez-vous que votre éditeur de code sauvegarde les fichiers en UTF-8 sans signature (BOM), ou utilisez la signature si vous travaillez spécifiquement sous Visual Studio.

Structure des Lignes : Logiques vs Physiques

Un programme Python est décomposé en une suite de lignes logiques. La fin d'une ligne logique est marquée par le jeton NEWLINE.

1. Jonction explicite de lignes

Pour étendre une instruction sur plusieurs lignes physiques, on utilise le caractère antislash (\). Cela permet de fusionner la ligne actuelle avec la suivante :

valeur_totale = prix_unitaire * quantite + \
               frais_livraison - \
               remise_fidelite

2. Jonction implicite

Les expressions entourées de parenthèses (), de crochets [] ou d'accolades {} peuvent être réparties sur plusieurs lignes sans utiliser d'antislash. C'est la méthode recommandée pour une meilleure lisibilité :

villes_europe = [
   "Paris", "Berlin", "Madrid",
   "Rome", "Bruxelles", "Lisbonne"
]

Identifiants et Nommage

Un identifiant sert à nommer des variables, des fonctions, des classes ou des modules. Les règles sont les suivantse :

  • Doit commencer par une lettre (A-Z, a-z) ou un tiret bas (_).
  • Peut contenir des chiffres (0-9) après le premier caractère.
  • Sensible à la casse (MonScore est différent de monscore).
  • Depuis Python 3, les caractères Unicode (accents, idéogrammes) sont autorisés, bien que l'usage de l'anglais reste la norme technique.

Mots-clés Réservés

Certains mots ont une signification fixe et ne peuvent pas être utilisés comme noms de variables. Vous pouvez consulter la liste via le module keyword :

import keyword
print(keyword.kwlist)

En plus des mots-clés classiques (if, while, class, etc.), Python introduit des soft keywords comme match, case, et type. Ceux-ci ne sont réservés que dans certains contextes syntaxiques spécifiques.

L'Indentation : Pilier de la Structure

Contrairement à de nombreux langages utilisant des accolades, Python utilise l'espacement en début de ligne pour définir les blocs de code. Le niveau d'indentation doit être identique pour toutes les instructions d'un même bloc.

def verifier_seuil(valeur):
   if valeur > 100:
       print("Seuil dépassé")
   else:
       print("Valeur acceptable")

Note cruciale : Il est fortement déconseillé de mélanger les tabulations et les espaces. La convention standard (PEP 8) préconise l'utilisation de 4 espaces par niveau d'indentation.

Classes d'Identifiants Spéciaux

L'usage des tirets bas suit des conventions précises en Python :

  • _variable : Indique un usage interne (non importé par from module import *).
  • variable_ : Utilisé pour éviter les conflits avec des mots-clés Python.
  • __variable : Déclenche la transformation de nom (name mangling) pour rendre l'attribut "privé" au sein d'une classe.
  • __init__ : Noms "Dunder" (Double Underline) réservés par le système pour des méthodes spéciales.
  • _ : Variable temporaire ou résultat de la dernière évaluation dans l'interpréteur interactif.

Importation de Modules

Le système de modules permet d'organiser le code et de réutiliser des fonctionnalités :

# Import complet
import math
print(math.sqrt(16))

# Import spécifique
from datetime import datetime
print(datetime.now())

# Import avec alias
import pandas as pd

Espaces et Séparateurs

En dehors du début de ligne (indentaiton), les espaces, tabulations et sauts de page servent de séparateurs de jetons mais n'influent pas sur la logique. Par exemple, x=1 et x = 1 sont équivalents, bien que la seconde forme soit privilégiée pour la clarté visuelle.

Étiquettes: Python syntaxe encodage Indentation variables

Publié le 19 juillet à 16h15