в строке:
if str(translate[0]) != "a, e, i, o, u":
вы берете первую букву перевода (перевод [0])
например, у вас есть translate = 'example', первая буква - 'e'
вы сравниваете (! = Что означает РАЗНОЕ) 'e' с другой строкой "a, e, i, o, u", ваша первая буква будет всегда отличаться от строки "a, e, i, o, u ", вам нужно проверить, нет ли вашего первого письма в этой строке, вы можете использовать:
if str(translate[0]) not in "a, e, i, o, u":
или вы можете проверить, что вашего письма нет в списке:
if str(translate[0]) not in ['a', 'e', 'i', 'o', 'u']:
Как проверить, есть ли что-то (нет) в списке в Python?
Самое дешевое и удобочитаемое решение - использование оператора in (или, в вашем конкретном случае, не in) Как указано в документации,
Операторы в и не в проверяют членство. х в с оценивается в
True, если x является членом s, и False в противном случае. x не в с
отрицание х в с.
Дополнительно
Оператор , не входящий в , имеет обратное истинное значение в .
y не в x логически совпадает с y в x.
Вот несколько примеров:
'a' in [1, 2, 3]
# False
'c' in ['a', 'b', 'c']
# True
'a' not in [1, 2, 3]
# True
'c' not in ['a', 'b', 'c']
# False