dans cette leçon, vous posez les fondations : comment python structure le code, ce qu’est une expression, une instruction, et comment documenter proprement.
objectifs
- comprendre l’indentation et les blocs
- distinguer expression et instruction
- utiliser les commentaires et docstrings
- écrire des lignes claires et bien formées
l’essentiel en 30 secondes
- python utilise l’indentation (espaces) pour délimiter les blocs
- un bloc commence après
:(if, for, while, def, class, try…) - une expression produit une valeur, une instruction fait une action
- les commentaires commencent par
#, les docstrings par""" ... """ - préférez les parenthèses pour les lignes longues plutôt que
\
indentation : la grammaire visuelle de python
- utilisez 4 espaces par niveau (pas de tabulations)
- tous les éléments d’un même bloc doivent être indentés au même niveau
- mélange tabulations/espaces → erreur
exemples
# correct
if True:
message = "ok"
print(message)
# incorrect (indentation incohérente)
if True:
print("deux espaces")
print("quatre espaces")
blocs et deux-points
les blocs suivent une ligne qui se termine par :.
age = 20
if age >= 18:
statut = "majeur"
else:
statut = "mineur"
autres en-têtes qui ouvrent un bloc : for, while, def, class, try/except, with.
expression vs instruction
- expression : a une valeur
2 + 3,"py" * 3,len([1,2]),x > 0 - instruction : contrôle ou effet
if,for,while,import,def, affectation=.
dans le repl, une expression affiche sa valeur :
>>> 1 + 2
3
noms et valeurs
- identifiants valides :
lettres,chiffres(pas en premier),_ - style conseillé :
snake_casepour variables et fonctions
littéraux usuels
n = 42 # int
x = 3.14 # float
s = "bonjour" # str (ou 'bonjour')
v = True # bool
z = None # absence de valeur
opérateurs et précédence
arithmétique
a = 7 + 3 * 2 # 13
b = (7 + 3) * 2 # 20
c = 7 // 3 # division entière -> 2
d = 7 % 3 # modulo -> 1
e = 2 ** 3 # puissance -> 8
comparaisons et logique
x = 5
0 < x < 10 # chaînage -> True
(x > 2) and (x < 8)
not (x == 5)
appartenance et identité
"py" in "python" # True
1 is 1 # True (identité objets immuables simples)
[1,2] is [1,2] # False (deux listes distinctes)
vérité et valeurs « falsy »
False, None, 0, 0.0, "", [], {}, set() sont considérés faux.
items = []
if not items:
print("liste vide")
commentaires et docstrings
commentaires sur une ligne
# calcule la surface d'un rectangle
area = 3 * 4
docstrings (chaînes au début d’un module, d’une fonction ou d’une classe) :
def area(w: float, h: float) -> float:
"""calcule l'aire d'un rectangle en unités carrées."""
return w * h
help(area) affiche cette docstring.
lignes longues et multi-lignes
préférez le regroupement par parenthèses
total = (
1 + 2 + 3 +
4 + 5
)
pour les structures littérales
nombres = [
1, 2, 3,
4, 5,
]
évitez \ sauf nécessité
# possible mais fragile :
result = 1 + 2 + \
3 + 4
petites constructions utiles
instruction vide
if False:
pass
suppression de nom
x = 10
del x
assignations composées
n = 1
n += 2 # n vaut 3
bonnes pratiques
- un fichier = un objectif clair
- noms explicites (
count_users, pascu) - pas de point-virgule pour enchaîner des instructions
- une seule instruction par ligne
exercices
-
indentation réécrivez ce code pour qu’il s’exécute sans erreur :
n = 5 if n % 2 == 0: print("pair") print("fin") else: print("impair") -
expressions vs instructions dans le repl, entrez trois expressions différentes puis trois instructions différentes. notez celles qui affichent une valeur sans
print(). -
précédence prédisez puis vérifiez les résultats :
3 + 4 * 2(3 + 4) * 22 ** 3 ** 2
-
docstring écrivez une fonction
perimeter(w, h)avec une docstring. ouvrez le repl, importez-la et exécutezhelp(perimeter). -
lignes longues créez une liste de 12 prénoms sur plusieurs lignes avec des parenthèses ou crochets, puis affichez sa longueur.
dépannage
- indentationerror remplacez les tabulations par des espaces, uniformisez à 4 espaces.
- unexpected indent / unindent does not match any outer indentation level le niveau ne correspond pas au bloc parent. réalignez tout le bloc.
- nameerror variable non définie au moment d’usage. vérifiez l’orthographe et l’ordre d’exécution.
- syntaxerror
cherchez le
:manquant, une parenthèse oubliée, ou une ligne mal indentée.