Grace-- 发表于 2020-6-26 09:24:31

为啥会有返回值?

pop()函数使用后的返回删除值是什么意思?remove()函数的返回None值呢?谢谢大家指点下~

永恒的蓝色梦想 发表于 2020-6-26 09:25:36

就是返回值啊?能有什么意思?

老八秘制 发表于 2020-6-26 09:28:55

关于列表的几个方法pop()是少有的有返回值的,其他都是在原列表上修改,返回值就是返回值,还能是啥?

BIO-张磊 发表于 2020-6-26 09:29:29

remove是在原列表内移除,是对原列表的直接修改,没有返回值,但你可以理解为返回的是修改后的列表
pop有返回值,返回的是移除的元素
为什么不一样,因为函数的定义不一样

Twilight6 发表于 2020-6-26 09:29:47



Python 中列表的绝大多数都没有返回值,如:remove()、append()、extend()、clear()、reverse()、sort()、insert()等,但 pop() 函数有返回值{:10_333:}

而至于为什么,不必深究,这就像这个函数的作用,你记得这些作用就行{:10_275:}

而如果你拦也拦不住的想去学习{:10_282:} ,那么你可以去看看官方说明,或者源码,研究研究这些函数是怎么写的,就知道为什么有的有返回值,有的没有返回值了

Grace-- 发表于 2020-6-26 09:30:04

永恒的蓝色梦想 发表于 2020-6-26 09:25
就是返回值啊?能有什么意思?

比如说:
a=
b=a.pop(1)
print(b)
这个直接输出就是3呀,哪里体现出返回?谢谢指点~

Twilight6 发表于 2020-6-26 09:31:45

本帖最后由 Twilight6 于 2020-6-26 09:35 编辑

Grace-- 发表于 2020-6-26 09:30
比如说:
a=
b=a.pop(1)




你能 print 打印出来就说明有返回值给 print 打印了

而没有返回值你打印会打印一个 None

在 IDLE 或者其他编译器的控制台那 ,Python 会自动帮你打印出返回值,比如你这里在控制台输入a.pop() 就会返回打印一个 3

而单纯在脚本内运行,如果你不加上print 函数,那么就不会打印出返回值,所以你如果是在运行脚本要看他的返回值,那么就要加上print(a.pop()) 这样才会打印出 3

具体怎么设置返回值,你学到函数那颗就会焕然大悟了

heidern0612 发表于 2020-6-26 09:32:20

你pop之后给你个数值,告诉你哪个删除了,然后这个值还可以被再次利用。

而remove的返回值就是个空,说明没有返回值,他就只是个方法而已。

BIO-张磊 发表于 2020-6-26 09:32:30

Grace-- 发表于 2020-6-26 09:30
比如说:
a=
b=a.pop(1)


继续往下学,学到函数,你就明白了。什么是返回值

Grace-- 发表于 2020-6-26 09:32:43

Twilight6 发表于 2020-6-26 09:29
Python 中列表的绝大多数都没有返回值,如:remove()、append()、extend()、clear()、reverse()、sort( ...

谢谢回复。我主要是不知道返回值有啥意义,不用管吗?
比如:
a=
b=a.pop(1)
print(b)
这个直接输出就是3,返回删除值,不知道啥意思,谢谢指点~

Grace-- 发表于 2020-6-26 09:33:48

heidern0612 发表于 2020-6-26 09:32
你pop之后给你个数值,告诉你哪个删除了,然后这个值还可以被再次利用。

而remove的返回值就是个空,说 ...

哦哦,了解!就是指还可以被利用是吧?

Twilight6 发表于 2020-6-26 09:35:04

Grace-- 发表于 2020-6-26 09:32
谢谢回复。我主要是不知道返回值有啥意义,不用管吗?
比如:
a=


看七楼~重新编辑了

Grace-- 发表于 2020-6-26 09:35:53

BIO-张磊 发表于 2020-6-26 09:29
remove是在原列表内移除,是对原列表的直接修改,没有返回值,但你可以理解为返回的是修改后的列表
pop有 ...

pop()函数的使用可以理解为把某个元素提取出来是吗?这个元素还可以用

heidern0612 发表于 2020-6-26 09:37:09

本帖最后由 heidern0612 于 2020-6-26 09:39 编辑

Grace-- 发表于 2020-6-26 09:33
哦哦,了解!就是指还可以被利用是吧?

嗯,对。比如说你两个列表,一个是【12345】,另外一个是空。

你就可以这个pop出来,另外一个append。

这样就完全把一个列表的内容存到另一个列表里了。

游戏上的简单应用可以想象成游戏角色往仓库里存东西,自己包东西没了,仓库多出一堆。

Grace-- 发表于 2020-6-26 09:38:01

Twilight6 发表于 2020-6-26 09:31
你能 print 打印出来就说明有返回值给 print 打印了

而没有返回值你打印会打印一个 None


好的,谢谢!

Grace-- 发表于 2020-6-26 09:38:36

heidern0612 发表于 2020-6-26 09:37
嗯,对。

好的,谢谢!

BIO-张磊 发表于 2020-6-26 09:39:07

Grace-- 发表于 2020-6-26 09:35
pop()函数的使用可以理解为把某个元素提取出来是吗?这个元素还可以用

也许这可能就是设计pop和remove的初衷。
大佬们的意图 我们揣摩不透

Twilight6 发表于 2020-6-26 09:39:31

Grace-- 发表于 2020-6-26 09:38
好的,谢谢!

客气了加油吧~

hrp 发表于 2020-6-26 10:00:59

BIO-张磊 发表于 2020-6-26 09:29
remove是在原列表内移除,是对原列表的直接修改,没有返回值,但你可以理解为返回的是修改后的列表
pop有 ...

"但你可以理解为返回的是修改后的列表"
这个不一样,不能这么理解,在Python中,函数总是有返回值,函数中没有写 return 则默认返回None,所以它返回的是None,不是返回原列表。

小甲鱼的铁粉 发表于 2020-6-26 10:57:07

记住就可以了,pop在后面的学习中还是使用比较频繁的
页: [1]
查看完整版本: 为啥会有返回值?