Używam funkcję wejścia jako sposób, aby wstrzymać moje skryptypoprawny sposób wstrzymać Pythona programu
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
czy istnieje formalny sposób to zrobić?
Używam funkcję wejścia jako sposób, aby wstrzymać moje skryptypoprawny sposób wstrzymać Pythona programu
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
czy istnieje formalny sposób to zrobić?
Wydaje mi się, że jestem w porządku (lub raw_input()
w Pythonie 2.X). Ewentualnie możesz użyć time.sleep()
, jeśli chcesz zatrzymać się na określoną liczbę sekund.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
Wiem o funkcji spania w module czasu, ale co, jeśli mam długi blok tekstu, który chcę, aby użytkownik przeczytał? – RandomPhobia
Po prostu użyj 'print', aby wyświetlić długi blok tekstu, a następnie' input() 'lub' raw_input ('Naciśnij
W przypadku długiego bloku tekstu najlepiej jest użyć 'input()' (lub 'raw_input()' w Pythonie 2.x), aby zapytać użytkownika, a nie opóźnienie czasowe. Szybcy czytelnicy nie będą chcieli czekać na opóźnienie, wolni czytelnicy mogą chcieć więcej czasu na opóźnienie, ktoś może zostać przerwany podczas czytania i potrzebować dużo więcej czasu itp. Również, jeśli ktoś dużo korzysta z programu, on/może się przyzwyczaić do tego, jak to działa i nie musi nawet czytać długiego tekstu. Jest bardziej przyjazny, aby pozwolić użytkownikowi kontrolować czas wyświetlania bloku tekstu. – steveha
Jak podkreślił mhawke i steveha „s komentarze, najlepszą odpowiedzią na taką pytaniem byłoby:
W przypadku długiego bloku tekstu najlepiej jest użyć
input('Press <ENTER> to continue')
(lubraw_input('Press <ENTER> to continue')
na Python 2.x), aby wyświetlić monit użytkownika zamiast opóźnienia. Szybkie czytniki nie będą czekać na opóźnienie, wolni czytelnicy mogą chcieć więcej czasu na opóźnienia, ktoś może zostać przerwany podczas czytania i chcieć dużo więcej czasu, itd. Również, jeśli ktoś dużo korzysta z programu , on/ona może się przyzwyczaić do sposobu działania i nie musi nawet czytać długiego tekstu . Bardziej przyjazne dla użytkownika jest to, jak długo tekst wyświetlany jest do odczytu.
zastosowanie:
import os
os.system("pause")
Jest to specyficzne dla systemu Windows, podczas gdy wszystkie istniejące odpowiedzi są niezależne od platformy. – lvc
miałem podobne pytanie i używałem sygnału:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Więc zarejestrowania obsługi dla SIGINT sygnału i pauzy oczekiwania na jakikolwiek sygnał. Teraz spoza twojego programu (np. W bash) możesz uruchomić kill -2 <python_pid>
, który wyśle sygnał 2 (to jest SIGINT) do twojego programu Pythona. Twój program zadzwoni do twojej zarejestrowanej obsługi i zacznie działać.
Tak więc, znalazłem to bardzo dobrze w moich staraniach o kodowanie. Po prostu stworzył funkcję na samym początku mojego programu,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
i teraz mogę korzystać z funkcji pause()
ilekroć muszę tak jakby pisałem plik wsadowy. Na przykład, w programie takim jak ten:
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()
Teraz oczywiście program ten nie ma celu i tylko dla celów przykładowych, ale można zrozumieć dokładnie, co mam na myśli.
UWAGA: W Pythonie 3, trzeba będzie użyć input
w przeciwieństwie do raw_input
myślę, że najlepszym sposobem, aby zatrzymać wykonanie jest funkcja time.sleep(). jeśli trzeba zawiesić wykonanie tylko w niektórych przypadkach można po prostu wdrożyć if tak:
if somethinghappen:
time.sleep(seconds)
można pozostawić pusty gałąź innego.
Bardzo prosta:
raw_input("Press Enter to continue ...")
exit()
Użyłem tej metody trochę, ale też lubię używać jej jako funkcji pause() i nie sądzę, że istnieje potrzeba wyjścia(). def pause(): return raw_input ("Naciśnij Enter, aby kontynuować ...") – jacktrader
print ("W ten sposób można wstrzymać")
input()
używam następujących do python
2 i 3, aby wstrzymać wykonanie kodu, dopóki użytkownik ENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Praca w debugger i używać breakpointów? –
Jestem początkującym w tym, ale według http://docs.python.org/2/library/functions.html#input, 'input (prompt)' jest równoważne 'eval (raw_input (prompt))' . To prawdopodobnie nie jest to, czego chcesz. – user100464
@ user100464: Jeśli to Python 3, to jest w porządku; "input" w Py3 jest takie samo jak "raw_input" Py2. Jeśli jest to Py3, to, co mają, jest w porządku, chociaż nie ma potrzeby przypisywania wartości zwracanej, jeśli nigdy nie jest używana. – ShadowRanger