2016-03-27 104 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) 
相关问题