def changeList(myList1):
myList2 = myList1.append(4)
print(myList2)
return
myList1 = [1,2,3]
changeList(myList1)
print (myList1)
控制台中的结果:
None
[1, 2, 3, 4]
这是否意味着函数运行两次,因为控制台中出现“无”?
答案 0 :(得分:2)
该功能不运行两次:实际上,它只运行一次。控制台中的输出来自程序中包含的两个print()
调用:一个位于函数changeList()
内,一个位于函数外(print(myList1)
)。
None
正在打印到控制台,因为函数return
中的changeList()
语句没有返回任何内容 - 没有值要返回:
如果存在表达式列表,则对其进行评估,否则为
None
取代
[取自Python 3.6文档]
看到return
语句不做任何事情,你可以安全地将其删除 - 无论如何,该功能仍然会结束。
希望能帮到你!
答案 1 :(得分:2)
该功能仅运行一次。您将一个项目附加到列表并尝试存储在其他列表中,只需分配一个附加项目的列表,该项目将返回None并分配给myList2。所以,代码是错误的,因为append()函数返回的是无。
我认为你不应该这样做,这是正确的代码: 评论是否解决了您的问题。
def changeList(myList1):
myList2=[]
myList2.extend(myList1)
myList2.append(4)
print(myList2)
return
myList1 = [1,2,3]
changeList(myList1)
print (myList1)
答案 2 :(得分:1)
因为在changeList
的函数定义中,有一个print语句,然后调用changeList
后的另一个print语句。该函数实际只运行一次,但您只需要两个单独的打印语句。