Problem
Goal
Simply take a word, check if it begins with a vowel or a consonant cluster and append “ay” accordingly. If the word starts with a vowel, add an “ay” to the end of the word. Else extract the consonant cluster from the word, append “ay” to the cluster and join the remaining part of the word with the “ay”ed consonant cluster.
Pseudo-code
- Get user input
- Check if the first character is a vowel or consonant
- If vowel, print out user input + “ay”
- If consonant, find get consonant cluster ( group of consonant before the first vowel in the user input)
- Print out part of user input starting from the first vowel + consonant cluster + “ay”
Solution
Determine if the first character of the word is a vowel
import sys def firstCharisVowel(firstcharacter:str) -> bool: isvowel = False vowels = "aeiou" for i in range(0, len(vowels)): character = vowels[i] if character == firstcharacter: isvowel = True break return isvowel
Extract consonant cluster before first vowel occurrence in string
def getConsonantCluster(word:str) ->str: consonantcluster = "" for i in range(0, len(word)): current_char = word[i] if firstCharisVowel(current_char): break else: consonantcluster += current_char return consonantcluster
Transform given word to piglatin
def wordToLatin(word:str) -> str: latin = "" isvowel = firstCharisVowel(word[0]) if isvowel: latin += word + "ay" else: consonantcluster = getConsonantCluster(word) latin += word[word.index(consonantcluster) + len(consonantcluster):] + consonantcluster + "ay" return latin
Trigger Action
def main()-> None: if len(sys.argv) == 1: text = input("Provide a word or a sentence an press Enter: ") piglatinized = wordToLatin(text) print("Your Pig Latin is : {}".format(piglatinized)) else: print("Your piglatinized words are: ") for word in sys.argv[1:]: piglatin = wordToLatin(word) print("Word: {} ---- {}".format(word, piglatin)) if __name__ == "__main__": main()
Run Program
.....Python/Python36-32/python.exe c:/Users/ajala/python/test.py Provide a word or a sentence an press Enter: hello Your Pig Latin is : ellohay
Python/Python36-32/python.exe c:/Users/ajala/python/test.py smile string stupid glove trash floor store Your piglatinized words are: Word: smile ---- ilesmay Word: string ---- ingstray Word: stupid ---- upidstay Word: glove ---- oveglay Word: trash ---- ashtray Word: floor ---- oorflay Word: store ---- orestay
PigLatin.py
import sys def firstCharisVowel(firstcharacter:str) -> bool: isvowel = False vowels = "aeiou" for i in range(0, len(vowels)): character = vowels[i] if character == firstcharacter: isvowel = True break return isvowel def getConsonantCluster(word:str) ->str: consonantcluster = "" for i in range(0, len(word)): current_char = word[i] if firstCharisVowel(current_char): break else: consonantcluster += current_char return consonantcluster def wordToLatin(word:str) -> str: latin = "" isvowel = firstCharisVowel(word[0]) if isvowel: latin += word + "ay" else: consonantcluster = getConsonantCluster(word) latin += word[word.index(consonantcluster) + len(consonantcluster):] + consonantcluster + "ay" return latin def main()-> None: if len(sys.argv) == 1: text = input("Provide a word or a sentence an press Enter: ") piglatinized = wordToLatin(text) print("Your Pig Latin is : {}".format(piglatinized)) else: print("Your piglatinized words are: ") for word in sys.argv[1:]: piglatin = wordToLatin(word) print("Word: {} ---- {}".format(word, piglatin)) if __name__ == "__main__": main()