Вам необходимо сравнить каждый отдельный гласный.
vowels = 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U'
name = input("enter your name")
if any(vowel in name for vowel in vowels):
print("your name contains a vowel")
else:
print("NO VOWELS HERE!")
Как видно из этого кода, name
не переносится в список. Вам это не нужно, потому что строка является итеративной. Это означает, что вы можете сделать другое изменение:
vowels = 'aAeEiIoOuU'
name = input("enter your name")
if any(vowel in name for vowel in vowels):
print("your name contains a vowel")
else:
print("NO VOWELS HERE!")
Пример того, что произошло в вашем исходном коде:
>>> needle = 'a', 'b'
>>> needle in list('ab')
False
Давайте проверим значения:
>>> needle
('a', 'b')
>>> list('ab')
['a', 'b']
Вы проверяете, является ли кортеж ('a', 'b')
элементом ['a', 'b']
. Как видите, это не так. Элементами списка являются 'a'
и 'b'
. Чтобы быть True
сравнение должно выглядеть следующим образом.
>>> needle in [('a', 'b')]
True
Вы должны понимать, что вы сравниваете точный кортеж, а не его части.
>>> needle in [('a', 'b', 'c')]
False