一个完整的新手问题: 该代码旨在在列表中找到最长的字符串并显示它。 当我运行它(作为文件或直接在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
答案 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教程以学习基础知识。互联网上有很多教程。
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))