Мне было поручено создать переводчик PygLatin на Python - я очень начинаю. Я должен перевести любое случайное входное предложение. На данный момент мне нужно уметь отмечать первое появление гласного слова и передавать все согласные, предшествующие концу этого слова.
def encrypt():
modify_split = list(sentence.split())
letter = list(word)
for letter in word:
if letter == "A":
print(word[1:] + "*" + word[0:1] + "AY")
if letter == "E":
print(word[1:] + "*" + word[0:1] + "AY")
if letter == "I":
print(word[1:] + "*" + word[0:1] + "AY")
if letter == "O":
print(word[1:] + "*" + word[0:1] + "AY")
if letter == "U":
print(word[1:] + "*" + word[0:1] + "AY")
В настоящее время он печатает каждое слово на букву в предложении и не расщепляется на гласной вообще. Есть ли простой способ для этого перебрать список, найти гласный и позволить мне разбить там слово? Заранее спасибо!
EDIT: Пример ввода:
"Computer science is great"
Ожидаемый результат:
"omputer*cay ience*scay is*~way eat*gray"
Всего 2 ответа
Настройте свои vowels
в строке, а затем enumerate
только вы столкнетесь с символом, который находится в vowels
вы можете сохранить его index
чтобы slice
исходную строку
s = 'this'
vowels = 'aeiou'
for i, v in enumerate(s):
if v.lower() in vowels:
x = i
break
print(s[x:] + s[:x]) # => isth
Замените word[1:]
word[length:]
и word[0:1]
word[0:length]
Вы хотите использовать length
потому что это текущий индекс цикла. word[length:]
затем даст вам все буквы в слове, начиная с индекса этой гласной, а word[0:length]
даст вам буквы в строке до этой гласной.