2016-03-27 8 views
2

私は文章を取り込み、それぞれの単語をブタのラテン語に変換し、それを文として吐き出すプログラムを作っています。私はどこを台無しにしたのか分かりません。私は、入力文と、それを実行し、それはあなたが誤って下の方法を使用している0x03547D40Siimple Python。私のプログラムがなぜこれを出力しているのかわからない

s = input("Input an English sentence: ") 
s = s[:-1] 
string = s.lower 

vStr = ("a","e","i","o","u") 



def findFirstVowel(word): 
    for index in range(len(word)): 
     if word[index] in vStr: 
      return index 
    return -1 

def translateWord():  
     if(vowel == -1) or (vowel == 0): 
      end = (word + "ay") 

     else: 
      end = (word[vowel:] + word[:vowel]+ "ay") 


def pigLatinTranslator(string): 
    for word in string: 
     vowel = findFirstVowel(word) 
     translateWord(vowel) 

    return 


print (string) 
+0

はSOへようこそ!将来の参照のために、通常、エラーの行番号を含むので、完全なトレースバックを含めるのが賢明です。さらに、投稿することなくエラーを見つけることさえできます! – MANA624

答えて

1

はビルトイン方式のstrオブジェクトの下言います。 このように使用する必要がありますstring = s.lower()

括弧がすべて変更されます。これを使用しないと、Pythonはオブジェクトを返します。

ビルトイン関数は、常にここで()

0

を使用する必要があります動作するはずのコードの修正版です:

s = input("Input an English sentence: \n").strip() 
string = s.lower() #lowercasing 

vStr = ("a","e","i","o","u") 

def findFirstVowel(word): 
    for idx,chr in enumerate(word): 
     if chr in vStr: 
      return idx 
    return -1 

def translateWord(vowel, word):  
     if(vowel == -1) or (vowel == 0): 
      end = (word + "ay") 

     else: 
      end = (word[vowel:] + word[:vowel]+ "ay") 

def pigLatinTranslator(string): 
    for word in string: 
     vowel = findFirstVowel(word) 
     translateWord(vowel,word) 

    return 

print(string) 
関連する問題