J'ai utilisé la fonction d'entrée comme un moyen de mettre mes scripts en pause.
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
existe-t-il un moyen formel de le faire ?
J'ai utilisé la fonction d'entrée comme un moyen de mettre mes scripts en pause.
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
existe-t-il un moyen formel de le faire ?
Je connais la fonction "sleep" du module temporel, mais que faire si j'ai un long bloc de texte que je veux faire lire à l'utilisateur ?
Il suffit d'utiliser print
pour afficher le long bloc de texte, puis input()
ou raw_input('Press <ENTER> to continue')
en fonction de votre version de Python.
Pour un long bloc de texte, il est préférable d'utiliser input()
(ou raw_input()
sur Python 2.x) pour inviter l'utilisateur, plutôt qu'un délai. Les lecteurs rapides ne voudront pas attendre un délai, les lecteurs lents pourraient vouloir plus de temps sur le délai, quelqu'un pourrait être interrompu pendant la lecture et vouloir beaucoup plus de temps, etc. De plus, si une personne utilise souvent le programme, elle peut s'habituer à son fonctionnement et ne plus avoir besoin de lire le long texte. Il est simplement plus convivial de laisser l'utilisateur contrôler la durée d'affichage du bloc de texte pour la lecture.
Cette solution est spécifique à Windows, alors que toutes les réponses existantes sont indépendantes de la plate-forme.
Pourquoi python implémenterait-il une fonction spécifique au système d'exploitation ? Cela n'a aucun sens.
Os.system() appelle une fonction système appelée "pause" - un ubuntu par exemple ne sait pas ce qu'est "pause", donc il retournera avec : sh : 1 : pause : non trouvé
J'ai donc trouvé que cela fonctionnait très bien dans mes efforts de codage. J'ai simplement a créé une fonction au tout début de mon programme,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
et maintenant je peux utiliser le pause()
chaque fois que j'en ai besoin, comme si j'écrivais un fichier batch. Par exemple dans un programme tel que celui-ci :
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
Bien entendu, ce programme n'a pas d'objectif et n'est qu'un exemple, mais vous pouvez comprendre ce que je veux dire.
NOTE : Pour Python 3, vous devrez utiliser input
à l'opposé de raw_input
J'ai eu une question similaire et j'utilisais le signal :
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Vous enregistrez donc un gestionnaire pour le signal SIGINT et mettez en pause en attendant tout signal. Maintenant, depuis l'extérieur de votre programme (par exemple dans bash), vous pouvez exécuter kill -2 <python_pid>
qui enverra le signal 2 (c'est-à-dire SIGINT) à votre programme python. Votre programme appellera votre gestionnaire enregistré et poursuivra son exécution.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Travailler dans un débogueur et utiliser des points d'arrêt ?