Как организовать проверку входит ли два элемента (две строки) в массив
slov=[]
cmd=input()
slov=cmd.split()
if "Привет".lower() and "Пятница".lower() in slov:
print("ok")
Я ввожу 'Привет Пятница'. Но оно не работает, должно вывести 'ок', но нечего не выводит. Помогите пожалуйста и если я сделал что-то не так извените, я новичек на Stackoverflow.
Ответы (3 шт):
Попробуйте так:
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
Этот конструкт работать не будет, по приведенному сегменту операция 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)))
Вот так работает:
cmd=input()
slov=cmd.lower().split()
if "Привет".lower() in slov and "Пятница".lower() in slov:
print("ok")
Во-первых вы приводите к нижнему регистру слова, которые проверяете, но не приводите к нему же введённое предложение.
Во-вторых надо проверять каждое слово на вхождение отдельным оператором, а у вас первая часть if до and всегда давала True и ничего не проверяла ("Привет".lower() == True).