Forum EduPython

Echanges autour d'EduPython.

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

#1 2018-05-28 13:48:52

BenoitR
Membre
Inscription : 2018-05-28
Messages : 1

Input() dans la console

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

#2 2018-06-13 20:52:14

TheJulienM
Membre
Inscription : 2018-03-18
Messages : 3

Re : Input() dans la console

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

#3 2018-06-17 08:28:49

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

Re : Input() dans la console

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

#4 2018-10-18 12:54:20

Vincent S.
Membre
Inscription : 2018-10-18
Messages : 1

Re : Input() dans la console

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

#5 2018-10-24 08:48:38

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

Re : Input() dans la console

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

#6 2019-05-01 15:05:50

papaLya
Membre
Lieu : Niger
Inscription : 2018-12-21
Messages : 3
Site Web

Re : Input() dans la console

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

#7 2019-11-06 11:29:34

dguez
Membre
Inscription : 2019-11-06
Messages : 1

Re : Input() dans la console

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

Pied de page des forums