Правильный способ, чтобы приостановить программу на Python



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



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


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

309   10  

10 ответов:

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

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")

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

import os
os.system("pause")

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

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

времени.сон (сек)

Итак, я обнаружил, что это очень хорошо работает в моих начинаниях кодирования. Я просто создана функция в самом начале моей программы,

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

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

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

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

raw_input("Press Enter to continue ...")
exit()

Я использую следующее Для python 2 и 3, чтобы приостановить выполнение кода, пока пользователь не нажмет введите

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

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

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. Ваша программа вызовет ваш зарегистрированный обработчик и продолжит работу.

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

для длинного блока текста лучше всего использовать input('Press <ENTER> to continue') (или raw_input('Press <ENTER> to continue') на Python 2.x) запрашивать пользователя, а не задержку по времени. Быстрые читатели не хочу ждать задержки, медленные читатели могут захотеть больше времени задержка, кто-то может быть прерван во время чтения его и хотите намного больше времени и т. д. Кроме того, если кто-то использует программа много, он/она возможно, привыкли, как это работает и не нужно даже читать долго текст. Это просто дружелюбнее, чтобы позволить пользователю контролировать, как долго блок текст отображается для чтения.

Print ("This is how you pause")

input()

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

if somethinghappen:
    time.sleep(seconds)

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

Comments

    Ничего не найдено.