Python 3.x 简单的Python。不知道为什么我的程序会输出这个

Python 3.x 简单的Python。不知道为什么我的程序会输出这个,python-3.x,output,Python 3.x,Output,我正在制作一个程序,把一个句子,把每个单词转换成拉丁语,然后把它作为一个句子吐出来。我不知道我把事情搞砸了。我输入一个句子,运行它,它说 0x03547D40处str对象的内置方法 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

我正在制作一个程序,把一个句子,把每个单词转换成拉丁语,然后把它作为一个句子吐出来。我不知道我把事情搞砸了。我输入一个句子,运行它,它说

0x03547D40处str对象的内置方法

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) 

您错误地使用了lower方法。 您应该像这样使用它
string=s.lower()

括号改变了一切。当您不使用它时,Python将返回一个对象


内置函数应始终使用
()

以下是代码的正确版本,该版本应能正常工作:

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)

欢迎来到SO!为了将来的参考,通常需要包括完整的回溯,主要是因为它包括错误的行号。此外,您甚至可以在不需要发布的情况下找到错误!