python学习日记09(函数)
文章目录
函数的定义
函数就是把具有独立功能的代码块组织成一个小模块,在需要时进行调用。
- 定义函数——封装独立的功能模块
- 定义函数名时,需要遵守命名规则
- 提高编程时的效率以及代码的重用
函数的定义:def 函数名(参数1,参数2,...)
参数可为空
def sum():
pass
函数的使用
函数是封装好的功能模块,只有在调用时才会执行。
函数的调用方法:只需要函数名()
就可完成调用
def prt_hi():
print('hello')
prt_hi()
输出结果:
hello
注意事项:
- 函数体在定义好后,函数体中的代码不会执行,只有在调用时才会执行;
- 每次调用函数,函数都会从头执行,当函数中的代码执行完成时,这个函数也就执行完成了;
- 当函数中存在
return
时,函数执行到return
就结束。
函数的参数
定义、调用带有参数的函数
-
函数参数的定义
在定义函数
def 函数名(参数1,参数2,...)
时,将参数设置为可变数据类型,就完成了具有参数的函数。 -
参数的意义
- 函数的参数,增加函数的通用性,针对相同的数据类型处理逻辑,能适应更多的数据;
- 在函数内部,把参数当作变量进行使用,进行数据处理;
- 函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递。
例:使用函数完成两个数的和
def sum_double(a, b):
print(f'{a}+{b}={a + b}')
sum_double(5, 6)
输出结果:
5+6=11
形参和实参
-
形参
定义函数时,在定义语句圆括号内的参数,这类参数只在函数内具有意义,也只能在函数内部使用。在函数内部作为变量使用。
-
实参
调用函数时,圆括号内的参数,用来把数据传递到函数。
函数的返回值
返回值介绍
函数的返回值,可以理解为程序中函数完成功能后给调用者一个结果。
使用返回值的前提:函数调用者想要在函数外使用函数的结果。
带有参数的函数的返回值及保存
def sum_double(a, b):
return a+b
c = sum_double(5, 6)
print(c)
输出结果:
11
对具有参数的函数的返回值,调用者可以使用变量进行接收。
局部变量和全局变量
局部变量是在函数内部定义的变量,只能在函数内部使用。
全局变量是在函数外部定义的变量,(没有定义在某一个函数内),所有函数内部也可以使用这个变量。
局部的特点
局部变量是在函数内部定义的变量,只能在函数内部使用
函数执行结束后,函数内部的局部变量,会被系统回收。
不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响
局部变量的作用
在函数内部使用,临时保存函数内部需要使用的数据。
函数调用函数
在函数中调用另一个函数
def testB():
print('---- testB start----')
print('这里是testB函数执行的代码...(省略)...')
print('---- testB end----')
def testA():
print('---- testA start----')
testB()
print('---- testA end----')
testA()
输出结果:
---- testA start----
---- testB start----
这里是testB函数执行的代码...(省略)...
---- testB end----
---- testA end----
注意事项:当两没有返回值的函数相互调用时,会造成内存溢出错误。
内存溢出:
def prt_A():
print('A')
prt_B()
def prt_B():
print('B')
prt_A()
prt_A()
输出结果:
RecursionError: maximum recursion depth exceeded while calling a Python object
递归错误:调用Python对象时超出的最大递归深度