/ / Как бих превел думи от текстов файл в piglatin - python, python-3.x

Как да превеждам думи от текстов файл в пилета - питън, python - 3.x

Така че с помощта на "за" статии разбих текстовия файл в списъците така:

["these", "are", "lines"]
["meant", "to", "be", "translated"]
["to", "piglatin"]

Така че основно ако започне с гласна "aeiou"вземете думата + "яй", ако не преместите буквите на гърба, докато не достигнете гласна, след което добавете яй, а ако няма гласна, вие я пренебрегвате.

Например; за да бъдат преведени, ще бъде: aboutyay otay ebay anslatedtray.

Това е моят код досега:

untranslated = open("english.txt","r")
vowels = "aeiou"


for lines in untranslated:
words = lines.split()
print(words)

Не искам пълния код за това как да завърша това, повече или по-малко, как бих започнал с първата дума и как да го развържа.

Отговори:

0 за отговор № 1

Как да нарязваме низ:

word = "these"
print word[0] # it"s similar to list indexing, starts at 0

За да получите буквите в обратен ред, използвайте отрицателно число: word[-1] е последната буква; word[-2] последното е второ и т.н.

word[1:] връща всяка буква от индекс 1 (втората буква) до края. "Дума [: 5]returns every letter up to index 5 (exclusive, letters 1, 2, 3, and 4). думи [1: 5] `връща всяко писмо от индекс 1 до индекс 5 (букви 2, 3 и 4).

Тъй като имате няколко реда, искате да го направите words += lines.split() защото

untranslated = open("english.txt","r")
vowels = ("a", "e", "i", "o", "u") # I like using lists/tuples rather than strings
# if you are just checking if something is in it
newWords = []

for lines in untranslated:
words += lines.split() # this fixes the last line problem
# this assumes each word is on one line, separated by a space (like: "these are words")

for word in words: # iterates through every word
if word[0] in vowels: # if first letter is a vowel
new_word = word + "yay"
else:
new_word = word[1:] + word[0] + "ay"
newWords.apend(new_word)

Въз основа на предложението на Eric Roper можете да създадете речник като превод:

newWords = {}
for word in words:
if word[0] in vowels:
new_word = word + "yay"
newWords[word]  = new_word
else:
new_word = word[1:] + word[0] + "ay"
newWords[word] = new_word

Някои препратки: