Home Python Projet avec python

Menu principal

Informatique

Mathématiques

Exemple de projet avec Python
Informatique - Python
Écrit par Arnaud Kientz   

graph

 

L'épreuve de bac en informatique se passe de la façon suivante :

  • préparation d'un projet sous python,
  • présentation de ce projet à l'aide d'un petit site web.

 

Le plus difficile là-dedans, c'est sûrement de trouver une idée, et de s'y fixer.

Il y a pourtant pas mal de possibilités, si on cherche à faire de petits utilitaires, c'est-à-dire ce genre de petits programmes qui rendent des services pratiques.

Beaucoup décident de s'orienter vers des jeux à l'aide de pygame, et ce n'est pas forcément le plus simple, car il faudra comprendre les aspects de la programmation orientée objet.

 

 


Une fois ce choix de fait, la seconde phase consiste en l'organisation de la structure du programmation et la recherche de documentation.

 

Prenons un exemple : imaginons que l'on veuille écrire un petit programme qui génère des pages web, permette de les visualiser, etc... avec Tkinter.

Il existe déjà des programmes très élaborés ( bien que je n'en sois absolument pas fan ) pour ce genre de tâches, donc il ne s'agit pas de réinventer la roue, mais plutôt de réaliser son propre projet.

 

Les questions à se poser :

  1. Quelles sont les connaissances supposées connues pour l'utilisateur ? Doit-on faire un programme pour un utilisateur n'ayant aucune notion ?
  2. Comment est-ce que l'utilisateur peut agir sur le code html ?
  3. Sous quelle forme stocker le code ?
  4. Comment peut-il le visualiser / voir le résultat ?
  5. Quelles options proposer pour améliorer la saisie ?

 

Question 1 : Quelles sont les connaissances supposées connues pour l'utilisateur ?

 

C'est une décision à prendre, et qui va diriger toute la programmation. Je penche pour un utilisateur qui a quelques notions, sans vraiment s'y connaitre.

Faire un programme pour un débutant complet est long et difficile, car il faut prendre en compte tous les aspects possibles.

On tentera à cet effet d'apporter le maximum de renseignements à l'utilisateur.

 

Question 2 : Comment est-ce que l'utilisateur peut agir sur le code html ?

 

Le plus classique et le plus utile, c'est d'afficher le code html à l'utilisateur, qu'il puisse cliquer et insérer du code ( avec des boutons ? ) où il le désire.

Du coup, cela soulève un autre problème : quel est le widget de tkinter le plus adapté pour réaliser cela ?

 

C'est à ce moment-là qu'il faut lire un peu de documentation...notamment celle de tkinter, faire le bon choix et se renseigner à fond sur le widget choisi.

 

Question 3 : Sous quelle forme stocker le code ?

 

Du code html, ce n'est que du texte, on pourra tout stocker dans une variable de type STRING pendant l'exécution du programme.

Mais il faudra penser à sauvegarder le tout, et le plus simple est de sauvegarder directement dans un fichier .html.

 

Donc, il chercher comment écrire du texte dans un fichier .html avec python. Je donne partiellement la réponse ( c'est le même comportement pour écrire dans un fichier texte ) :

 

 

f = open('monfichier.html', 'r+')
f.write("<h1>Hello World !</h1>")
f.close()

 

 

La fonction "open" permet d'ouvrir ( ou de créer s'il n'existe pas, suivant le mode ) le fichier "monfichier.html".

Le mode d'ouverture précisé est "r+", c'est-à-dire que c'est ouvert en lecture et écriture. Il existe bien d'autres modes, et je vous dirige vers la documentation officielle ou le livre de Swinnen pour de plus amples informations.

Cet objet est enregistré dans la variable "f", et toute manipulation de cet objet se fera par le biais de "f".

 

On voit les deux lignes suivantes qu'on écrit un titre de premier niveau en html, puis on ferme le fichier, à l'aide respectivement des méthodes ".write" et ".close".

 

Question 4 : Comment peut-il le visualiser / voir le résultat ?

 

Comme dit précédemment, l'utilisateur pourra voir le code html et directement insérer du nouveau code grâce au curseur de la souris.

Le code sera stocké dans un fichier html, alors pourquoi ne pas permettre d'ouvrir un navigateur pour voir le résultat ?

 

Bon, et comment on fait ? On cherche dans les modules de python, si il n'existe pas déjà une solution, et oh miracle ! Oui.

Le module webbrowser nous fournit tout ce dont on a besoin :

 

 

import webbrowser
webbrowser.open('monfichier.html')

 

 

C'est aussi simple que ça : le fichier "monfichier.html" sera ouvert par le navigateur par défaut du système.

 

Question 5 : Quelles options proposer pour améliorer la saisie ?

 

J'en ai assez dit pour initier le projet...mais il faut quand même savoir que le plus long n'est pas le moteur du programme, le plus long, c'est la finition, la gestion des erreurs, l'amélioration de l'interface ...

Chacun peut avoir ses propres idées, et on pourra proposer la coloration syntaxique ( c'est plus facile à lire si les balises sont en couleurs ), la complétion automatique, le choix de modèles, l'insertion de css, etc....

 

Les possibilités sont très nombreuses, et il faut veiller à ne pas surcharger le programme.

Mise à jour le Samedi, 02 Janvier 2010 18:55