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 № 1So 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: