IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Créer un input dynamique


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 32
    Par défaut Créer un input dynamique
    Bonjour à tous.
    J'ai un tout petit problème qui sera rapidement réglé par des connaisseurs

    J'ai dans une variable fix (pref_age) = age préféré le chiffre 18.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pref_age = "18"
    age = input("Quel est votre age : ")
    print(age)
    j'aimerais qu'il m'écrive de lui même par défaut 18 à input et que si on veut changer il suffit de remplacer (delete les caractères et puis ré ecrire) 18 par son age.
    Dans le cas ou on ne remplace pas si on appuie sur "enter" il encode 18. donc au print il doit afficher 18.

    J'ai chercher sur le net comme un buffle mais rien trouvé, c'est peut être une autre fonction que input mais je vois pas quoi.

    PS : python 3 sous windows

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pref_age = "18"
    age = input("Quel est votre age : ")
    if not age: age = pref_age
    print(age)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    age = '18' and raw_input("Quel est votre age : ") or '18'
    print age

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 32
    Par défaut
    pour ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pref_age = "18"
    age = input("Quel est votre age : ")
    if not age: age = pref_age
    print(age)
    c'est presque ce qu'il faut.

    En fait ça serait nickel pour qu'il écrive de lui même dans la console après les : le chiffre 18 et que ce chiffre soit éditable par la suite si on ne le veut pas.
    faudrait en fait faire une sorte de print(pref_age) mais un print que on peut effacé (je parle dans la console bien sur).

    vous voyez ce que je veux dire ?
    merci pour votre aide

  4. #4
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut

    Ce que tu demandes n'est pas possible à ma connaissance. Je vois comment faire ce que tu veux, mais uniquement graphiquement.

    A+

    pfeuh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from Tkinter import *
    from tkMessageBox import *
    from tkSimpleDialog import *
     
    def traitement():
        global age
        age = askinteger("", "Quel est votre age?", parent=root, initialvalue=age)
        if age != None:
            showinfo("", "Vous avez %s ans"%(age), parent=root)
     
    root = Tk()
    age = 18
    Button(root, text='SAISIE DE L\'AGE', width=60, height=3, command=traitement).grid()
     
    root.mainloop()

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 714
    Par défaut
    Salut,
    On devrait pouvoir faire cela avec readline comme le montre l'exemple de doug hellmann ici - enfin à la fin.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 714
    Par défaut
    Salut,
    Comme j'avais besoin d'utiliser readline, je me suis permis de coder cela.
    En gros my_raw_input "améliore" raw_input:
    - en l'interfaçant avec readline ce qui permet d'éditer (emacs ou vi) la ligne et de rappeler les lignes précédentes.
    - ajout du paramètre "text" qui sera ce qui est ré-affiché et utilisé par défaut si l'utilisateur tape <CR>
    - retourne de l'unicode: de fait la chose n'est plus si 'raw'...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import readline
    import sys
     
    def pre_input_hook(utext):
        readline.insert_text(utext)
        readline.redisplay()
     
    def my_raw_input(prompt, text=None):
        # inject text as default if any
        if text is None: readline.set_pre_input_hook()
        else: readline.set_pre_input_hook(lambda: pre_input_hook(text))
        # get input
        line = raw_input('Prompt ("stop" to quit): ')
        # handle encoding
        encoding = getattr(sys.stdin, "encoding", None)
        if encoding and not isinstance(line, unicode):
            line = line.decode(encoding)
        return line
     
    if __name__ == '__main__':
        default = None
     
        while True:
            line = my_raw_input('Prompt ("stop" to quit): ', default)
            if line == 'stop':
                break
            print 'ENTERED: "%s"' % line
            default = line
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2013, 09h47
  2. Procédure Stockée pour créer des TABLE dynamiquement
    Par GuyverZ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/05/2009, 22h29
  3. Créer un objet dynamiquement
    Par soad dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 08/11/2005, 14h03
  4. [DisplayTag] Créer un lien dynamique avec javascript
    Par babylone7 dans le forum Taglibs
    Réponses: 3
    Dernier message: 20/04/2005, 10h23
  5. [DisplayTag] Comment créer un lien dynamique
    Par tscoops dans le forum Taglibs
    Réponses: 3
    Dernier message: 17/02/2005, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo