Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2018-02-17 12:17:42

fred
Membre
Inscription : 2018-02-17
Messages : 1

utiliser les fonctions définies dans un script dans la console

Bonjour
Dans la fenêtre de script :

from turtle import *

def carre(n):
     for i in range(3):
        forward(n)
        left(90)

=> comment maintenant utiliser ma fonction <carré>
depuis la fenêtre de console ?

J'ai l'impression que l'import de turtle ne fonctionne pas ?
En passant par un ajout dans les "chemins Python" et en
important mon fichier (un import dans la console et en ayant
précisé le if __name__ ...), ce n'est pas plus concluant.
(Fan de Xcas, quand j'écris un programme dans la fenêtre dédiée,
je peux ensuite l'utiliser comme une fonction classique : je
voulais faire la même chose.)

Je jongle entre Linux et mes essais Python écrits avec Geany sous Linux chez moi et
EduPython avec PyScripter sous Windows au lycée : je pense que
PyScrypter est très convivial pour les élèves, mais certaines subtilités
m'échappent encore.

Hors ligne

#2 2018-02-18 08:58:58

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 57

Re : utiliser les fonctions définies dans un script dans la console

Bonjour,

     En temps normal, il faut exécuter le programme une première fois (flèche verte) pour que Python "apprenne" les fonctions. Après on peut exécuter n'importe laquelle dans la console. Idem, si on effectue une modification, il faut ré-exécuter le code ou au moins la sélection (bouton avec l'éclair).

      Pour la tortue, c'est un peu particulier car l'appel à un tracé doit se terminer par un mainloop() permettant de lancer le gestionnaire d'événement Tkinter pour éviter que la fenêtre ne gèle. On peut donc :

  • Soit modifier le code et ne pas utiliser la console :

    from turtle import *
    
    def carre(n):
         for i in range(3):
            forward(n)
            left(90)
    
    carre(300)
    
    mainloop()
  • Soit, si on veut utiliser la console, changer de moteur python (Executer -> Moteur Python) et choisir Distant(Tk) au lieu de Distant, on peut alors faire des appels sans que la fenêtre ne gèle.

Vincent M

Hors ligne

Pied de page des forums