• 4 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 02/05/2018

Organisez un script

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

 

Dans ce chapitre, commencez votre tout nouveau projet dans les règles de l'art : en suivant de bonnes pratiques qui vous serviront dans bien des cas.

Commencez par créer un dossier pour votre programme. À l'intérieur, créez un fichier que vous appellerez  parite.py.

Ouvrez-le avec votre éditeur de texte favori.

Interpréteur et encoding

Ajoutez deux lignes en haut de votre script.

#! /usr/bin/env python3
# coding: utf-8
  • #! /usr/bin/env python3 : ce commentaire conditionnel indique que ce script doit être exécuté à l'aide de Python 3. Cela permet au système d'exploitation de connaître le chemin d'accès vers l'interpréteur Python. Sans cette ligne, vous pouvez rencontrer des problèmes lors de l'exécution du script.

  • # coding: utf-8 : cette ligne spécifie l'encodage du code source de notre script. Afin de prendre en compte les accents de notre chère langue fraaaançaise, nous utilisons le très commun utf-8. C'est souvent inutile si vous utilisez Python 3, car cette version utilise par défaut UTF 8, mais nécessaire avec Python 2.

 

Exécution maîtrisée

Créez ensuite une fonction main() qui aura pour objectif de contenir les différentes instructions lancées lors de l'exécution de votre script.

Il s'agit d'une convention qui rend votre code plus lisible. Ainsi, lorsque vous ouvrirez votre projet dans six mois vous saurez exactement où regarder pour comprendre comment votre programme est exécuté !

def main():
    pass

main()

D'ailleurs, laissez-moi vous parler d'une subtilité très importante. Que se passe-t-il si vous importez ce fichier dans un autre script en tant que module ? Actuellement, cela va déclencher la fonction main() et donc, par conséquent, exécuter des instructions qui devraient être lancées uniquement lors de l'exécution du fichier en ligne de commande.

Je n'ai pas bien compris pourquoi...

C'est assez simple. Lorsque vous importez un module, Python lit et exécute toutes les instructions de ce fichier. Vous pouvez ainsi utiliser tous les objets dans votre script. Si vous terminez par l'exécution d'une fonction, Python vous obéira : il exécutera bien la fonction main() !

Alors, comment faire ?

Encapsulez la fonction main() dans une structure conditionnelle :

if __name__ == "__main__":
    main()

 

Vous ne comprenez pas ? C'est normal, moi non plus je n'y comprenais rien quand j'ai découvert cela !

Je vous ai dit que l'interpréteur Python exécutait tout le code présent dans un fichier lors de sa lecture. En vérité, j'ai omis une partie de l'histoire : Python définit plusieurs variables spéciales avant la lecture du fichier. Par exemple, lorsque l'interpréteur Python lit votre fichier en tant que programme principal (donc si vous l'exécutez en ligne de commande), il crée une variable spéciale __name__ et l'associe à la valeur "__main__". Si votre fichier est importé en tant que module, la variable __name__ aura comme valeur le nom de votre module.

Prenons un autre exemple.

Imaginons le fichier suivant :

karadoc.py

#! /usr/bin/env python3
# coding: utf-8

if __name__ == "__main__":
    print("Les chicots, c'est sacré ! Parce que si j'les lave pas maintenant, dans dix ans, c'est tout à la soupe. Et l'mec qui me fera manger de la soupe il est pas né !")
else:
    print('Du passé faisons table en marbre.')

 

Exécutons le script :

$ python karadoc.py
Les chicots, c'est sacré ! Parce que si j'les lave pas maintenant, dans dix ans, c'est tout à la soupe. Et l'mec qui me fera manger de la soupe il est pas né !

 

Si par contre vous l'importez, vous pouvez constater que le résultat est différent :

$ python
Python 3.6.1 (default, Mar 23 2017, 16:49:06)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import karadoc
Du passé faisons table en marbre.

 

Bien ! Votre fichier est prêt à contenir le reste du projet. Avant de passer à la suite, j'aimerais vous présenter le concept d'environnement virtuel. À tout de suite !

 

C'est à vous !

Cliquez sur ce lien

 

Code du chapitre

Retrouvez le code de ce chapitre en cliquant ici. 

Exemple de certificat de réussite
Exemple de certificat de réussite