Вопрос по python – Правильный способ приостановить программу Python

130

Я использовал функцию ввода как способ приостановки моих сценариев.

print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")

Есть ли формальный способ сделать это?

Работать в отладчике и использовать точки останова? g.d.d.c
@ user100464: Если это Python 3, то все в порядке;input в Py3 такой же, как Py2raw_input, Если это Py3, то, что у них есть, хорошо, хотя нет необходимости назначать возвращаемое значение, если оно никогда не использовалось. ShadowRanger
Я новичок в этом, но в соответствии сdocs.python.org/2/library/functions.html#input, input(prompt) эквивалентноeval(raw_input(prompt)), Это, вероятно, не то, что вы хотите. user100464

Ваш Ответ

10   ответов
5

Очень просто:

raw_input("Press Enter to continue ...")
exit()
Определенно, как этот :) Спасибо shb2789
Я немного использовал этот метод, однако мне также нравится использовать его как функцию pause (), и я не думаю, что есть необходимость в exit (). def pause (): вернуть raw_input (& quot; нажмите Enter, чтобы продолжить ... & quot;)
12

Итак, я нашел, что это очень хорошо работает в моих усилиях по кодированию. Я простоcreated a function в самом начале моей программы,

def pause():
    programPause = raw_input("Press the <ENTER> key to continue...")

и теперь я могу использоватьpause() функционировать всякий раз, когда мне нужно, как если бы я писал командный файл.For exampleв такой программе:

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()

Теперь очевидно, что эта программа не имеет цели и предназначена только для примера, но вы можете точно понять, что я имею в виду.

ПРИМЕЧАНИЕ: для Python 3 вам нужно будет использоватьinput в отличие отraw_input

0

что лучший способ остановить выполнение - это функция time.sleep (). если вам нужно приостановить выполнение только в определенных случаях, вы можете просто реализовать оператор if следующим образом:

if somethinghappen:
    time.sleep(seconds)

Вы можете оставить ветку else пустой.

4
Print ("This is how you pause")

input()
19

Я предполагаю, что вы хотите сделать паузу без ввода

использование

time.sleep (сек)

5

У меня был похожий вопрос, и я использовал сигнал:

import signal

def signal_handler(signal_number, frame):
    print "Proceed ..."

signal.signal(signal.SIGINT, signal_handler)
signal.pause()

Таким образом, вы регистрируете обработчик для сигнала SIGINT и приостанавливаете ожидание любого сигнала. Теперь вне вашей программы (например, в bash) вы можете запуститьkill -2 <python_pid>, который отправит сигнал 2 (т.е. SIGINT) в вашу программу на Python. Ваша программа позвонит вашему зарегистрированному обработчику и продолжит работу.

4

Как указаноmhawke а такжеstevehaкомментарии, лучшим ответом на этот точный вопрос будет:

For a long block of text, it is best to use input('Press <ENTER> to continue') (or raw_input('Press <ENTER> to continue') on Python 2.x) to prompt the user, rather than a time delay. Fast readers won't want to wait for a delay, slow readers might want more time on the delay, someone might be interrupted while reading it and want a lot more time, etc. Also, if someone uses the program a lot, he/she may become used to how it works and not need to even read the long text. It's just friendlier to let the user control how long the block of text is displayed for reading.

182

Кажется, хорошо для меня (илиraw_input() в Python 2.X). В качестве альтернативы вы можете использоватьtime.sleep() если вы хотите сделать паузу на определенное количество секунд.

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")
Просто использоватьprint отобразить длинный блок текста, а затемinput() или жеraw_input('Press <ENTER> to continue') в зависимости от вашей версии Python.
Я знаю о функции сна в модуле времени, но что, если у меня есть длинный блок текста, который я хочу, чтобы пользователь прочитал? RandomPhobia
Для длинного блока текста лучше всего использоватьinput() (или жеraw_input() на Python 2.x) подсказывать пользователю, а не задержку. Быстрые читатели не хотят ждать задержки, медленные читатели могут захотеть больше времени на задержке, кто-то может быть прерван во время чтения и хочет гораздо больше времени и т. Д. Кроме того, если кто-то часто использует программу, он она может привыкнуть к тому, как это работает, и ей даже не нужно читать длинный текст. Просто удобнее позволить пользователю контролировать, как долго блок текста отображается для чтения.
21

использовать:

import os
os.system("pause")
Это зависит от Windows, в то время как все существующие ответы не зависят от платформы.
5

python 2 и 3, чтобы приостановить выполнение кода, пока пользователь не нажметENTER

import six
if six.PY2:
    raw_input("Press the <ENTER> key to continue...")
else:
    input("Press the <ENTER> key to continue...")

Похожие вопросы