Форум сайта python.su
0
try: out2 = subprocess.check_output("/root/script1", universal_newlines=True) out2 = out2.strip() for value in out2: if value != "Текст1" or "Текст2": if out2 != 'Текст3 and out2 is not None: Вызов функции )
Отредактировано gedat (Июль 10, 2022 14:40:06)
Офлайн
61
if "Текст1" not in out2: pass
Офлайн
0
ZerGПолучается
if "Текст1" not in out2: pass
if out2 != "Текст1": pass
Офлайн
61
- оператор==проверяет равенство значений двух объектов
- оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти
https://realpython.com/python-is-identity-vs-equality/
Офлайн
0
ZerGСпасибо. Но почему-то это не сработало
- оператор==проверяет равенство значений двух объектов- оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памятиhttps://realpython.com/python-is-identity-vs-equality/
if "Текст Текст Текст: Текст" or "Текст Текст Текст: Текст" not in out2:
Офлайн
61
Давайте наверное реальный вывод данных и ключи по которым проверяете
а то спрашиваете одно а пишете совершенно другое
кроме того уж если пишете на питоне то прочитайте пару страничек доки
out2 = ["Текст1", "Текст2", "Текст3", "Текст4", "Текст1"] key1 = "Текст1" key2 = "Текст9" if key1 not in out2 or key2 not in out2: print("Done")
Офлайн
124
print((bool('text'))) # True print(bool('')) # False print(bool(None)) # False print(bool(0)) # False print(bool(12)) # True print(bool([])) # False print(bool([1, 2, 3, 4])) # True print('=============================') text = "Сиреневенький револьверчик достали изподвыподверта" print("револьверчик" in text) # True print('мотоцикл' in text) # False print('мотоцикл' not in text) # True print(True or True) # True print(True or False) # True Ваш случай print(False or False) # False
Офлайн
0
ZerGВот реальный вывод
Давайте наверное реальный вывод данных и ключи по которым проверяетеа то спрашиваете одно а пишете совершенно другоекроме того уж если пишете на питоне то прочитайте пару страничек доки
out2 = subprocess.check_output("/root/script1", universal_newlines=True) out2 = out2.strip() if out2 != 'Нет изменений' and out2 is not None: if "Проверку прошёл: Бот" or "Проверку не прошёл: Бот" not in out2: vk.messages.send( key=(''), server=(''), ts=(''), random_id=get_random_id(), message=out2, chat_id=('1'), )
print(True or False) # True Ваш случай
if key1 not in out2 or key2 not in out2:
if key1 not in out2 and key2 not in out2:
Отредактировано gedat (Июль 11, 2022 13:21:36)
Офлайн
61
Мда.
Начнем пожалуй с того что у вас на выходе строка а методы вы применяете для списков.
В любом случае хромает логика проверки - так как в любом случае если одно из условий верно
нам нужно пропустить действие.
import os import subprocess fpath = os.path.join(os.getcwd(), "my.txt") out2 = subprocess.check_output(["cat", fpath], universal_newlines=True) out2 = out2.strip() print(f"type:{type(out2)}") if out2 != "Нет изменений" and out2 is not None: # Method tith OR if out2.find("Проверку прошёл: Бот") > 0 or out2.find("Проверку не прошёл: Бот") > 0: print("Pass by OR") else: print("Do something by OR") # Method with AND if out2.find("Проверку прошёл: Бот") < 0 and out2.find("Проверку не прошёл: Бот") < 0: print("Do something by AND") else: print("Pass by AND")
Офлайн
124
if "Проверку прошёл: Бот" or "Проверку не прошёл: Бот" not in out2:
if ("Проверку прошёл: Бот" not in out2) or ("Проверку не прошёл: Бот" not in out2):
Офлайн