Python v3查找最长的单词(错误消息)

时间:2015-02-24 02:54:21

标签: python

我正在使用Python 3.4并且在我的程序中收到错误消息“'wordlist is not defined'”。我究竟做错了什么?请回复代码。

程序是找到最长的单词:

def find_longest_word(a):
    length = len(a[0])
    word = a[0]
for i in wordlist:
    word = (i)
    length = len(i)
return word, length

def main():
    wordlist = input("Enter a list of words seperated by spaces ".split()
    word, length = find_longestest_word(wordlist)
    print (word, "is",length,"characters long.")

main()

4 个答案:

答案 0 :(得分:0)

该行"返回单词,长度"在任何功能之外。最接近的函数是" find_longest_word(a)",所以如果你想让它成为该函数的一部分,你需要缩进4-7行。

答案 1 :(得分:0)

缩进在Python中很重要。正如错误所示,您将在函数外部返回。尝试:

def find_longest_word(a):
    length = len(a[0])
    word = a[0]
    for i in wordlist:
        word = (i)
        length = len(i)
    return word, length

def main():
    wordlist = input("Enter a list of words seperated by spaces ".split()
word, length = find_longestest_word(wordlist)
print (word, "is",length,"characters long.")

main()

答案 2 :(得分:0)

在python中,缩进非常重要。它应该是:

def find_longest_word(a):
    length = len(a[0])
    word = a[0]
    for i in wordlist:
        word = (i)
        length = len(i)
    return word, length

但是由于函数名称,我认为实现是错误的。

答案 3 :(得分:0)

除了代码缩进的问题之外,你的find_longest_word()函数并没有真正的逻辑来找到最长的单词。此外,您传递了一个名为a的参数,但您从未在函数中使用a,而是使用wordlist ...

以下代码可以满足您的需求。 Python中的len()函数非常有效,因为所有Python容器对象都存储它们当前的长度,因此很少值得在单独的变量中存储长度。所以我的find_longest_word()只存储到目前为止遇到的最长的单词。

def find_longest_word(wordlist):
    longest = ''
    for word in wordlist:
        if len(word) > len(longest):
            longest = word
    return longest

def main():
    wordlist = input("Enter a list of words separated by spaces: ").split()
    word = find_longest_word(wordlist)
    print(word, "is" ,len(word), "characters long.")

if __name__ == '__main__':
    main()