01. 函数介绍

一、函数介绍

1、什么是函数?

函数:具有某种功能的工具
函数的定义:事先准备工具的过程
函数的调用:即 遇到应用场景拿来就用

2、为何要用函数?

(1)对于python定义好的函数,拿来直接用就行
(2)对于自己定义的函数,有如下几个好处:

增强程序的组织结构性,提升可读性
简洁,减少冗余
提升程序的可维护性与可扩展性

3、如何用函数?

原则:先定义,后调用
具体用法:

def 函数名():
	"""文档注释"""
	代码1
	代码2
	代码3
	...
	return 返回值
函数名(1,2,3...)  # 函数的调用

二、函数的基本使用

函数的使用分为两个部分

1、定义阶段

申请内存空间将函数体代码保存下来,然后将内存地址绑定给函数名,(函数名 = 函数的内存地址)

2、调用函数

函数名() ===>  通过函数名找到函数的内存地址,加括号触发函数体代码的运行

注意:

函数定义阶段不执行代码只识别语法,只有在调用阶段才执行代码

如:

def f1():
    print('from f1')
    f2()  # 函数定义时不运行,所以不会报错

def f2():
    print('from f2')

f1()

3、函数定义的三种形式

(1)无参函数
函数体代码运行逻辑不需要外来数据

def func():
	print("hello world")

func()

(2)有参函数
函数的运行依赖外来数据

def max2(x,y):   # 函数的运行依赖外来数据x,y
    if x > y:
        print(x)
    else:
        print(y)

max2(10,11)    # 相当于把10赋值给x,11赋值给y来运行

(3)空函数
函数体暂时为空,用来作为预留代码的框架

def login():
    pass       

def register():
    pass

4、函数调用的三种形式

def max(x, y):
    if x > y:
        return x
    else:
        return y

针对上面的函数例子
(1)语句形式

单纯的调用一下

如:

max(11, 22)

(2)表达式形式
如:

res = max2(1, 2)
x = max2(1, 2) * 10
print(res, x)

(3)可以把函数的调用当做一个值传给另一个函数
如:

print(max2(10,11))

5、函数的返回值

(1)return :

函数内可以有多个return,但是只要运行一次return就会立刻结束函数的运行,
并且把return后面的值本次函数调用的结果返回

(2)函数可以有三种形式的返回值

① 函数体内没有return,或者return后面没有值:默认返回None
② return 值:返回的就是该值本身(这个值可以是任意类型)
③ return 值1,值2,值3:返回一个元组(值1,值2,值3)
  • 总结:

      函数的使用一定要分成两个阶段来看
      一、定义阶段:只检测语法,不执行代码
      二、调用阶段:执行函数代码
    

示范:

def func1():
	print('from func1')
	func2()  # 定义阶段并不执行代码
def func2():
	print('from func2')

func1()  # 函数的调用在func2 定义之后,所以不会报错

三、函数的参数

1、函数的参数分为两大类:

① 形参:

在定义函数时,括号内定义的变量名,称之为形式参数,简称形参===>变量名

② 实参:

在调用函数时,括号内传入的值,称之为实际参数,简称实参===>变量值

2、python中参数的种类:

(1)位置参数

① 位置形参:

在函数定义阶段按照从左到右后的顺序依次定义形参(变量名),称之为位置形参
特点:必须被传参,多一个少一个都不行

② 位置实参:

在函数的调用阶段按照从左到右的顺序依次 定义实参(传入的变量值),称之为位置实参
特点:按照位置传值,一一对应
(2)关键字实参:

在函数的调用阶段按key:value的形式为指定的形参名传值,该形式称之为关键字实参

特点:在在传值的时候可以完全打乱顺序,但是仍然可以指名道姓地为指定的形参传值
def func(x,y):  
  print(x,y)

func(y=1,x=2)

注意点:
位置实参可以与关键字实参混用,但是

① 位置实参必须放在关键字实参的前面;
② 不能为同一个形参重复赋值
(3)默认形参:

在函数定义阶段就已经为某个形参赋值,该形参称之为有默认值的形参,简称默认形参
特点:

函数调用阶段可以不用为其传参赋值,
但如果调用时重新赋值的话,那么函数将以传参的值运行
def func(x,y=2):
  print(x,y)

func(1)      # 默认y=2
func(1,222)  # 函数调用时y被传了值,那么本次调用以当前传的值为准

注意:

① 默认形参应该放在位置形参的后面
② 默认形参的值通常使用不可变类型的值,否则每次调用会受上一次调用的影响(函数的调用应该到彼此之间没有关联)
③ 默认形参的值只在定义阶段被赋值一次,函数定义之后的改变对默认形参没有影响
	也就是说,函数调用时没有为默认形参传值,那么不会每次调用都重新赋值

示例:

m=333
def func(x,y=m): # y=333
    print(x,y)

m=44444
func(1)  # 1 333 调用时y的值仍然是333
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值