我的列表x是[10,20,30,40,50]
所以x的len是5
所以以下是有道理的:
>>> x=[10,20,30,40,50]
>>> print(list(range(len(x))))
[0, 1, 2, 3, 4]
我已将上述内容放入function
并且它似乎已经运行
我在输出中得到的额外None
是多少?
def foo(aList):
listLen = len(aList)
for x in list(range(listLen)):
print(x)
x=[10,20,30,40,50]
print(foo(x))
修改
如果我将上述内容应用于反转列表的任务,它似乎没问题,因此无不会导致问题:
def foo(aList):
newList = []
listLen = len(aList)
for x in list(range(listLen)):
newList.append(aList[listLen-(x+1)])
return newList
x=[10,20,30,40,50]
print(foo(x))
答案 0 :(得分:2)
print
将数据发送到标准输出(通常是终端)。 print
实际上并没有从函数中“返回”任何内容。为此,您需要return
关键字。您的函数是print
函数内部的结果并返回None
(默认值)。函数外的print
语句然后打印返回值None
。
修复可能是从函数返回列表而不是打印它的元素。然后你可以在功能之外打印它。有点像:
def foo(aList):
listLen = len(aList)
return list(range(listLen))
x=[10,20,30,40,50]
print(foo(x))
答案 1 :(得分:2)
print(foo(x))
这将打印foo()函数的返回值。但是foo()不会返回任何内容,这隐含意味着它的返回值为None。所以你最终打印“无”
也许你只是想要这个:
def foo(aList):
listLen = len(aList)
return list(range(listLen)):
x=[10,20,30,40,50]
print(foo(x))
答案 2 :(得分:2)
您从foo打印返回值,没有显式return语句的函数将返回None。
答案 3 :(得分:1)
print(foo(x))
打印出函数返回的内容。您的函数打印列表并且不返回任何内容。
因此,正在打印的列表是您的功能打印的列表。打印功能打印无。
这个功能可以做你想要的。
def foo(aList):
newList = []
listLen = len(aList)
return range(listLen)
然后
x=[10,20,30,40,50]
print foo(x)
您的函数将返回列表,print语句将打印它。
另一种方法是调用函数而不打印。
def foo(aList):
listLen = len(aList)
for x in list(range(listLen)):
print(x)
x=[10,20,30,40,50]
foo(x)