我正在使用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()
答案 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()