Python函数

函数的定义与调用

# 定义
def wash():
    print("加水")
    print("搓洗")
    print("脱水")

# 调用
wash()

函数传参数

def wash(a, b, c):
    print("加水{}升".format(a))
    print("搓洗{}分钟".format(b))
    print("脱水{}分钟".format(c))

wash(3, 40 ,10)

  形参,实参

上例中a b c为行参 传递的 3 40 10为实参

实参与形参必须一一对应不能多或者少

  关键字参数

  可以使用以下方式传递参数

wash(a=3, b=40 ,c=10)

  使用关键字参数参数传递顺序可以不一致

  默认参数

def wash(a, b=20, c=10):
    print("加水{}升".format(a))
    print("搓洗{}分钟".format(b))
    print("脱水{}分钟".format(c))

wash(3, 40, 20)

  注意:默认参数如果不传递参数值会使用默认值

    默认参数后面不能有非默认参数即默认参数需要放在最后

  可变长参数

  示例

# 可变长参数
def funct1(*args):
    for i in args:
        print(i, end=" ")
    print()

funct1(1, 2, 3, 4, 5)

# 定义一个函数传递多个参数求和
def add_num(*args):
    sum = 0
    for i in args:
        sum += i
    print(sum)
add_num(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 函数综合传参-多个关键字 

# 函数综合传参
def people(name, *args, age=18, **kwargs):
    print(name)
    print(args)
    print(age)
    print(kwargs)

people("zhangsan", "man", age=25, salary=20000, department="IT")

  使用参数**kwargs传递参数转换成字典 输出如下

zhangsan
('man',)
25
{'salary': 20000, 'department': 'IT'}

  

函数返回值

函数返回值是函数得到的一个结果

函数的功能要专一,一个函数只能完成一个功能

返回值示例

def test(a, b):
    c = a + b
    return c
    print(c)    # 函数执行到return就结束了,这句不会继续执行

test(1, 2)  # 调用执行函数 无输出
print(test(1, 2))   # 打印返回值输出3
d = test(1, 2)  # 返回值可以赋值给变量
print(d)

 函数结果要被其他地方调用就不用在函数内部使用print打印,色图return返回值

嵌套函数

在一个函数体内调用其他函数

def aaa():
    print("aaa")
def bbb():
    print("bbb")
    aaa()
bbb()

  执行顺序

  1,定义函数aaa

  2,定义函数bbb

  3,执行函数bbb

  4,执行函数bbb内代码打印字符串bbb

  5,执行函数bbb内代表aaa()即执行函数aaa 打印字符串aaa

  输出为

bbb
aaa

  小结:

  函数需要先定义在调用

  调用函数就是执行函数体内的代码

  函数类似一个变量,定义函数就是把函数体内代码在内存开放一个空间存放进去,通过函数名来调用

  示例

  传递三个数字返回最大值

def max_num2(a, b):
    if a > b:
        return a
    else:
        return b

def max_num3(n1, n2, n3):
    aaa = max_num2(n1, n2)
    bbb = max_num2(aaa, n3)
    return bbb

  解析

函数 max_num2传递2个参数返回较大的
函数 max_num3传递3个参数,在内部调用函数max_num2第一次调用返回参数1 2的较大值赋值给aaa 然后再次调用函数max_num2把aaa即参数1 2的较大值很参数3进行对比把较大赋值给bbb然后返回,最终获取了3给参数中的最大值

  函数变量作用域

  示例

name = "zhangsan"   # 全局变量

def change_name():
    name = "lisi"   # 这个变量只在函数内部生效
    gender = "male"
    print(name)

change_name()
print(name) # 结果为zhangsan
print(gender)   # 报错,变量gender只在函数内部使用

  注意:如果函数内部没有重新定义变量则在函数内部可以使用全局变量,如果定义了局部变量则优先使用局部变量

  递归函数

原文地址:https://www.cnblogs.com/minseo/p/13905145.html