python:返回值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:返回值问题相关的知识,希望对你有一定的参考价值。

def skip(A, B):
while peek(A) == B: peek() 和 match() 是定义好的两个函数
match(A , B)

如上函数,运行下面的代码: A = [('stop', 'the')] B = 'stop'
print peek(A) == B # 得到 True
print match(A, B) # 得到('stop', 'the')
print skip(A, B) # 得到 None

判断显示Ture,执行 match() 有返回值, 为啥 skip() 的返回值是None 呢?????

参考技术A python 函数返回值有两种形式:
1 返回一个值。
2 返回多个值。

现看看返回一个值的吧。
def firstvalue(a,b):
c = a + b
return c
print firstvalue(1,2)结果:3
再看看返回多个值的: 那怎么可以返回多个值呢,其他的语言一般调用函数的话,只能返回一个值,可能我不太熟悉所有的语言,我知道的语言只能返回一个值,而python可以返回多个值,感觉非常方便,发代码看下:
def secondvalue(a,b):
c = a + b
return (a,b,c)

x,y,z = secondvalue(1,2)
print 'x:',x,'y:',y,'z:',z
参考技术B

skip()函数没有return,所以返回值默认就是None

你想要的代码应该是这样吧:

def skip(A, B):
    if peek(A) == B:
        return match(A , B)

追问

match() 函数有return不行么,就是说函数要有返回值一定要自身有return语句,内部的函数由return没用,是这样么?

追答

对的,return只作用于自身函数,和内部调用的函数没有一点关系的

本回答被提问者和网友采纳
参考技术C 你的skip()函数是干嘛的啊?为啥不应该返回None啊,要是执行skip(A,B)的时候返回的是空打印出来就是None啊!

以上是关于python:返回值问题的主要内容,如果未能解决你的问题,请参考以下文章

python函数的返回值?

21天学习python编程_函数返回值

python 递归调用 返回值问题

如果 python 函数返回多个值,我该如何使用它的返回值? [复制]

Python_base_函数返回值

Python 返回值