Echanges autour d'EduPython.
Vous n'êtes pas identifié(e).
Bonjour,
utilisateur depuis de nombreuses années de python (avec IDLE de base puis NPP) avec mes élèves, ayant eu pas mal de difficultés d'installation j'étudie la pertinence du passage à EduPython.
Un point me gêne beaucoup :
Un input() ouvre une fenêtre 'popup'
un print() ne le fait pas.
Le résultat est un peu confus lorsque plusieurs questions/réponses se succèdent.
Je ne souhaite pas dans un premier temps utiliser Tkinter pour gérer les fenêtres.
Quelqu'un aurait-il une solution simple ?
Merci
Hors ligne
un input() permit une saisie de l'utilisateur
un print() affiche une valeur dans la console
EduPython utilise en effet des pop up et on n'y peut pas grand chose à ma connaissance...
Pour être plus clair on peut ajouter des textes dans des chaînes de caractères
comme ci-dessous :
nom_saisie = input("Saisir votre nom :")
print("Voici votre nom":, nom_saisie)
J'espère avoir pu vous aider si jamais vous revenez sur ce forum désertique ^^
Dernière modification par TheJulienM (2018-06-13 20:52:43)
Hors ligne
Bonjour,
Je ne pense pas que l'on puisse facilement modifier la fonction print sans Tkinter ou autre en effet. C'est l'éditeur PyScripter qui gère cela. Ceci étant dit, avec la version actuelle des programmes (il faudrait d'ailleurs mettre à jour la documentation) je pense que le input n'est plus trop d'actualité puisqu'il est préconisé (à juste titre d'utiliser des fonctions).
Avant :
L = int(input('Longeur')) l = int(input('Largeur')) p = 2*(L+l) print('Le périmetre vaut',p)
Maintenant :
def perimetre(L, l) : """ En entrée L et l sont deux nombres représentant respectivement la Longeur et la largeur d'un rectangle En sortie : un nombre indiquant le périmètre de celui-ci """ return 2*(L+l)
Vincent
Hors ligne
Bonjour,
Et on ne peut pas se passer de ces pop-ups de question ?
Y a t il un moyen de préciser à PyScripter de ne pas intercepter les input ?
Par exempl,e j'ai réalisé un puissance 4 jouable dans la console, en attendant de le faire avec PyGame.. l'inconvénient étant que le jeu demande avec des "input" les colonnes dans lesquelles jouer, c'est très désagréable...
J'ai essayé avec l'execution externe, mais je n'arrive pas à taper de réponse aux inputs... Je n'ai pas encore regardé plus en détails... Dans IDLE ou dans le shell/dos, cela ne pose pas de problème..
Cordialement,
Vincent S.
Dernière modification par Vincent S. (2018-10-18 12:58:48)
Vincent S.
Professeur de Mathématiques et ICN en Lycée.
Hors ligne
Bonjour,
Après quelques recherches sur les différents forum, je ne pense pas que l'on puisse modifier cela dans PyScripter à l'heure actuelle.
Vincent M
Hors ligne
Bonjour,
j'ai trouvé un bricolage qui permet d'afficher l'entrée au niveau de la console.
Ce n'est pas parfait mais ça permet de résoudre grossièrement le problème sans modifier les codes déjà écris:
input2=input def input(string=""): entree=input2(string) print(entree) return entree
Cela ne supprime pas la fenêtre Tkinter mais cela affiche (comme une sortie) ce qui est saisi par l'utilisateur au niveau de la console.
Quelqu'un saurait-il apporter les améliorations que je cherche:
- afficher en vert les entrées dans la console (mes sorties sont en rouge)
- faire de ce minicode un module à importer nommé ''lectureEntree'' qui permet de redéfinir la fonction input et de masquer ce code.
Cordialement,
Benjamin R,
Hors ligne
Bonjour,
En ce qui me concerne je n'ai pas de problème avec l'ouverture d'une fenêtre par le input, par contre il y a un délai pour répondre à la question, passer ce délai (qui doit être de 30" max), le programme remonte une exception "TimeoutError: result expired".
Est-il possible d'enlever ce délai ? et de laisser l'utilisateur prendre le temps qu'il faut pour répondre à la question.
Merci de votre aide
David (tout nouveau membre)
Hors ligne