python学习之函数

本文详细介绍了Python函数的各个方面,包括函数参数的使用,返回值,全局与局部变量的区别,如何处理多个返回值,缺省参数的设定,可变参数的传入,以及递归和匿名函数的运用。此外,还讨论了sort方法、filter、map和reduce等内置函数的使用,以及装饰器和计算代码执行时间的概念。同时,文章涵盖了模块的导入和内置模块的简介。
摘要由CSDN通过智能技术生成

函数

什么是函数:就是一堆准备好分代码,在需要时调用这一堆代码

函数的声明,使用关键字def来声明

函数的执行逻辑,要和函数的名字一致

在python中用

# def 函数名()
    函数要进行的操作

函数定义好之后需要调用才会运行

1.函数的参数

可以按照位置一一对应传入参数,也可以按照变量名传入(此时可以无序)

2.函数的返回值,函数的文档说明

返回值就是函数执行的结果,并不是所有函数都必须要有返回值

return表示一个函数的执行结果

def add(a:int, b:int):
    """
    这是一个注释
    :param a: 
    :param b: 
    :return: 
    a和b冒号后为建议传入参数类型
    """
    c = a + b

#  c只有在函数内部使用,没有返回值则result无法获取函数结果
result = add(1, 2)
print(result ** 4)

函数调用

3.全局变量和局部变量

全局变量在整个py文件中都可以访问

局部变量只能在函数内部访问,在函数内部定义

如果局部变量和全局变量同名,则是在函数内部定义一个新的局部变量,不是修改去全局变量

如果想要在函数内部修改全局变量,使用global方法

内置函数globals可以查看全局变量, locals可以查看局部变量

在python中,只有函数能够分割作用域

4.多个返回值

一般情况下,一个函数最多只会执行一个return语句

特殊情况(finally语句)下,一个函数可能会执行多个return语句

def test(a, b):
    x = a // b
    y = a % b
    return x, y  #返回的本质是元组,用[]包裹则为列表,{}是时字典

#可以用列表,元组,字典将返回值作为整体返回

print(test(2, 3))

5.函数的缺省函数

默认参数(若没有传递参数,会使用默认值,如果有参数传入,则使用传入的参数)

如:print(”hello world“,end=‘’)

若end未传入则使用默认的换行

如果有位置参数和关键字参数,则位置参数要放在关键字参数之前

6.可变参数的使用

可使用元组或列表打宝传入

*args表示可变位置参数(可变参数会以元组的方式保存到args里,缺省参数需要放在位置参数后)

**kwargs表示关键字可变参数(多出的关键字参数会以字典的形式保存)

7.可变类型和不可变类型传参

def test(a):
    print('修改前a的内存地址0x%X'%id(a))
    a=100
    print('修改后a的内存地址0x%X'%id(a))

def demo(nums):
    print('修改前nums的内存地址0x%X'%id(nums))
    nums[0]=10
    print('修改前nums的内存地址0x%X'%id(nums))
x=1
print('修改前x的内存地址0x%X' % id(x))
test(x)
print('修改后x的内存地址0x%X' % id(x))
print(x)

y=[3,5,9,4,6,7,0]
print('修改前y的内存地址0x%X' % id(y))
demo(y)
print('修改前y的内存地址0x%X' % id(y))
print(y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值