Python 3.x 简单的Python。不知道为什么我的程序会输出这个
我正在制作一个程序,把一个句子,把每个单词转换成拉丁语,然后把它作为一个句子吐出来。我不知道我把事情搞砸了。我输入一个句子,运行它,它说 0x03547D40处str对象的内置方法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
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!为了将来的参考,通常需要包括完整的回溯,主要是因为它包括错误的行号。此外,您甚至可以在不需要发布的情况下找到错误!