こんにちは、私は codeacademy で python のオンライン チュートリアルを行っています。すでに raw_input を使用して pyglatin の単語に変換する機能的な pyg ラテン トランスレータを作成していますが、このトランスレータを単語を受け取る関数に変換しようとすると、エラーが発生します。これらの機能に根本的な違いはありますか?
関数トランスレータは次のとおりです。
original = raw_input("Enter a word in English to translate to Pyg Latin:")
vowels = ["a", "e", "i", "o", "u"]
if len(original) > 0 and original.isalpha():
word = original.lower()
if word[0] in vowels:
translation = word + "ay"
print translation
else:
translation = word[1:] + word[0] + "ay"
print translation
else:
print "This is not a valid entry! Please try again."
# Here is the function that comes up with an error:
vowels = ["a", "e", "i", "o", "u"]
def pyglatin(eng):
if eng.isalpha() and len(eng) > 0:
word = eng.lower()
if word[0] in vowels:
return word + "ay"
else:
return word[1:] + word[0] + "ay"
else:
return False
たとえば、関数を呼び出して pyglatin(ant) と入力して ant という単語の翻訳を表示しようとすると、次のエラーが発生します。
トレースバック (最新の呼び出しが最後):
ファイル ""、行 1、pyglatin(ant) の NameError: 名前 'ant' が定義されていません
すべてのインデントが正しいことに注意してください。ただし、ここでは正しい間隔を示していない可能性があります。私の論理に根本的な問題があるかどうかを知りたいだけです。ありがとう!!!