beer importer

Document Actions
Réponses: 10   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

beer importer

Posté par magicvinni le 05/04/2010 21:42
Bonjour,

Je suis nouveau, donc je me présente : je suis enseignant en lycée où l'algorithme a fait son apparition. Nous sommes en train de développer une bibliothèque Lycée qui inclurai pas mal de choses utiles pour le lycée, en particulier qui inclurai déjà les bonnes bibliothèques.

Voici le début de ma bibliothèque nommée lycee.py :

from __future__ import division
from math import *
import tkMessageBox
import random
import matplotlib.pyplot as repere
import numpy as np
import sympy as cas

Ainsi les lycée n'auraient qu'à mettre : from lycee import * au début du programme pour que ça roule.

Et déjà des questions :

1) Mon "from __future__ import division" semble n'avoir aucun effet. s'il n'est pas appelé dans mon programme principal.

2) Nous utilisons PyScripter, et quand dans le programme principal, on tape "repere.", il n'y a plus d'autocomplétion, savez vous pourquoi ?

Merci de votre aide,

Vincent

Re: importer

Posté par bibile le 06/04/2010 15:03
je ne vais pas bcp aider, désolé..
mais si qqu'un connait un editeur dont la completion fonctionne parfaitement pour python, je suis preneur.
actuellement, j'ai le sentiment que Ulipad fonctionne le mieux http://code.google.com/p/ulipad/ il faut prendre le svn.
sinon, pydev pour eclipse fonctionnait assez bien aussi, mais je ne l'utilise pas, a tester.

apres, d'une maniere generale, je ne sais pas si c'est une bonne chose ce systeme d'import.
et pour matplotlib, je serai tenté de suivre la convention de la doc http://matplotlib.sourceforge.net/faq/usage_faq.html . ca semble ok pour pyplot.
import matplotlib.pyplot as plt

Re: importer

Posté par bibile le 06/04/2010 15:06
oups, le "ca semble ok pour pyplot.", c'etait pour la completion sous Ulipad que je venais de verifier.

Re: importer

Posté par fcodvpt le 14/04/2010 11:58
Bonjour,

Je n'ai jamais vu ce genre de chose - qui me fait penser à de l'inclusion de header c ou c++ - en python.

La directive import va importer les identifiants du module cité dans votre module lycee.py

Par exemple, "from math import *" (qui est déconseillé, voir best-pratices ...) va importer les identifiants du module math dans votre module lycee.py
Vous pourrez ensuite appeler "pi", "pow()" dans lycee.py

Mais ces identifiants ne deviennent pas des identifiants de votre module lycee.py et les personnes qui feraient un "from lycee import *" ne récupèreront pas les identifiants des modules importés dans lycee.py mais uniquement ceux définis dans votre module.

C'est pour cela que vous n'avez pas acces à division, repere ...

Il est déconseillé d'utiliser la syntaxe "from math import *" car elle peut créer des conflits (si vous importez d'autres modules qui définiraient les mêmes identifiants), il est préférable d'utiliser import math et d'appeler math.pi, math.pow()

Quelques références :
The import statement - http://docs.python.org/reference/simple_stmts.html#import
http://www.python.org/doc/faq/programming/#what-are-the-best-practices-for-using-import-in-a-module

Re: importer

Posté par magicvinni le 16/04/2010 20:31
Merci pour cette réponse...

Pensez-vous qu'il y a une solution à mon problème, j'ai lu en fin de section 6.12 : "A future statement typed at an interactive interpreter prompt will take effect for the rest of the interpreter session. If an interpreter is started with the -i option, is passed a script name to execute, and the script includes a future statement, it will be in effect in the interactive session started after the script is executed."

Mais je ne vois pas comment configurer cela dans mon PyScripter...

J'ai un dilemne : Je voudrais avoir cette nouvelle division, car l'autre est vraiment pédagogiquement mauvaise je trouve, et si je passe à Python 3.0, matplotib qui est une très bonne bibliothèque disparait....

Help,

Merci, vincent

Re: importer

Posté par jacko le 22/04/2010 18:10
1/ Votre fichier d'import partagé est une bonne façon de faire. Eviter simplement le :
from math import *
pour la raison évoquée plus haut. Faire simplement :
import math
Après :
from lycee import *
Votre élève fera :
math.cos(...)

2/ Concernant le "from __future__ import division", tout est normal : cette forme définit une modalité de compilation dont la portée est limitée au module contenant l'instruction (toujours la règle de modularité qui fait la puissance de Python). Ainsi, dans votre cas, la nouvelle division ne s'applique qu'aux instructions contenues dans votre fichier lycee.py (autrement dit est sans effet puisque celui-ci n'exécute que des "import", instruction non affectée par cette syntaxe de division). Lorsque votre élève exécute ensuite :
from lycee import *
il ne fait qu'importer les symboles définis dans lycee.py, nullement les modes de compilation.

Etant donné ceci, je ne vois pas de solution....

Re: importer

Posté par magicvinni le 23/04/2010 23:54
Merci pour ces précieuses précisions...

Du coup en regardant dans les options de compilations, j'ai réussit à faire ce que je voulais : en appelant "python.exe -Qnew test.py" la vraie division est prise en compte.

Seul problème, je n'arrive pas à configurer PyScripter de la version PythonPortable pour lui préciser cette option lors de l'exécution.

Si quelqu'un a une idée, cela me permettrai de terminer ce projet... Merci

Vincent

Re: importer

Posté par magicvinni le 27/06/2010 10:33
Bonjour,

Petit up, car mon projet touche à sa fin, et c'est la dernière chose qui me reste à faire : inclure le -Qnew dans la compilation sous pyscirpter de portablepython toutes les idées sont bonnes à prendre...

Merci,
Vincent

Re: importer

Posté par kamelmaths le 29/07/2010 10:29
Bonjour,

à ce sujet, je suis en train de rédiger un petit tutoriel sur les bases de la programmation python à l'usage des lycéens dans l'optique de la partie algorithmique du programme de mathématiques de seconde, c'est-à-dire en évitant certains détails techniques (ce qui me va bien d'ailleurs car je ne suis pas un pro).

c'est http://python.lycee.free.fr/

J'espère que cela sera utile à certains. Par ailleurs si vous voulez me signaler des erreurs, voire vous joindre à moi pour la rédaction, j'en serai très content.

Kamel

Re: importer

Posté par merwok le 25/08/2010 05:17
Il est possible de définir un fichier qui sera exécuté au démarrage d’un interpréteur interactif (« python » normal, je ne connais pas PyScripter) :

http://docs.python.org/using/cmdline#PYTHONSTARTUP

Re: importer

Posté par magicvinni le 27/08/2010 17:29
OK, merci de cette info précieuse !

Vincent

Python.org : Le site officiel du langage Python.
Zope.org : Le site web officiel de Zope.
Daily Python-URL : Actus de l'univers Python.
Tribute to Zyons : Zyons notre ami et membre fondateur de l'Afpy, nous quittait en 2005.