В первом и последнем примере вы использовали строку в качестве индекса (a [str (i)]).Тем не менее, индексы всегда целые числа.И помните, что первый индекс всегда равен 0, а не 1. Ваш цикл for повторяется от 1. Так как первый элемент имеет индекс 0, последний имеет индекс len (массив) - 1, что означает, что вашцикл должен повторяться только до len (a).Проблема с индексом цикла for также относится к последнему примеру.
Во втором примере вы неправильно использовали операторы or.Вы не можете сравнивать их так.Вы должны написать это так:
if letter == "a" or letter == "e" or letter == "i" or letter == "o" or letter == "u":
Чтобы сократить это, просто напишите:
if letter in "aeiou":
Здесь вы проверяете, находится ли буква в строке «aeiou».
Во втором примере вы также сбрасываете значение на ноль при каждом обнаружении гласного.Это приведет к тому, что значение будет либо 1, либо не определено.Поместите значение = 0 перед циклом for, и оно должно работать.