Python: Règles syntaxiques, blocs

From Wiki Cours
Jump to navigation Jump to search

<--Sommaire

Structuration et notion de bloc

En Python, chaque instruction s'écrit sur une ligne sans mettre d'espace:

a = 10
b = 3
print a, b

Les instructions simples peuvent cependant être mises sur la même ligne en les séparant par des points virgules ;, les lignes étant exécutées dans l'ordre de gauche à droite:

a = 10; b = 3; print a, b

De plus, la séparation entre les 'en-tête's qui sont des lignes de définition de boucles, de fonction, de classe qui se terminent par les deux points : et le contenu ou 'bloc' d'instructions correspondant se fait par indentation des lignes. Une indentation s'obtient par le bouton tab (pour tabulation) correspondant sur le clavier (bouton à gauche avec deux flèches) ou bien par 4 espaces successifs.

Un programme python se structurera donc typiquement sous la forme:

instruction-1
en-tête-1:
    instruction-2
    instruction-2
    en-tête-2:
        instruction-3
        instruction-3
    en-tête-2:
        instruction-3
        instruction-3
    instruction-2
    instruction-2
instruction-1
instruction-1

Par exemple:

def inverse(x):
    if x == 0.0:
        return 'inf'
    else:
        return 1./x

inverse(1.34)
inverse(0.0)

Les lignes trop longues

Il peut arriver que les expressions sur une ligne deviennent trop longue pour une bonne lisibilité du code ou tout simplement pour améliorer la lisibilité du code. Il est alors possible de poursuivre les instructions en utilisant le symbole '\' (le symbole '\n' signifie retour à la ligne):

labamba = "Para bailar la bamba,\n" \
          "Para bailar la bamba,\n" \
          "Se necesita una poca de gracia.\n" \
          "Una poca de gracia pa mi pa ti."
print labamba

from math import exp, sin, log
a = lambda x: exp( - sin( x) / x ) * log(x + 1) \
              + sin(x) / exp(x) \
              - 2

Commentaires

Tout ce qui est écrit après le symbole # ne sera pas lu par l'interpréteur. Cela permet d'introduire des commentaires explicatifs dans la source même du programme.

# voici une affectation
a = 10 # ou alors on aurait pu mettre b = 10

Pour commenter plusieurs ligne, il y a une solution inélégante et plutôt à éviter qui consiste à utiliser les trois guillemets habituellement réservés à la documentation des fonctions, des classes ou des modules.

a = 10
"""
Il était une fois une sorcière
qui aimait les pommes.
"""
a += 1

Si on veut omettre une partie du code, on peut le faire précéder par un test faux puis le transformer en test vrai pour l'activer mais ce n'est pas très élégant

a = 10
if False:
    print a+1
if True:
    print a+2

Mots-clé réservés

Ces mots ont une signification dans le langage et ne peuvent être utilisés pour des noms de variables, de fonctions, etc...

and ,as ,assert ,break ,class ,continue ,def ,del ,elif ,else ,except ,exec ,False ,finally ,for ,from ,global ,if ,import ,in ,is ,lambda ,None ,nonlocal ,not ,or ,pass ,print ,raise ,return ,True ,try ,while ,with ,yield