2016-03-27 103 views
2

我正在製作一個程序來接受一個句子,將每個單詞轉換成拉丁語,然後吐出來作爲一個句子。我不知道我在哪裏搞砸了。我輸入一個句子,並運行它,它說Siimple Python。不知道爲什麼我的程序輸出這個

內置的方法在0x03547D40

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

下海峽對象的你已經使用了較低的方法不正確。 您應該像這樣使用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) 
相關問題