函数初识

  • 函数的定义与调用
def func():  # 使用关键字def定义一个函数
    print('成功调用')
func()  #使用函数名加括号调用一个函数
  • 函数的返回值

函数的返回值分为三种情况

1.无返回值

2.有一个返回值

3.有多个返回值

函数返回值可以起到结束函数的作用

def func(m):
    if m==1:
        print('成功调用,一个返回值')
        return 1  # 使用关键字return设置返回值
    else:
        print('成功调用多个返回值')
        return 1,2,3,4


ret = func(1)  # 接受返回值
print(ret)
ret = func(2)  # 使用一个变量接受多个返回值时,将多个返回值组成元祖
print(ret)
ret1,ret2,ret3,ret4 = func(2)  # 使用规定个数个变量接受返回值
print(ret1,ret2,ret3,ret4)
  • 函数的形式参数、位置参数和函数的传参

函数的形式参数即在函数定义时设置的接受实际参数的参数

形式参数有四种

位置参数

动态位置参数  *args  可以接受任意多个位置参数并将他们组合为元祖

关键字参数

动态关键字参数  **kwargs  可以接受任意多个关键字参数,并将他们组合为字典、

形式参数的定义要按照位置参数,动态位置参数,关键字参数,动态关键字参数的顺序来

函数的实际参数是指在函数调用时实际传给函数的参数

实际参数分为位置参数和关键字参数

函数实际参数的传递要参照,函数形式参数的定义顺序

函数传参是指将实际参数传给位置参数

def func(a, b, *args, c='c', **kwargs):
    print(a, b, args, c, kwargs)


func('a','b',1,2,3,4,5,c='6',dd='d',ee='e')
#输出结果为a b (1, 2, 3, 4, 5) 6 {'ee': 'e', 'dd': 'd'}
  •  在传参的时候可以使用*将原来的序列按顺序打散,并将序列的各个值传递给函数,或者使用**将字典打散按关键字传参
    def func(a,b,c,d):
        print(a,b,c,d)
    
    
    dic = {'a':'aa','b':'bb','c':'cc','d':'dd'}
    func(**dic)  # 使用**将字典打散,并向函数传递关键字参数
    lis = ['aa', 'bb', 'cc', 'dd']
    func(*lis)  # 使用*将序列按顺序打散,并将序列的各个值传递给函数

 如果函数参数的默认值是可变数据类型那么如果不传参数,那么就公用这个数据类型的资源

def func(l=[]):
    l.append(1)
    print(l)


func()  # 输出结果为[1]
func()  # 输出结果为[1, 1]
func([])  # 输出结果为[1]
func()  # 输出结果为[1, 1, 1]
func([])  # 输出结果为[1]
func()  # 输出结果为[1, 1, 1, 1]
原文地址:https://www.cnblogs.com/baisexiaoxuanfeng/p/10598110.html