Shopy 101
← Structure d'un programme İndirmek için giriş yap
Afficher un texte Afficher un texte
Variables Variables
Partie 1 - Introduction
  1. Avant-propos à l'attention des non-programmeurs Une version complète existe
  2. Introduction Une version complète existe
  3. Installation Une version complète existe
  4. Éditeurs Une version complète existe
  5. Programmer en deux minutes Une version complète existe
Partie 2 - Le langage
  1. Afficher un texte Une version complète existe
  2. Structure d'un programme Une version complète existe
  3. Variables Une version complète existe
  4. Opérateurs Une version complète existe
  5. Structures de contrôle Une version complète existe
  6. Instructions répétitives Une version complète existe
  7. Types Une version complète existe
  8. Fonctions Une version complète existe
  9. Modules Une version complète existe
  10. Exercices Une version complète existe
  11. Regex Une version complète existe
  12. Programmation orientée objet pour les non-programmeurs Une version complète existe
  13. Classes Une version complète existe
  14. Classes et Interfaces graphiques Une version complète existe
  15. Fichiers Une version complète existe
  16. Exceptions Une version complète existe
  17. Bases de données  </span>%"}'>Fait à environ 50 %
  18. L'interface CGI En cours
  19. Applications web En cours de finition
  20. Réseau En cours
  21. Threads  </span>%"}'>Fait à environ 50 %
Partie 3 - Les bibliothèques
  1. Bibliothèques pour Python En cours
  2. L'interface graphique En cours
  3. Utilisation de fenêtres et de graphismes En cours de finition
  4. Les threads En cours
  5. XML  </span>%"}'>Fait à environ 50 %
  6. JSON  </span>%"}'>Fait à environ 50 %
  7. Tests En cours
  8. Analyse statique de programmes En cours
  9. Fabric En cours
  10. Le Web
Wikilivres connexes
Partie 1 - Introduction
  1. Avant-propos à l'attention des non-programmeurs Une version complète existe
  2. Introduction Une version complète existe
  3. Installation Une version complète existe
  4. Éditeurs Une version complète existe
  5. Programmer en deux minutes Une version complète existe
Partie 2 - Le langage
  1. Afficher un texte Une version complète existe
  2. Structure d'un programme Une version complète existe
  3. Variables Une version complète existe
  4. Opérateurs Une version complète existe
  5. Structures de contrôle Une version complète existe
  6. Instructions répétitives Une version complète existe
  7. Types Une version complète existe
  8. Fonctions Une version complète existe
  9. Modules Une version complète existe
  10. Exercices Une version complète existe
  11. Regex Une version complète existe
  12. Programmation orientée objet pour les non-programmeurs Une version complète existe
  13. Classes Une version complète existe
  14. Classes et Interfaces graphiques Une version complète existe
  15. Fichiers Une version complète existe
  16. Exceptions Une version complète existe
  17. Bases de données  </span>%"}'>Fait à environ 50 %
  18. L'interface CGI En cours
  19. Applications web En cours de finition
  20. Réseau En cours
  21. Threads  </span>%"}'>Fait à environ 50 %
Partie 3 - Les bibliothèques
  1. Bibliothèques pour Python En cours
  2. L'interface graphique En cours
  3. Utilisation de fenêtres et de graphismes En cours de finition
  4. Les threads En cours
  5. XML  </span>%"}'>Fait à environ 50 %
  6. JSON  </span>%"}'>Fait à environ 50 %
  7. Tests En cours
  8. Analyse statique de programmes En cours
  9. Fabric En cours
  10. Le Web
Wikilivres connexes

Les instructions

Un programme Python est composé d'instructions. Une instruction est un ordre unitaire donné à un programme. Par exemple afficher Bonjour est une instruction, de même que calculer un plus un.

La structure d'un programme Python est certainement ce qui étonne le plus le programmeur ayant l'habitude d'un langage plus traditionnel comme le C : en Python les limites des instructions et des blocs sont définies par la mise en page.

  • Le point-virgule (;) à la fin de chaque instruction est remplacé par le caractère de fin de ligne (symbolisé par "\n"). Ce qui simplifie la syntaxe car traditionnellement les points-virgules étaient toujours suivis de retours à la ligne.
  • Les accolades ({}) fréquemment utilisées pour définir les blocs sont remplacées par les niveaux d'indentations. En effet, il était déjà conseillé aux programmeurs de se servir aussi des sauts à la ligne et de l'indentation pour bien délimiter visuellement les blocs, donc c'est également un allègement du code.

En définitive, Python oblige à écrire du code lisible, et à prendre de bonnes habitudes conservables dans d'autres langages, ce qui en fait un langage idéal pour apprendre la programmation.

