Как прервать программу в питоне

Сегодня мы узнаем об операторах break и continue в Python. Эти ключевые слова используются для изменения потока цикла в Python.

Что делают операторы break и continue в Python?

Операторы break и continue в Python изменяют поведение цикла во время его выполнения. Рассмотрим пример, в котором вы запускаете цикл в течение определенного периода. В определенный момент нужно, чтобы цикл завершился и перешел к следующему оператору в вашем коде.

В такой момент лучше всего работает оператор break. Точно так же, если вы хотите, чтобы цикл пропустил итерацию и перешел к следующей итерации, вы должны использовать оператор continue.

1. Оператор прерывания break

Оператор break прерывает цикл. Посмотрите на пример ниже. Допустим, вы хотите напечатать список всех нечетных чисел, но хотите, чтобы цикл остановился, как только число превысит 10.

В таком случае вы, очевидно, можете указать диапазон, но другой вариант ‒ выйти из цикла с помощью оператора break.

Пример

number = 1 #Number is initially 1 while True : #This means the loop will continue infinite time print (number) #print the number number+=2 #calculate next odd number # Now give the breaking condition if number > 10: break; #Breaks the loop if number is greater than ten print (number) #This statement won’t be executed

Пример оператора break в python

16.3 Цикл while. Операторы break и continue. Бесконечный цикл. Основы Python

В данном примере вы увидите, что операторы после перерыва не выполняются. Итак, здесь код остановится перед печатью 11.

Оператор прерывания также можно использовать в цикле for. Предположим, вы печатаете слова из списка. Если какое-либо слово соответствует слову «exit» не будет напечатано, и цикл завершится. Следующий код иллюстрирует эту идею.

words = [«rain», «sun», «moon», «exit», «weather»] for word in words: #checking for the breaking condition if word == «exit» : #if the condition is true, then break the loop break; #Otherwise, print the word print (word)

Читайте также:
Как переустановить все программы

Пример инструкции break с циклом for в Python

2. Оператор continue

Оператор continue используется для пропуска итерации цикла при выполнении условия.

Пример работы

Возьмем здесь пример. В приведенном ниже фрагменте кода распечатываем все числа от 1 до 10.

Но когда итерация достигает номера 7, я хочу пропустить ее и перейти к печати 8.

numbers = range(1,11) »’ the range(a,b) function creates a list of number 1 to (b-1) So, in this case it would generate numbers from 1 to 10 »’ for number in numbers: #check the skipping condition if number == 7: #this statement will be executed print(«7 is skipped») continue #this statement won’t be executed print («This won’t be printed») #print the values #for example: #2 is double of 1 print (number*2), print («is double of»), print (number)

Пример кода для оператора continue

Уроки Python Как сделать задержку времени

Давайте рассмотрим тот же пример с циклом while.

numbers = [ 1, 2, 4, 3, 6, 5, 7, 10, 9 ] pos = 0 #initial position is one while pos < len(numbers): #checking skipping condition if number is divisible by two, it is even if numbers[pos] % 2 == 0 : #increment the position by one pos = pos + 1 continue #print the odd number print (numbers[pos]) #increment the position by one pos = pos + 1

Источник: pythonim.ru

Python. Прервать выполнение скрипта по времени

Бывают ситуации, когда надо ограничить время выполнения скрипта. К примеру, в программе есть запрос к удалённому серверу, который может длиться сколь угодно долго. В таком случае надо сделать прерывание выполнения функции при длительном простое. В этой статье рассмотрю простейший способ создания такого прерывания.

Рабочая среда: Linux Mint + Python (версия 2.7.12).

Программист: я — непрофессионал в Python. За всю жизнь написал на нём меньше тысячи строк кода. Поэтому формулировки могут быть неточными. Изучать Python не хочу, потому что использую его для очень простых задач.

Методы: Реализуем прерывание через библиотеку «signal». Потому что это самый простой способ.

Прерывание выполнения скрипта по времени

Возьмём простую тестовую программу:

#!/usr/bin/python -i
import time
try:

time.sleep(5)

except Exception as e:

print e

Здесь time.sleep(5) — это пятисекундная задержка. Она будет выполнять роль функции, которая может исполняться очень долго. И нам необходимо ограничить время её выполнения — прервать через 2 секунды.

Читайте также:
Лучшие программы для слабого ПК

Воспользуемся библиотекой «signal». Signal представляет собой таймер, который будет считаться в фоновом режиме, параллельно с программой. На работу Signal не влияет ничего, в том числе задержка через time.sleep(5) . Signal сработает (выдаст Exception) в любом случае, как только таймер отсчитает нужное количество секунд.

Синтаксис команды прост:

signal.alarm(N) — запускает таймер сигнала на N секунд

signal.alarm(0) — останавливает таймер.

