Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # English to Pig Latin
- print('Enter the English message to translate into pig latin:')
- message = input()
- VOWELS = ('a', 'e', 'i', 'o', 'u', 'y')
- pigLatin = [] # A list of the words in pig latin.
- for word in message.split():
- # Separate the non-letters at the start of this word:
- prefixNonLetters = ''
- while len(word) > 0 and not word[0].isalpha():
- prefixNonLetters += word[0]
- word = word[1:]
- if len(word) == 0:
- pigLatin.append(prefixNonLetters)
- continue
- # Separate the non-letters at the end of this word:
- suffixNonLetters = ''
- while not word[-1].isalpha():
- suffixNonLetters += word[-1]
- word = word[:-1]
- # Remember if the word was in uppercase or titlecase.
- wasUpper = word.isupper()
- wasTitle = word.istitle()
- word = word.lower() # Make the word lowercase for translation.
- # Separate the consonants at the start of this word:
- prefixConsonants = ''
- while len(word) > 0 and not word[0] in VOWELS:
- prefixConsonants += word[0]
- word = word[1:]
- # Add the pig latin ending to the word:
- if prefixConsonants != '':
- word += prefixConsonants + 'ay'
- else:
- word += 'yay'
- # Set the word back to uppercase or titlecase:
- if wasUpper:
- word = word.upper()
- if wasTitle:
- word = word.title()
- # Add the non-letters back to the start or end of the word.
- pigLatin.append(prefixNonLetters + word + suffixNonLetters)
- # Join all the words back together into a single string:
- print(' '.join(pigLatin))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement