python中函数的相关内容(自我总结)

函数

1.函数的作用
2.函数的定义
3.函数的参数
4.函数的返回值
5.全局变量和局部变量
6.内部函数

1.函数的作用

将重复的代码封装到函数,使用时直接找函数即可。
大大增强了代码的模块化和提高了代码的重复利用率。

2.函数的定义

'''
格式:
def 函数名([参数,参数,....]):
    函数体(重复的代码)

注意事项:
    1.必须使用关键字def
    2.函数体注意缩进
    3.函数名()   绑定在一块,是必须写的    
'''

3.函数的参数

#第一类无参函数:
'''
def func():
    pass(函数体)
    
func()    -----> 进行调用
'''
#第二类有参函数:
'''
1.普通参数
def func(name,age):
    pass(函数体)

func('小谢','18')     --->这里形参和实参个数要一致
'''

#举例:
def func(name,age):
    print(name,age)      #结果为:小谢 18


func('小谢','18')
'''
2.可变参数
A.  
def func(*args):
    pass
    
func()          ------>函数调用时,实参的个数可以没有,也可以有多个。但是不可以是关键字参数(key = value这种类型)
func(4) 
func('小谢',18)
'''

#举例:
def func(*args):
    print(args)


func()  # 这样调用的结果为:()
func(4)  # 这样调用的结果为:(4,)
func('小谢', 18)  # 这样调用的结果为:('小谢', 18)
'''
B:
def func(**kwargs):
    pass
    
    
func(a = 1,b = 2)    ---->函数调用时,实参的个数可以没有,也可以多个,但必须是关键字参数
'''

#举例
def func(**kwargs):
    print(kwargs)  # 结果为:{'a': 1, 'b': 2}


func(a=1, b=2)
#C:
def func(*args, **kwargs):
    print(args)  # 结果为:(1, 3)
    print(kwargs)  # 结果为:{'1': 'a', '2': 'b'}


list1 = [1, 3]
dict1 = {'1': 'a', '2': 'b'}
func(*list1, **dict1)  # 这里转换成了func(1, 3, '1': 'a', '2': 'b')
#*和**  在传实参时作用是对其进行拆解。在形参时*的作用是用元组封装。**作用是用字典进行封装
# D:混用
def func(name, *args, **kwargs):  # name是不可变参数,所以在进行调用时,必须要有这个参数。后面两个可有可无。
    print(name, args, kwargs)      #根据*不能直接关键字参数,**只能接受关键字参数,系统会自动的从前往后进行识别和调整



func('小谢')  # 结果为:小谢 () {}
func('小谢', a=1)  # 系统会直接跳过*args   结果为:小谢 () {'a': 1}

def func(name,age = 18)     #注意这里,若调用时,不给age值,则默认age为18
    pass

4.函数的返回值

'''
return 返回值
1.return 后面可以是一个参数,接收的时候x = add(1,2)
2.return 后面也可以是多个参数,如果是多个参数则底层会将多个参数先放到一个元组中
将元组作为整体返回。
3.接收的时候也可以是多个。
'''


# 举例:
def add(a, b):
    return a + b  # x = add(1, 2)调用函数时
    # return a, b    #y = add(1, 2)和i, j = add(1, 2)调用函数时


x = add(1, 2)
print(x)  # 结果为:3

y = add(1, 2)
print(y)  # 结果为:(1, 2)

i, j = add(1, 2)
print(i, j)  # 结果为:1 2

5.全局变量和局部变量

1.全局变量:声明在函数外层,所有的函数都可以访问
2.局部变量:在函数内部声明,仅限于函数内部访问
3.全局变量可以在函数中随便访问,但是全局变量如果是不可变的,则在函数中进行修改时需要添加global关键字(global 变量);全局变量是可变的时候,不需要在函数中添加global关键字

6.内部函数

就是函数中包函数
在内部函数中:
1.可以访问外部函数的变量
2.内部函数可以修改外部函数的可变类型的变量比如:list1
3.内部函数修改全局的不可变变量时,需要在内部函数中声明 global 变量
内部函数修改外部函数的不可变量时,需要在内部函数中声明 nonlocal 变量
4.locals() 查看当前的函数中声明的内容有哪些,以字典的形式输出 print(locals())
globals()查看全局中声明的内容有哪些,以字典的形式输出 print(globals()) 注意这个里 面会输出一些系统的键值对

一个注意事项:
函数声明不顶用,必须进行函数调用才会执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值