python函数基础

本文介绍了Python函数的基础,包括如何定义和使用函数,参数的类型如位置参数、关键字参数和可变参数,以及函数的参数传递机制。深入探讨了函数的高级内容,如函数作为变量、函数作为参数和返回值,以及lambda表达式的应用。强调了在函数中对可变对象操作时的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、函数入门

为一段实现特定功能的代码起一个名字,以便以后可以通过叫他的名字来使用它

函数像一个黑匣子,传入零个或多个参数,然后再黑匣子里处理过后对应返回零个或多个数值

def 函数名(形参列表):
    '''函数的说明文档'''#可以通过help()函数或者函数的_doc_属性来访问函数文档
​
    代码块
​
    return 返回值#返回值可以是一个值,也可以是表达式,返回值为多个值时会被封装成元组,序列解包接收。有没有返回值看需求

递归函数:在一个函数中调用它自身,递归一定要向一直方向进行,即返回值是确定的,不然就会出现无限循环

2、函数的参数

位置参数和关键字参数,如果混合使用时,关键字参数必须位于位置参数之后

python允许定义个数可变的参数,即通过在形参面前加(*),就意味着这个 参数可以接收多个参数值。

“普通”支持参数收集的形参可以位于函数形参列表的任意位置,但数量只能有一个,

形参面前加(**)可以收集字数可变的关键字参数

也可以进行逆向参数收集

3、函数的参数传递机制

1)程序在开始定义了两个变量a、b,当函数调用时,系统分别为主程序和函数分配两块栈区,并将主程序中的变量的a、b作为参数传递给函数,但是传入函数的只是变量的副本,实际上是在函数内重新产生了变量a、b,并将主程序中的变量值赋值给函数中的变量。此时,系统存在两个变量a、b,只是在不同的栈区,这时候对函数中的变量进行操作,不影响主程序的变量

                                          

2)如果传入的参数本身是一个可变对象(比如字典、列表等),毋庸置疑的是,函数采用的仍是值传递的方式,但有所不同

主程序开始创建了一个字典对象,并定义了一个变量指向这个字典对象,即此时内存中有两个东西:字典对象和指向这个字典对象的变量。主程序中定义的变量实际上只存储了指向这个字典对象的地址值,相当于一个指针。当函数调用时,主程序中的变量仍将自己的副本传递给函数,即函数中的变量也有字典对象的地址值,它也可以指向这个对象,当函数中的变量被改变时,它可以根据这个地址值找到字典对象并对他进行改变,造成了主程序中打印出来的字典对象也发生了改变。

总结:如果需要在函数中对变量进行处理,直接利用“=”赋值是不可行的,需要将他们包装成字典、列表等形式。

不能同时是参数和全局变量

3、函数的高级内容

1)函数作为变量,python的函数也是一种值,所有函数都是函数对象,这意味着我们可以像把整数、列表等赋值给变量一样,把函数叶赋值给变量

2)函数作为形参,可以在调用函数时,动态改变被调用函数的部分代码

3)函数作为返回值

4、lambda表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值