Как сделать постоянную проверку условий в python
Перейти к содержимому

Как сделать постоянную проверку условий в python

  • автор:

Постоянная проверка условия в фоне

Как сделать чтобы постоянно в фоновом режиме проверялось условие допустим: программа постоянно проверяла при этом всем выполняется другой блок кода, а как только условие верное мы его выполняем хоть даже оно на первой строке кода, а мы на 300

morozhenoye_upalo = False if morozhenoye_upalo = True: print ("podnyat") morozhenoye_upalo = True 

Отслеживать
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
задан 12 июн 2020 в 18:50
66 7 7 бронзовых знаков

То есть первый алгоритм является долгим (или бесконечным), и при нажатии он прерывается и начинается другой?

12 июн 2020 в 18:56

Ну смотри у меня есть типо такой алгоритмик после покупаем мороженого мы сожем ходить с ним когда угодно и делать что угодно но в любой он может упасть и условие «мороженое упало» выполняетса и у нес запускаетса цыкл поднять мороженое и выбросить его и так далее. Я хочу узнать как зделать так что бы условие проверялось постоянно (не через while или for ) ну тип как в фоновом режыме когда у нас какойто алгоритм выполняетса

12 июн 2020 в 20:43

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

возможно вам подойдут threading

from threading import Timer class RepeatTimer(Timer): def run(self): while not self.finished.wait(self.interval): self.function(*self.args, **self.kwargs) def check(): print('check') 
from b_file import check if __name__ == '__main__': RepeatTimer(120, check).start() # функция check будет выполняться в отдельном потоке каждые 2 минуты

Отслеживать
ответ дан 13 июн 2020 в 8:33
10.1k 5 5 золотых знаков 22 22 серебряных знака 67 67 бронзовых знаков

Смотрите я посути новичок и я хочу узнать как зделать что бы условие проверялось всегда, пример кода:

13 июн 2020 в 10:58

как сделать что бы условия мороженое упало стало верным даже когда оно совпадает только в коде ниже его

13 июн 2020 в 11:03

По мне, лучше сделать свойство и/ли функцию

#via Function fldIceCreamDropped = False; def SetIceCreamDropped(Value): fldIceCreamDropped = Value if (fldIceCreamDropped): print('Ахтунг ахтунг') . . SetIceCreamDropped(True) 
#via Property class APerson(object): def __init__(self): self.ficeCreamDropped = False; def iceCreamDroppedSet(self, value): print("Setting an Ice"); self.ficeCreamDropped = value if ( self.ficeCreamDropped ): print("Dropped . "); iceCreamDropped = property(None, iceCreamDroppedSet); man = APerson() . . man.iceCreamDropped = True 

Соответственно, как только будет задано значение — именно в этот момент произойдёт обработка падения мороженого.

Значение не будет проверятся всегда (да и не должно), но отработает именно тогда, когда значение будет изменено.

Проверка условий, конструкция if/elif/else в Python

Условный оператор if/elif/else, ветвление кода программы

Возможно, самый известный тип инструкций — это конструкция if/elif/else . Часто возникает необходимость, чтобы некоторый код выполнялся только при соблюдении определенного условия или код подлежащий выполнению, должен выбираться исходя из выполнения одного из нескольких взаимоисключающих условий.
Например:

>>> x = int(input("Please enter an integer: ")) # Please enter an integer: 42 >>> if x  0: . x = 0 . print('Negative changed to zero') . elif x == 0: . print('Zero') . elif x == 1: . print('Single') . else: . print('More') # More 

Ключевое слово elif является сокращением от else if . Инструкции elif и else могут отсутствовать и не являются обязательными. Инструкция elif может повторяться сколько угодно раз if/elif/else . Такая последовательность инструкций elif является заменой для конструкции switch или case , которые есть в других языках программирования.

Составная инструкция if , elif и else обеспечивает условное выполнение блоков инструкций.
Она имеет следующий синтаксис:

if выражение: блок кода elif выражение: блок кода elif выражение: блок кода . . else: блок кода

Конструкция if вычисляет и оценивает выражения одно за другим, пока одно из них не окажется истинным, затем выполняется соответствующий блок кода . После выполнения блока кода первого истинного ( True ) выражения, последующие инструкции elif / else не вычисляются и не оцениваются, а блоки кода в них не выполняется. Если все выражения ложны ( False ), выполняется блок кода инструкции else , если он присутствует.

