Een zin converteren naar piglatin in Python

Ik moet een programma in Python schrijven dat zinnen omzet in varkens-Latijn. Varkenslatijn wordt losjes gedefinieerd als het nemen van de eerste letter van elk woord, deze aan het einde van het woord plaatsen en “ay” toevoegen aan het einde van elk woord. Ik kan er niet achter komen hoe ik de eerste letter van elk woord in de string moet scheiden, laat staan aan het einde toevoegen. Ik neem aan dat als ik het eenmaal heb verwijderd, er een manier is om het aan het nieuwe woord samen te voegen en vervolgens “ay” samen te voegen . Ik ben hier extreem verloren. Na veel vallen en opstaan is dit alles wat ik heb, en zelfs dit lijkt niet goed te werken. Alle hulp wordt zeer op prijs gesteld.

def main():        
    sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
    sentence_list = sentence.split()
    for part in sentence_list:
        first_letter = part[0]
main()

Antwoord 1, autoriteit 100%

Hier is de code:

def main():
        lst = ['sh', 'gl', 'ch', 'ph', 'tr', 'br', 'fr', 'bl', 'gr', 'st', 'sl', 'cl', 'pl', 'fl']
        sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
        sentence = sentence.split()
        for k in range(len(sentence)):
                i = sentence[k]
                if i[0] in ['a', 'e', 'i', 'o', 'u']:
                        sentence[k] = i+'ay'
                elif t(i) in lst:
                        sentence[k] = i[2:]+i[:2]+'ay'
                elif i.isalpha() == False:
                        sentence[k] = i
                else:
                        sentence[k] = i[1:]+i[0]+'ay'
        return ' '.join(sentence)
def t(str):
        return str[0]+str[1]
if __name__ == "__main__":
        x = main()
        print(x)

uitgevoerd als:

bash-3.2$ python3 pig.py
Type what you would like translated into pig-latin and press ENTER: my gloves are warm
ymay ovesglay areay armway
bash-3.2$ 

Deze code gebruikt de logica hier .


Antwoord 2, Autoriteit 33%

Hier is een snelle

def main():
    words = str(input("Input Sentence:")).split()
    for word in words:
        print(word[1:] + word[0] + "ay", end = " ")
    print ()
main()

Een betere oplossing zou waarschijnlijk lijst begrijpen, zodat u de uitvoer daadwerkelijk zou kunnen gebruiken, maar dit doet wat u heeft gevraagd.

EDIT:
Dit werkt voor Python3.x
Als je wilt werken voor Python2, ga je een beetje plezier. Voeg de snaren samen voor elk woord toe en druk vervolgens de resultaatreeks af.

Other episodes