I am a relatively new Python programmer and made a simple Pig Latin to English translator and vice versa. I would just like it if someone reviewed my code and see if anything can be done to make it more Pythonic or efficient.
from time import sleep
def main():
to_piglatin = input("Do you want to translate something to piglatin[P], or to english[E]: ")
while to_piglatin not in("p", "e"):
to_piglatin = input("[P/E]")
to_piglatin = ("e", "p").index(to_piglatin.lower())
if to_piglatin:
lang = "pig latin"
else:
lang = "english"
question = "Enter a sentence to translate it into {}: ".format(lang)
sentence = input(question)
if not sentence.isalpha():
print("Invalid input, please do not use numbers or punctuation marks")
sleep(1)
main()
split_sentence = sentence.split()
if to_piglatin:
translated_sentence = [translate_to_piglatin(word) for word in split_sentence]
else:
translated_sentence = [translate_to_english(word) for word in split_sentence]
translated_sentence = " ".join(translated_sentence)
print(translated_sentence)
input()
return True
def translate_to_piglatin(word):
vowels = 'aeiou'
list_word = list(word)
list_word = [x.lower() for x in word]
first_letter = list_word[0]
last_letter = list_word[-1]
if last_letter.isalpha() == False:
list_word.remove(last_letter)
if first_letter in vowels:
list_word.append('y')
list_word.append('a')
list_word.append('y')
else:
list_word.remove(list_word[0])
list_word.append(first_letter)
list_word.append('a')
list_word.append('y')
translated_word = "".join(list_word)
return translated_word
def translate_to_english(word):
list_word = list(word)
last_three_letters = list_word[-3:]
last_three_letters = "".join(last_three_letters)
if last_three_letters == 'yay':
vowel = True
else:
vowel = False
if vowel:
for i in range(0,2):
del list_word[-1]
else:
del list_word[-1]
del list_word[-1]
last_letter = list_word[-1]
list_word.remove(last_letter)
list_word.insert(0, last_letter)
translated_word = "".join(list_word)
return translated_word
main()