В предложениях if и elif в качестве условия можно использовать любое выражение Python. В подобных случаях говорят, что условие используется в логическом контексте. В логическом контексте любое выражение рассматривается как истинное или ложное. Любое ненулевое число или любой непустой контейнер (строка, кортеж, список, словарь, множество) расценивается как истинное значение. Нуль (любого числового типа), None и пустой контейнер расцениваются как ложные значения. Для тестирования значения x в логическом контекстеиспользуйте следующий стиль написания кода:

if x: 

Это наиболее ясная и соответствующая духу Python форма кода.

Примеры if/elif/else конструкций

Использование None в конструкции if :

a = None if a is not None: print('a НЕ равно None') else: print('a равно None') 

Использование False и True в конструкции if :

bul = False if bul: print('bul = True') else: print('bul = False') 

Использование integer числа 0 в конструкции if :

number = 0 if number: print('number не равно 0') else: print('number = 0') 

Использование числовых сравнений в конструкции if :

a = 10 b = 20 if a != b and a > b: print('a не равно b и a больше b') else: print('a не равно b и a меньше b') 

Вложенные конструкции if :

a = 15 b = 3 if a != b if a > b: print('a больше b') else: print('a меньше b') else: print('a равно b') 

Проверка наличия слова в строке str с помощью конструкции if :

string1 = 'Привет мир' string2 = 'мир' if string2 in string1: print('Слово "мир" присутствует в строке "Привет мир"') else: print('Слово "мир" отсутствует в строке "Привет мир"') 

Проверка вхождения элемента в список list с помощью конструкции if :

a = 'bc' lst = ['ac', 'bc', 0, 1, 3, 'abc'] if a in lst: print('Значение "bc" входит в список', lst) else: print('Значение "bc" не входит в список', lst) 

Проверка вхождения элемента в кортеж tuple с помощью конструкции if :

a = 'bc' tpl = ('ac', 'bc', 0, 1, 3, 'abc') if a in tpl: print('Значение "bc" входит в кортеж', tpl) else: print('Значение "bc" не входит в кортеж', tpl) 

Проверка вхождения элемента в множество set с помощью конструкции if :

a = 'bc' set_ = 'ac', 'bc', 0, 1, 3, 'abc'> if a in set_: print('Значение "bc" входит в множество', set_) else: print('Значение "bc" не входит в множество', set_) 

Проверка наличия ключа key в словаре dict с помощью конструкции if :

key = 'bc' dct = 'ac':None, 'bc':False, '0':0, '1':3, '3':1, 'abc':True> if key in dct: print('Ключ "bc" присутствует в словаре', dct) else: print('Ключ "bc" отсутствует в словаре', dct) 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Проверка условий, конструкция if/elif/else
  • Конструкция if/else в одну строку
  • Имитация оператора switch/case
  • while, цикл по условию
  • Цикл for
  • Числовые последовательности для цикла Python
  • Практическое применение for/in/else циклов
  • Инструкции break, continue и блок else в циклах Python
  • Оператор pass
  • Конструкция match/case, сопоставление с образцом

Как сделать постоянную проверку условия без приостановки работы кода?

Пытался сделать проверку через бесконечный цикл в главном файле(знаю, тупо, но это единственное, что тогда пришло в голову). По интернету искал что-нибудь такое, но ничего не нашёл(либо просто не долистал страницы гугла). Пока что в голове лишь идея сделать отдельный файл с этой проверкой через цикл.
Заранее благодарен.

  • Вопрос задан более двух лет назад
  • 345 просмотров

8 комментариев

Простой 8 комментариев

Python: Константы

Некоторые данные никогда не меняются — например, математические постоянные. Возьмем для примера число π. Оно всегда равно 3.14 и не может измениться. Чтобы обратиться к подобным данным, в Python используют константы:

PI = 3.14 print(PI) # => 3.14 

Константа создается так же, как переменная. Разница только в том, что константы принято именовать заглавными буквами и с _ в качестве разделителя между словами. Константа, как и переменная, может использоваться в любом выражении.

Задание

Создайте константу DRAGONS_BORN_COUNT и запишите в неё число 3 — это количество драконов, родившихся у Дайенерис.

Упражнение не проходит проверку — что делать? ��

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.

В моей среде код работает, а здесь нет ��

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

Мой код отличается от решения учителя ��

Это нормально ��, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно ��

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

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

Определения

  • Константа — способ сохранить информацию и дать ей имя для последующего использования в коде; константы нельзя изменять, в отличие от переменных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *