Python 函数

一、什么是函数?函数有什么作用?

定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段使用关键字def定义。

 

作用:

    • 可以重复使用,提高代码的重用性。
    • 可以实现某个具体功能。

 

  定义:

def 类名(参数):

  函数体

注意:

    • 函数名:def_mult_two_num(a, b):
    • 函数有return语句,返回值为return的值;
    • 如果执行了return,return后面的语句将不再执行;
    • 没有return语句,返回值为None;

 

二、函数的参数类型

  首先明确,函数定义时,函数名后面括号内的参数叫【形式参数】。函数调用时,括号内的参数叫【实际参数】。

  参数类型:位置参数、默认参数、关键字参数、动态(可变)参数、含关键字的动态(可变)参数

  • 位置参数:形参实参的类型一致,个数位置要一一对应
  • 默认参数:在定义时给形参赋值,当调用时没有传实参时则使用定义时赋值的默认参数,有传参时用实参的值。

默认参数要放在非默认参数后面

  • 关键字参数:根据参数名来传入参数值,无须遵守定义形参的顺序。

实参关键字要和形参对应,不一致或者个数多了、少了,程序都会报错。

实参才有关键字参数这种说法

def Loc_Func(name, age, sex, hobby, motto = "keep on learning"):  
    print(name, age, sex, hobby, motto)


Loc_Func("Rachel", 18, sex="", hobby="Swimming")
Rachel 18 女 Swimming keep on learning
  • 可变参数:
    • 动态参数:定义时形参用一个*+变量名:*args ,将形参接收到的所有位置参数保存在一个【元组】中,不知道函数需要接收多少个实参时使用
    • 含关键字的动态参数:定义时形参使用两个*+变量名:**kwargs,把所有的关键字参数,保存在【字典】中,调用时必须带有关键字且必须使用关键字, 
def Fuc(*args, **kwargs):
    print(args)
    print(kwargs)
    pass


one_tuple=(1, "day")
one_dict={"name": "Rachel", "age": 10}
Fuc(10, "daily", name="Rachel", age=10)  # 位置参数要放在关键字参数前面
Fuc(*one_tuple, **one_dict)  # *args要在**kwargs前面

(10, 'daily')  # args 为【元祖】类型
{'name': 'Rachel', 'age': 10}  # kwargs为【字典】类型
(1, 'day')
{'name': 'Rachel', 'age': 10}

 

三、局部变量和全局变量

局部变量:是指函数体内部定义的变量

全局变量:是指函数外部定义的变量

如何在函数内部定义全局变量?

  使用关键字global,此时的变量a,虽然定义在函数内部,但是依然是【全局变量】

 

def f():
global a
a = 5
print(a)

 

posted on 2019-07-15 11:12  青柠锦鲤  阅读(132)  评论(0编辑  收藏  举报