Python函数基础(一)

文章详细介绍了Python中函数的定义,包括函数的内存分配和调用过程。讨论了函数的返回值,可以是任何数据类型,甚至包括函数本身。接着阐述了函数参数的不同类型,如位置参数、关键字参数和默认参数,以及它们的使用规则和特点。
摘要由CSDN通过智能技术生成

1.定义函数:

函数的定义就相当于事先将函数体代码保存起来,然后将内存地址赋值给函数名,函数名就是对这段代码的引用,这和变量的定义是相似的。没有事先定义函数而直接调用,就相当于引用一个不存在的“变量名”

def 函数名(参数1,参数2,...):
    """
    文档描述
    """
    函数体
    return 值
    
定义函数发生的事情:
    1.申请内存空间保存函数体代码
    2.将上述内存地址绑定给函数名
    3.定义函数不会执行函数体代码,但是会检测函数体语法
    
调用函数发生的事情:
    1.通过函数名找到函数的内存地址
    2.然后加括号就是在触发函数体代码的执行
 

2.函数返回值  

       返回值特征:
    返回值的数据类型:是所有的数据类型,包括连函数自己本身的代码都可以返回
    返回值不是只有一个结果:可以返回多个结果,要用逗号隔开,如果用一个变量接收,那么以元组的形式返回

3.函数参数

形参与实参介绍:

形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名
def func(x, y):
    print(x, y)

实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值
func(1, 2)

形参与实参的关系:
1.在调用阶段,实参(变量值)会绑定给形参(变量名)
2.这种绑定关系只能在函数体内使用
3.实参与形参的绑定关系在函数调用时生效,函数调用结束后解除绑定关系
 

位置参数

位置参数:按照从左到右的顺序依次定义的参数称之为位置参数

位置形参:在函数定义阶段,按照从左到右的顺序直接定义的“变量名”
    特点:必须被传值,多一个不行,少一个也不行
    
def func(x, y, z):
    print(x, y, z)

位置实参:在函数调用阶段,按照从左到右的顺序依次传入的值
    特点:按照顺序与形参一一对应
func(1, 2, 3)
func(3, 2, 1)
 

关键字参数

关键字实参:在函数调用阶段,按照key=value的形式传入的值
    特点:指名道姓给某个形参传值,可以完全不参照顺序

def func(x, y):
    print(x, y)
    
    
func(x=1, y=2)
func(y=1, x=2)


混合使用
1.位置实参必须放在关键字实参前
func(1, y=2)

2.不能为同一个形参重复传值
func(1, y=2, x=3)    错误
 

默认参数

默认形参:在定义函数阶段,就已经被赋值的形参,称之为默认参数
    特点:在定义阶段就已经被赋值,意味着在调用阶段可以不为其赋值
    
def func(x, y=3):
    print(x, y)
    
func(1)
func(1, 4)

位置形参与默认形参的混合使用

1.位置形参必须在默认形参的左边

def func(x, y=1):
	print(x, y)


func(1, 2)    #实参传入2,那么输出的y=2

2.默认参数的值是在函数定义阶段被赋值的,准确的说被赋予的是值的内存地址

m=2
def func(x, y=m):#2的内存地址送给y
	print(x, y)
	
m = 3
func(1)#输出结果是 1,2
m = [1]
def func(x, y = m):#将[1]的内存地址给y
	print(x, y)
	
m.append(2)
func(1)# 输出结果为:1,[1,2]

3.虽然默认值可以被指定为任意数据类型,但是不推荐使用可变类型
函数最理想的状态:函数的调用只跟函数本身有关系,不受外界代码的影响

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值