Как организовать проверку входит ли два элемента (две строки) в массив

slov=[]
cmd=input()
slov=cmd.split()
if "Привет".lower() and "Пятница".lower() in slov:
    print("ok")

Я ввожу 'Привет Пятница'. Но оно не работает, должно вывести 'ок', но нечего не выводит. Помогите пожалуйста и если я сделал что-то не так извените, я новичек на Stackoverflow.


Ответы (3 шт):

Автор решения: NEYROMANT NURO

Попробуйте так:

text = input()
list_word=text.split()
count_hi = 0
count_friday = 0
for word in list_word:
    if word.lower() =="привет":
        if count_friday >= 1:
            print("ОК")
        count_hi +=1
        continue
    if word.lower() == "пятница":
        if count_hi >=1:
            print("ОК")
        else:
            count_friday +=1
            continue

→ Ссылка
Автор решения: Spouk

Этот конструкт работать не будет, по приведенному сегменту операция in проверяет последнее значение и выдаст соответствующее решение на вхождение в массив "Пятница".lower(). Проверять надо каждый элемент и анализировать совокупные результаты вхождения каждого.

#!/usr/bin/python
# coding: utf-8
__author__ = 'spouk'
stock = [1,2,3,4,5,6,7,8,9]
find1 = [2,3,33]
find2 = [5,6]

def check(strStock, findWordStock):
   return not [bool(xs) for xs in findWordStock if xs not in strStock]

for k in [find1, find2]:
   print("{}:{} Result: {}".format(stock, k, check(stock, k)))
→ Ссылка
Автор решения: CrazyElf

Вот так работает:

cmd=input()
slov=cmd.lower().split()
if "Привет".lower() in slov and "Пятница".lower() in slov:
    print("ok")

Во-первых вы приводите к нижнему регистру слова, которые проверяете, но не приводите к нему же введённое предложение. Во-вторых надо проверять каждое слово на вхождение отдельным оператором, а у вас первая часть if до and всегда давала True и ничего не проверяла ("Привет".lower() == True).

→ Ссылка