“功能名称未定义”

时间:2019-09-09 08:01:41

标签: python python-3.x list function

一个完整的新手问题: 该代码旨在在列表中找到最长的字符串并显示它。 当我运行它(作为文件或直接在shell中)时,它不起作用。我不断收到错误消息,提示无法识别该函数的名称。您的帮助和建议将不胜感激。

使用print命令显示正确的结果,但是当我尝试运行完整的文件时,却不断出现上述错误。

def longest(mylist):
    mylist = ["111", "44", "baking", "dot"]
list1 = max(["111", "44", "baking", "dot"], key=len)
longest(list1);
print(list1)

Error running the file:
File "<stdin>", line 1
    python [filename].py
SyntaxError: invalid syntax

将代码粘贴到外壳中时出错:

SyntaxError: invalid syntax
>>> mylist = ["111", "44", "baking", "dot"]
>>> list1 = max(["111", "44", "baking", "dot"], key=len)
>>> longest(list1);
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
NameError: name 'longest' is not defined
>>> print(list1)
baking

4 个答案:

答案 0 :(得分:0)

该函数在您的代码中不执行任何操作。
可以缩短到下面。

max_value = max(["111", "44", "baking", "dot"], key=len)
print(max_value)

答案 1 :(得分:-1)

您的问题出在您的职能上。 您在函数中收到一个参数,并且在第2行覆盖了该参数。 这是您的函数需要的样子

def longest(mylist):
   mylist = max(mylist, key=len)
   return mylist

然后在使用参数调用函数之后

mylist = ["111", "44", "baking", "dot"]
mylist = longest(mylist);
print(mylist)

在您的shell中,您没有定义函数,因此解释器不知道它

答案 2 :(得分:-1)

您的代码编写不正确,您应该阅读python教程以学习基础知识。互联网上有很多教程。

Hooks

Python Tutorial at TutorialsPoint

现在,您的问题的答案是:

#!/usr/bin/python

# This is the function which takes list as an argument and
# returns the longest string from the list
def longest(mylist) :
    l = max(mylist, key=len)
    return l

# This is the list which contains all the strings
mylist = ["111", "44", "baking", "dot"]

# This is the function call with "mylist" as argument
# and, the return value is assigned to a variable "x"
x = longest(mylist)

# prints the output
print(x)

答案 3 :(得分:-2)

这不是解决无法找到longest的问题的解决方案,而是有效的代码实现。

def longest(mylist):
    return max(mylist, key=len)

list1 = ["111", "44", "baking", "dot"]
print(longest(list1))