python 深入理解函数

系统 1393 0
            
              源代码:
def main(w_face,w_body):
    return("我的身材:"+face(w_face)+body(w_body))
#main('青青','子衿')
print(main('青青','子衿'))
def face(name):
    return(name+'脸蛋')
def body(name):
    return(name+'身材')

            
          
            
              报错:
line 2, in main
    return("我的身材:"+face(w_face)+body(w_body))
NameError: name 'face' is not defined

            
          

遵循函数先定义,后调用的原则,改动如下:

            
              正解:
def face(name):
    return(name+'脸蛋')
def body(name):
    return(name+'身材')
def main(w_face,w_body):
    return("我的身材:"+face(w_face)+body(w_body))
#main('青青','子衿')
print(main('青青','子衿'))
#》》我的身材:青青脸蛋子衿身材

            
          

结语:类比C语言:函数的实参是“单向值”传递给形参。

  1. return的一个特别的用法,我们看到前面所有的return语句,都是返回1个值,如果要返回多个值,我们该怎么办呢?

看这段代码:

            
              def face(name):
    return name + '的脸蛋'
def body(name):
    return name + '的身材'
print('我的身材:'+face('古天乐') +' + ' + body('孔明'))

            
          

在这段代码中,我们定义了两个函数,每个return语句分别返回关于“脸蛋”和“身材”的值。如果要一次性返回这两个值,我会这样做,先看代码:

            
              def lover(name1,name2):
    face = name1 + '的脸蛋'
    body = name2 + '的身材'
    return face,body

a=lover('古天乐','孔明')
print('我的身材:'+a[0]+' + '+a[1])
#》》我的身材:古天乐的脸蛋 + 孔明的身材

            
          

为什么要这样写,第7行代码是啥意思?怎么看上去像是列表?你大概有这样的疑惑了吧?

我们先来看看,一次性返回的两个值,是什么数据类型。

            
              def lover(name1,name2):
    face = name1 + '的脸蛋'
    body = name2 + '的身材'
    return face,body

a=lover('古天乐','孔明')
print(a)
#》》('古天乐的脸蛋', '孔明的身材')

            
          

是 (‘古天乐的脸蛋’, ‘孔明的身材’) 这样一个元组,对不对?

事实上,Python语言中的函数返回值可以是多个,而其他语言都不行,这是Python相比其他语言的简便和灵活之处。
一次接受多个返回值的数据类型就是元组

而元组与列表其实都是数据的“序列”,元组取某个位置的值的操作,与列表是一模一样的,即tuple[]。也是因此,我们会这样去写代码:

            
              def lover(name1,name2):
    face = name1 + '的脸蛋'
    body = name2 + '的身材'
    return face,body

a=lover('古天乐','孔明')
#此时return的值为元组 a = ('古天乐的脸蛋', '孔明的身材')
print('我的身材:'+a[0]+' + '+a[1])
#》》我的身材:古天乐的脸蛋 + 孔明的身材

            
          

最后需要再强调的是,没有return语句的函数会默认返回None值。观察结果。

            
              #第一个函数
def fun():
    a ='I am coding'
print(fun())

#第二个函数
def fun():
    a='I am coding'
    return a
print(fun())
#》》
None
I am coding

            
          

第一个函数因为没有return语句,返回None值,所以打印出None。

此外,return还有一个“副作用”:一旦函数内部遇到return语句,就会停止执行并返回结果。

            
              def fun():
  return 'I am coding.'
  return 'I am not coding.'

print(fun())
#》》I am coding.

            
          

函数内部遇到第一个return就会返回,所以只会打印出’I am coding’。

python 深入理解函数_第1张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论