当前位置: 移动技术网 > IT编程>脚本编程>Python > (四)函数一

(四)函数一

2018年04月28日  | 移动技术网IT编程  | 我要评论

师徒信,mxgs-733,海贼战队

函数用途:去除重复代码,增加代码的可维护性
定义函数:def     函数名():    【定义函数时不会执行】
调用函数:函数名()    【调用函数时才执行】
文档说明:第一行用字符串说明
形参:定义函数时的参数        实参:调用函数时的参数
传参的作用:同一个函数可以执行出不同的效果
1 def text(形参1,形参2):
2     """文档说明"""
3     pass
4 
5 text(实参1,实参2)
6 help(text)  # 产看文档说明

PS:位置与个数必须一一对应

 
参数的类型:
    1、缺省参数(为形参赋值):带有默认值的参数。调用函数时,如果没有为缺省参数赋值,则为默认
         缺省参数必须再形参列表最后
1 def printinfo(name, age=35):         # age=35 :缺省参数
2    # 打印任何传入的字符串
3    print("name: %s" % name)
4    print("age %d" % age)
5 
6 # 调用printinfo函数
7 printinfo(name="miki")  # 在函数执行过程中 age去默认值35
8 printinfo(age=9 ,name="miki")
   
 2、位置参数:形参和实参需要一一对应的传递
    3、关键字参数(命名参数):指定要传递的形参名字(可以无序,在实参里使用)
    4、不定长参数:用一个星号,由元组来接收 (*args);用两个星号,,由字典来接收(**kwargs)
                             如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的   
1 def functionname([formal_args,] *args, **kwargs):  # 不定长参数
2    """函数_文档字符串"""
3    function_suite
4    return [expression]
注意:
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典.
 
返回值的作用:调用者需要使用函数结果(知道其结果)
返回值:
    1、return:会立即终止函数,回到函数调用的地方,多个return只执行第一个
    2、None:没有数据,函数没有返回值
    3、不同的分支上允许存在多个return返回。
ps: 函数里return什么都不写,专门用于终止函数
        return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据   那么默认是元组
 
函数类型分四种:
  • 无参数,无返回值
  • 无参数,有返回值
  • 有参数,无返回值
  • 有参数,有返回值
函数的嵌套:
    一个函数里面又调用了另外一个函数
def testB( ):
    print('---- testB start----')
    print('这里是testB函数执行的代码...(省略)...')
    print('---- testB end----')

def testA( ):
    print('---- testA start----')
    testB( )
    print('---- testA end----')

testA( )   # 执行
  {如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置}
 
局部变量:
        定义:在函数内部定义的变量,其作用范围仅限这个函数内部,只能在函数内使用,函数外部是不能使用的
全局变量:
        定义:在函数外定义的变量,能够在所有的函数中进行访问
{在函数里为全局变量,实际上创建了一个行的局部变量}
global:在函数里声明,修改全局变量
# 在一个函数里,全局变量与全局变量不能同名
 
 
打包、拆包:
打包:把多个值放在一个数据里
拆包:把一个拆分成多个值
除了对元组拆包之外,还可以对列表、字典等拆包
拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
 >>a, b = (11, 22)
 >> a = 11, b = 22
交换两个变量的值:a,b = b,a
 
附:1、传递实参时,在列表或元组前写一个星号,可以讲列表或元组拆分成单独的位置参数传递
       2、传递实参时,在字典前写两个星号,则会讲字典拆分成单独的关键字参数传递

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网