/ / Wie würde ich Wörter aus einer Textdatei in Piglatin übersetzen - Python, Python-3.x

Wie würde ich Wörter aus einer Textdatei in piglatin - Python, Python-3.x übersetzen?

Durch die Verwendung von "for" -Anweisungen habe ich die Textdatei folgendermaßen in Listen unterteilt:

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

Also im Grunde, wenn es mit einem Vokal "aeiou" beginntSie nehmen das Wort + "yay", wenn Sie die Buchstaben nicht nach hinten verschieben, bis Sie einen Vokal erreichen. Fügen Sie yay hinzu, und wenn es keinen Vokal gibt, ignorieren Sie ihn.

Zum Beispiel; zu übersetzender Begriff wäre: aboutyay otay ebay anslatedtray.

Das ist mein Code bisher:

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


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

Ich möchte nicht den vollständigen Code darüber, wie dies zu vervollständigen ist, mehr oder weniger, wie ich mit dem ersten Wort beginnen würde und wie es zu verbinden ist.

Antworten:

0 für die Antwort № 1

So schneiden Sie eine Zeichenfolge:

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

Verwenden Sie eine negative Zahl, um die Buchstaben in umgekehrter Reihenfolge zu erhalten: word[-1] ist der letzte Buchstabe; word[-2] ist der vorletzte usw.

word[1:] Gibt jeden Buchstaben von Index 1 (dem zweiten Buchstaben) bis zum Ende zurück. "wort [: 5]returns every letter up to index 5 (exclusive, letters 1, 2, 3, and 4). words [1: 5] `gibt jeden Buchstaben von Index 1 bis Index 5 zurück (Buchstaben 2, 3 und 4).

Da Sie mehrere Zeilen haben, möchten Sie dies tun words += lines.split() weil

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)

Basierend auf dem Vorschlag von Eric Roper können Sie ein Wörterbuch als Übersetzung erstellen:

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

Einige Referenzen: