Python学习之路-----函数
程序员文章站
2024-02-24 14:38:58
...
基本概念
- 函数就是具有独立功能的代码块,Python中的代码块使用Tab来区分,同一个缩进的是同一个代码块。
- 函数使用的两个步骤:
- 定义函数:编写实现代码的部分;
- 调用函数:执行已经写好的代码块
- 函数的作用:在开发过程中大量使用函数来提高效率实现代码的重用。
定义格式
def 函数名():
代码的实现部分
# 定义函数
def func():
print("hello world in func!")
#调用函数
func()
函数执行过程
第一步:函数的定义先载入内存;
第二步:调用函数时先查看内存中是否有此函数符号,若存在便执行;
函数的文档注释
在使用Pycharm开发的时候,系统内置的函数如print(),可以将鼠标放到该函数上,ctrl+q查看注释。
我们自己实现的函数同样可以添加注释。在函数体第一行"""函数注释""",如:
# 定义函数
def func():
"""这是函数注释"""
print("hello world in func!")
#调用函数
func()
函数参数
- 在函数定义的时候写入的参数叫形参,形参的作用是占位,具体的值是由实参决定的。
- 在函数执行的时候写入的函数叫实参;
- 由于实参的值是在实际调用的时候才决定的,所以带参数的函数总能实现一些更强大的功能。试想如果一个函数的作用是实现两个数的和,我们只要随便决定实参的值就能实现任意两个数的和,这无疑是一个强大的功能。
- 在函数调用的时候传入的实参要与函数定义的个数一样,系统会按位置依次赋值
def sum(a,b):
"""任意两个数相加"""
print("a=%d b=%d" % (a,b))
print(a+b)
sum(1,1) # 2
sum(1,2) # 3
sum(2,3) # 5
形参的作用域
形参只能出现在函数内部;
def func1(a):
print(a)
func1(123)
print(a) # 出错
如果形参与函数外的已有参数同名,那么在函数内部形参是由实参决定的。
a = 10
print("函数定义之前 a=%d" % a)
def func1(a):
print("函数体中:%d" % a)
func1(123)
print("函数执行之后 a=%d" % a)
结果:
函数定义之前 a=10
函数体中:123
函数执行之后 a=10
函数的返回值
在函数中使用return返回一个自己认为有意义的值,这样在函数外就可以获得函数的执行结果。
def sum(a,b):
return a+b #使用return返回结果
result = sum(1,1)
print(result) # 2
- 函数在执行return之后函数便结束,因此若return之后还有函数代码,便不执行;
- 当return返回多个值的时候,返回的就是元组;
- 函数内部可以写多个return语句,但是函数最后只会执行其中一个return;
局部变量
- 在函数内部叫做局部变量,它的作用域是只能在该函数内部。
- 在函数内部给变量赋值默认都是定义一个局部变量。
- 局部变量在函数执行完之后就销毁了
全局变量
- 在函数外定义的变量是全局变量,全局变量在整个程序文件定义的那一行之后都生效
- 全局变量在程序执行完成之后才销毁
- 如果在函数内部修改全局变量,需要使用global关键字
a = 10
print("函数执行前,全局变量a=%d" % a) # 函数执行前,全局变量a=10
def func():
global a
a = 100
func()
print("函数执行完:a=%d" % a) # 函数执行完:a=100
全局变量尽量不要与局部变量、形参等同名!默认参数
- 形参可以赋一个默认的值,当实参有值时按实参实际的值运算,当没有对应的实参时,按照形参的默认值运算;
- 默认参数必须放在普通参数右边
def fun(a,b=10):
return a+b
print(fun(1,1)) # 2
print(fun(1)) # 11
关键字参数(指的是实参的位置)
当函数定义时有多个默认值,可以在函数调用的时候给指定的形参赋值;
def fun(a=5,b=10):
print(a) # 5
print(b) # 50
fun(b=50)
可变参数
定义函数时在形参前加*,表示该参数为可变形参,可以接收任意个值;
传入的参数被包装成元组;
def func(*args):
print(args) # (1, 2, 3, 4, 5, 6, 7, 8, 9)
func(1,2,3,4,5,6,7,8,9)
上一篇: 数据结构-------数组
下一篇: Java NIO深入分析