Вставим signal в пример:

#!/usr/bin/python -i
import signal
import time
try:

signal.alarm(2)
time.sleep(5)
signal.alarm(0)

except Exception as e:

print e

Посмотрим внимательнее на скрипт. Сначала запускается двухсекундный отсчёт signal.alarm(2) , затем пятисекундная задержка time.sleep(5) . В конце выполняется команда signal.alarm(0) , которая останавливает отсчёт до срабатывания сигнала.

Как можно догадаться, с таким скриптом Exception всегда будет срабатывать. Потому что задержка в 5 секунд выполняется дольше, чем время ожидания сигнала в 2 секунды.

Попробуйте изменить время сна с time.sleep(5) на time.sleep(1) . И Exception не будет происходить.

Специфический ответ от signal

В приведённом примере во время вызова Exception в переменной «e» будет находиться текст «Сигнал таймера». Это не информативно. Но есть способ задать этот текст:

#!/usr/bin/python -i
import signal
import time

def signal_handler(signum, frame):

raise Exception(» Script is too slow! «)

signal.signal(signal.SIGALRM, signal_handler)

try:

signal.alarm(2)
time.sleep(5)
signal.alarm(0)

except Exception as e:

print e

Теперь во время прерывания будет печататься текст » Script is too slow! «.

Заключение

Если вам понадобится ограничить время работы python скрипта, то легче всего это можно сделать через «signal» библиотеку.

P.S.

Можно сделать через библиотеку thread, но там больше заморочек.

Публикации из этого раздела:

  • Bitrix загрузить файл в свойство через форму — Загрузка файла на сайт — это довольно рядовой процесс. Но как загрузить пользовательский файл в свой.
  • PHP заменить в строке — str_replace — Продолжаю рубрику шпаргалок PHP. В прошлый раз писал про обрезку строк. Вторая востребованная функци.
  • PHP есть ли значение в массиве — in_array — Одной из часто встречающихся функцией в php является in_array. Эта функция проверяет присутствует ли.
  • Как удалить любое приложение на Android — Купив новый телефон от фирмы iTel из ценовой категории «бабушкафон» (самый дешёвый), обнаружил, что .
  • WordPress 4.6 — cURL error 23 (продолжение) — До сих пор мучаюсь с новой версией WordPress 4.6. Как уже писал в статье «WordPress 4.6 — cURL error.
  • Украсть пароль из буфера обмена — Так уж получилось, что храню все пароли в открытом виде, в текстовых файлах. Конечно, это небезопасн.
  • Android. Отключение автозапуска программ — В этой статье расскажу, как именно можно отключить программы из автозагрузки, чтобы они не занимали .
  • Резервные копии из папок. Хранение бэкапов — Часто простые домашние пользователи хранят данные на единственном диске, в одном экземпляре. Это нео.
Читайте также:
Программа эксель как посчитать сумму

4 комментариев к “ Python. Прервать выполнение скрипта по времени ”

Годно. Просто. Понятно.
Только версию указывайте пожалуйста.

Благодарю!
Насколько понял, в моём случае скрипт исполняется Python’ом версии 2.7.12 . Выяснял так:
import sys
print (sys.version)

Источник: www.alexgur.ru

Как прервать выполнение скрипта Python? [Дубликат]

Только один способ, которым я смог это сделать. Нет гарантии безопасности ваших существующих данных.

Немедленно удалите файлы данных и перезапустите mongod.

Например, с помощью ubuntu (путь по умолчанию к данным: / var / lib / mongodb) у меня было пару файлов с именем вроде: collection. #. Я сохраняю коллекцию.0 и удаляю все остальные.

Кажется более простым способом, если у вас нет серьезных данных в базе данных.

задан Community 23 May 2017 в 10:31

8 ответов

Для выхода из сценария, можно использовать,

import sys sys.exit()

можно также обеспечить значение статуса выхода, обычно целое число.

import sys sys.exit(0)

Выходы с нулем, который обычно интерпретируется как успех. Ненулевые коды обычно рассматривают как ошибки. Значение по умолчанию должно выйти с нулем.

import sys sys.exit(«aa! errors!»)

Печать «aa! ошибки!» и выходы с кодом состояния 1.

существует также _exit () функция в модуле OS. sys.exit () функция повышает исключение SystemExit для выхода из программы, таким образом попробуйте операторы, и код очистки может выполниться. OS. _ выход () версия не делает этого. Это только заканчивает программу, не делая никакой очистки или сбрасывая буферы вывода, таким образом, это не должно обычно использоваться.

документы Python указывают на ту OS. _ выход () является нормальным способом закончить дочерний процесс, созданный вызовом к os.fork (), таким образом, он действительно имеет использование при определенных обстоятельствах.

Источник: legkovopros.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru