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 :

Afficher lettre par lettre avec print()


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut Afficher lettre par lettre avec print()
    Bonjour, bonsoir ^^

    Pour être bref j'ai voulu faire quelque chose qui ressemble à une "barre d'attente" en faisant un ou comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import time
     
    for i in range(5):
    	print(".", end="")
    	time.sleep(1)
    mais au lieu de faire:
    1. Afficher
    2. Attendre
    3. Afficher
    4. Etc..

    Ça fait juste attendre 5 seconde et afficher "..." alors est-ce dû à comment est conçu la fonction print() ou à autre chose je suis un peu perdu avec ça

    EDIT: Je partage un petit exemple (fonctionnel) de ce que je voulais faire pour ceux qui passerait par là (sait on jamais)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/python3
     
    from time import sleep
     
    def display(text, sec=0.125, end_d="\n"):
        for char in str(text):
            print(char, end="", flush=True)
            sleep(sec)
        print(end=end_d)
     
    # " Demo technique "
    if __name__ == '__main__':
        display("Utilisation:  display(texte, temps entre affichage, fin du display comme ' print("", end=) '\n", 0.01)

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par bibifoot Voir le message
    Ça fait juste attendre 5 seconde et afficher "..." alors est-ce dû à comment est conçu la fonction print() ou à autre chose je suis un peu perdu avec ça
    Quand on a une question comme ça, il est intéressant de regarder la doc:

    https://docs.python.org/fr/3/library...ons.html#print

    Il suffit d'ajouter l'argument "flush=True" pour que le cache se vide à chaque fois.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Je ne connaissais pas cet argument, et je n'aurai pas eu l'idée moi même d'allez lire la doc pour print(), c'est très bête je vais me corriger merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur affichage en PHP et les quotes
    Par flavors dans le forum Langage
    Réponses: 20
    Dernier message: 19/08/2015, 15h27
  2. une question sur les includes comportement bizard
    Par e-m.guillaume dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h12
  3. [Debutant] Question sur le system.out.print
    Par thom02 dans le forum Langage
    Réponses: 8
    Dernier message: 19/07/2005, 18h19
  4. question sur le comportement des threads
    Par rose-bonbon dans le forum CORBA
    Réponses: 4
    Dernier message: 27/10/2004, 18h00

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