Les espaces sont ignorés

À part ceux qui servent à l'indentation, en début de ligne, les espaces placés à l'intérieur des instructions sont ignorés, sauf s'ils font partie d'une chaîne de caractères.

L'interpréteur Python commence par analyser la première ligne :

  • si celle-ci contient une instruction, alors il l'exécute
  • si l'instruction n'est pas une instruction de contrôle, alors, il passe à la ligne suivante, l'analyse et l'exécute
  • si le programme Python arrive à la fin du fichier à exécuter, alors, il sort du programme et en arrête l'exécution.
\nprint(\"Bonjour\")\n1+1\nc = 3e5\ne = m*c**2\na, b, c = 1, 2, 3\ndiscriminant = b**2-4*a*c\nlambda x,y : x + y\ndico1 = {'prénom':'Eric', 'nom':'tartempion'}\nprint (\"Bonjour %s\" % dico1['nom'])\n</syntaxhighlight>"}},"i":0}}]}'>
print("Bonjour")
1+1
c = 3e5
e = m*c**2
a, b, c = 1, 2, 3
discriminant = b**2-4*a*c
lambda x,y : x + y
dico1 = {'prénom':'Eric', 'nom':'tartempion'}
print ("Bonjour %s" % dico1['nom'])
Exemple 1 : quelques instructions

Notion de bloc d'instructions

Notez que le code du bloc le plus externe (bloc 1) ne peut pas lui-même être écarté de la marge de gauche (il n'est imbriqué dans rien).

Un bloc d'instructions est une suite d'instructions qui est alignée sur la même tabulation. Les blocs d'instructions sont créés par les instructions de contrôles comme if, while et for, ainsi que par les instructions permettant de déclarer des fonctions.

Sous Python, toutes les instructions composées ont toujours la même structure : une ligne d'en-tête terminée par un double point, suivie d'une ou de plusieurs instructions indentées sous cette ligne d'en-tête.

Ligne d'en-tête:
    première instruction du bloc
    ... ...
    ... ...
    dernière instruction du bloc

Il y a deux solutions pour indenter : utiliser quatre espaces ou un seul caractère tabulation, mais jamais un mélange des deux sous peine d'erreurs IndentationError: unindent does not match any outer indentation level. En effet, et même si le résultat paraît identique à l'écran, espaces et tabulations sont des codes binaires distincts : Python considérera donc que ces lignes indentées différemment font partie de blocs différents.

La tabulation est notamment la convention utilisée pour la librairie standard de Python, mais les espaces ont l'avantage de fonctionner avec tous les éditeurs (et ainsi, de pouvoir être plusieurs sur le même projet avec des éditeurs différents). On préférera donc se passer des tabulations : si vous utilisez un éditeur "intelligent", vous pouvez escamoter le problème en activant l'option "Remplacer les tabulations par des espaces", qui modifie ce que produit la touche tab.

S'il y a plusieurs instructions indentées sous la ligne d'en-tête, elles doivent l'être exactement au même niveau. Ces instructions indentées constituent ce que nous appellerons désormais un bloc d'instructions. Un bloc d'instructions est une suite d'instructions formant un ensemble logique, qui n'est exécuté que dans certaines conditions définies dans la ligne d'en-tête.

\n\n#Ce bloc d'instruction est collé contre le bord gauche du fichier\nprint(\"Je suis dans le premier bloc\")\nprint(\"Je suis toujours dans le premier bloc\")\n\nif (a == 12) : #L'instruction ''if'' initie un nouveau bloc\n #Ce bloc est a quatre espace du bord\n print(\"Je suis dans le second bloc\")\n print(\"Je suis encore dans le second bloc\")\n\n if (b == 13 ) :\n #Il est possible d'imbriquer des blocs dans des blocs\n print(\"Je suis dans un troisième bloc\")\n print(\"et ici aussi\")\n\n print(\"Je reviens dans le second bloc\")\n\nprint(\"Je suis revenu(e) dans le premier bloc\")\n</syntaxhighlight>\n"}},"i":0}}]}'>
#Ce bloc d'instruction est collé contre le bord gauche du fichier
print("Je suis dans le premier bloc")
print("Je suis toujours dans le premier bloc")

if (a == 12) : #L'instruction ''if'' initie un nouveau bloc
    #Ce bloc est a quatre espace du bord
    print("Je suis dans le second bloc")
    print("Je suis encore dans le second bloc")

    if (b == 13 ) :
        #Il est possible d'imbriquer des blocs dans des blocs
        print("Je suis dans un troisième bloc")
        print("et ici aussi")

    print("Je reviens dans le second bloc")

print("Je suis revenu(e) dans le premier bloc")
Exemple 2 : Les blocs