Python函数学习解析

系统 2057 0

一、函数调用过程

程序调用函数需要四步:

  1. 调用程序在调用处暂停执行
  2. 在调用时将实参复制给函数的形参
  3. 执行函数体语句
  4. 函数调用结束给出返回值,程序回到调用前的暂停处继续执行。

二、函数的参数传递

**形式参数(形参):**在函数创建和定义过程中使用的参数。
**实际参数(实参):**在函数被调用的过程中传递进来的参数。
形参只是代表一个位置、一个变量名,没有具体的值。
实参是一个具体的值,是赋值到变量名中的值。
实参默认按位置顺序依次传递给形参,若参数个数不对,就会报错
关键字参数:

普通的参数叫做位置参数,调用时需要按照位置传递参数值。
关键字参数就是在调用函数,传入实参时指定形参的变量名。

可选参数(默认值参数):

定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值。
当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代。
由于函数调用时需要按照顺序输入参数, 可选参数必须定义在非可选参数的后面。

可变数量参数(*c,**d):

在定义函数时,可以设计可变数量参数,通过参数前增加 单星号( * )或双星号( ** ) 实现。带有星号的可变参数只能出现在参数列表的后面。调用时,增加单星号的参数被当做 元组 类型传递到函数中,增加双星号的参数被当做 字典 类型传递到函数中。

            
              >>>def vfunc(a, *b):
				print(type(b))
				for n in b:
						a +=n
				return a
				
>>>vfunc(1,2,3,4,5)

              
                
15

              
            
          

参数的位置与名称传递

Python提供了按照形参名称输入实参的方式,函数调用如下:

            
              result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)

            
          

由于调用函数时指定了参数名称,所以参数之间的顺序可以任意调整。

参数传递的基本顺序:

  • 位置参数
            
              >>> def add(x,y):
>>> 	return x + y
>>> add(3,4)
7

            
          
  • 关键字参数
            
              >>> def add(x,y):
>>> 	return x + y
>>> add(y = 4,x = 3)
7

            
          
  • 可变数量参数
    1.arg:以 元组 形式返回
    2.**arg:以 字典 形式返回
            
              >>> def test_fun(a,b = 6,*c,**d):
>>>    print("a = ",a,"b = ",b,"c = ",c,"d = ",d)
>>> test_fun(1)
a =  1 b =  6 c =  () d =  {}

>>> test_fun(1,2)
a =  1 b =  2 c =  () d =  {}

>>> test_fun(1,2,3)
a =  1 b =  2 c =  (3,) d =  {}

>>> test_fun(1,2,3,4)
a =  1 b =  2 c =  (3,4) d =  {}

>>> test_fun(a = 1)
a =  1 b =  6 c =  () d =  {}

>>> test_fun(a = 1,b = 2,c = 3) #c和d是占位符,不是名称,c是不确定数量的单个变量,d是有键有值
a =  1 b =  2 c =  () d =  {'c': 3}

>>> test_fun(1,2,3,4,x = 1)
a =  1 b =  2 c =  (3,4) d =  {'x': 1}

>>> test_fun(1,2,3,4,5,6,x = 1,y = 2,z = 3)
a =  1 b =  2 c =  (3, 4, 5, 6) d =  {'x': 1, 'y': 2, 'z': 3}

>>> test_fun(1,2,3,4,b = 8) #b不能二次赋值
TypeError: test_fun() got multiple values for argument 'b'


            
          

三、函数与过程

函数: 有返回值
过程: 无返回值
Python中只有函数,没有过程。 如果没有return语句,默认返回None。

变量的返回值:
  • return语句用来退出函数并将程序返回到函数被调用的位置继续执行。return语句同时可以将0个、1个或多个函数运算完的结果返回给函数被调用处的变量。
            
              >>>def func(a, b):
			return a*b
>>>s = func("knock~", 2)
>>>print(s)
knock~knock~

            
          
  • 函数可以没有return,此时函数并不返回值。函数也可以用return 返回 多个值 ,多个值以 元组 类型保存
            
              >>>def func(a, b):
			 return b,a
>>>s = func("knock~", 2)
>>>print(s, type(s))
(2, 'knock~')
              
              
            
          

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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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