请问print(a.reverse())为啥输出'None'?
member=member.extend()
print(member,member.count(123),member.index(345))
sa=member[:]
print(sa.reverse())
print(list.reverse(sa))
ass=sa.reverse()
print(ass)
asss=list.reverse(sa)
print(asss)
以下为输出结果:
1 2
None
None
None
None
本帖最后由 jackz007 于 2022-11-7 22:44 编辑
因为列表属于可修改对象,所以,列表的方法一般都没有返回值,无返回值的函数的返回值就是 None,修改列表和打印列表必须分两句来写。
print(sa.reverse())
必须分解为
sa.reverse()
print(sa) 因为它本来就返回none 本帖最后由 tommyyu 于 2022-11-8 17:58 编辑
>>> a =
>>> a.reverse()
>>> a
>>> print(a.reverse())
None
>>>
在上面的一段代码中,我们在输入 a.reverse() 这一行代码后并没有在交互中看到任何东西,这说明这个函数的返回值为 None。 reverse 函数是对这个列表进行原地操作,并不会返回任何值,只会改变 a 的值。>>> None
>>> print(None)
None
>>>
事实上,即使我们直接输入 None , python 也不会打印任何东西,只有在 print(None) 的时候, Python 才会打印 None。 reverse没有返回值,你可以试试
reversed(sa)
这样做应该就能返回反转后的列表了
Python 中,只要函数没有设置 return 返回值,那么 Python 就默认返回一个 None
所以当你打印一个函数返回 None 时,就需要考虑这是这个函数的特殊情况,还是本身就没有设置返回值?
Python 中的很多列表方法都没有返回值,所以返回的就是None
例如:append、reverse、insert、remove、extend 等都没有返回值,因为被改变的是调用对象本身,也就是列表本身
当然也有有返回值的,例如:.pop(),它返回的也不是列表,而是列表此次被弹出的元素
感谢各位!{:10_257:}
页:
[1]