私はプログラミングの初心者で、英語のテキストを Pig Latin に変換する宿題を割り当てられました。
私がこれまでに持っているコードは次のとおりです。
VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
def vowel_start(word):
pig_latin = word + "ay"
return pig_latin
def vowel_index(word):
for i, letters in enumerate(word):
if letters in VOWELS:
vowel_index = i
pig_latin = word[vowel_index:] + word[:vowel_index] + "ay"
return pig_latin
else:
pig_latin = word #The issue here is that even if the word
return pig_latin #has vowels, the program will still only
#return the untranslated word as shown
#in else.
english_text = raw_input("What do you want to translate?")
translate = english_text.split()
pig_latin_words = []
translated_text = "".join(str(pig_latin_words)) #The issue here is that the list
#will not join with the string.
for i in translate:
first = i[0]
vow = False
if first in VOWELS:
vow = True
if vow == True:
pig_latin_words.append(vowel_start(i))
else:
pig_latin_words.append(vowel_index(i))
print "The text you translated is " + english_text
print "The translated text is " + translated_text #The issue here is that the program
#displays "The translated text is "
#and that's it
def vowel_index 関数の else 側面をコメントアウトすると、if 側面が機能します。プログラムに残しておくと、if アスペクトが機能しなくなります。ここ数日、これを修正しようとしてきましたが、修正方法がわかりません。どんな助けでも大歓迎です、ありがとう!
課題の詳細については、次のとおりです。
- 単語が母音で始まる場合は、単語をそのままにして、末尾に「ay」を追加します。
- 単語に母音が含まれているが先頭にない場合は、母音の前の文字を単語の最後に移動し、最後に「ay」を追加します。
- 単語に母音が含まれていない場合は、単語をそのままにしておきます。