Написание функции латыни, которая принимает текст и возвращает перевод латыни. Попытка удалить передние согласные, но получить ValueError, которой list.remove (x) x нет в списке. Печатные заявления показывают, что это не так.
Я написал аналогичную программу, когда вводом было одно слово против текста с более чем одним словом. Программа работала нормально с вводом одного слова, но когда я пытаюсь изменить ввод более чем одного слова.
Я попытался сделать копию слова, которое я пытаюсь изменить, если удаление букв былоиспортить итерацию. Это, кажется, не помогает, и я все еще получаю ту же ошибку при попытке удалить буквы.
def is_consonant(character):
"""takes a character and returns True if it is a consonant"""
is_cons = False
if character not in "aeiou":
is_cons = True
return is_cons
def to_piglatin(text):
"""takes a word and translates it into pig latin"""
#convert input to list of lower case letters
x = text.lower().split()
print(x)
if len(x) > 1:
for word in x:
front_cons = []
word_as_list = [word]
print("word_as_list =", word_as_list)
for letter in word:
if is_consonant(letter) == True:
print("letter =", letter)
front_cons.append(letter)
word_as_list.remove(letter)
else:
break
[word_as_list.append(front_cons[c]) for c in range(0, len(front_cons))]
word_as_list.append("a")
word_as_list.append("y")
print(word_as_list)
test = "Hello there"
to_piglatin(test)
![print error](https://i.stack.imgur.com/5OzF7.png)
Я ожидаю, что выходной результат будет ellohay erethay, но я получаю Value Error list.remove (x) x, которого нет в списке.
операторы печати показывают, что word_as_list = ['hello'] и letter = h, но word_as_list.remove (letter) возвращает ошибку ValueError