python之函数相关知识
1、什么是函数
函数是一种仅在调用时运行的代码块,可以提高代码的复用性
2、定义函数
在 Python 中,使用 def 关键字定义函数。定义函数的格式如下:
def 函数名( [参数] ):
代码
示例
def my_function():
print("hello world")
3、调用函数
定义了函数后,想让它能够执行,需要调用它。调用函数通过函数名称后跟括号 函数名() 即可完成
示例
def my_function():
print("hello world")
my_function()
运行结果:
说明:
每次调用函数时,函数都会从头开始执行,当该函数中的代码执行完毕后,调用也结束了。如果函数中执行到了return也会结束调用
4、函数参数
信息可以作为参数传递给函数,参数在函数名后的括号内指定。发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等)。
4.1 定义带有参数的函数
示例
# 定义带参数(a和b)的函数
def add_function(a,b):
c = a + b
print(c)
4.2 调用带有参数的函数
示例
def add_function(a,b):
c = a + b
print(c)
# 调用此函数时,我们必须传入两个参数,不然会出现语法错误报错
add_function(1,2)
运行结果:
4.3 关键字参数
使用关键字参数允许函数调用时参数的顺序与声明时不一致
示例
def add_function(a,b):
print(a, b)
add_function(1,2) # 不指定时按参数顺序对应
add_function(a=1, b=2)
add_function(b=1, a=2)
运行结果:
4.4 默认参数
在定义函数时,若直接给形参指定一个默认值,那么即便调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定义函数时设置的默认值。指定有默认值的形参必须在所有无默认值参数的最后。
说明:
定义函数时圆括号中的参数,用来接收参数用的,称为“形参”
调用函数时圆括号中的参数,用来传递给函数用的,称为“实参”
示例
# add_function() 函数有 2 个参数,其中第 2 个设有默认参数
def add_function(a,b=3):
c = a + b
print(c)
# 在调用 add_function() 函数时,我们可以仅传入 1 个参数,此时该参数会传给 a 参数,而 b 会使用默认的参数
add_function(1)
# 在调用 add_function() 函数时,也可以给所有的参数传值,这时即便 b 有默认值,它也会优先使用传递给它的新值
add_function(1,2)
运行结果:
4.5 不定长参数
如果我们不知道将传递多少个参数给我们的函数,即参数数目未知,可以在函数定义参数名称前加星号 * 。 加了星号 * 的变量名会存放所有未命名的变量参数,函数将接收一个参数元组,并可以相应地访问各项
示例
def my_function(*fruit):
print("My favorite fruit is " + fruit[2])
my_function("banana", "apple", "watermelon", "strawberry")
运行结果:
5、函数返回值
如果想要在函数中把结果返回给调用者,需要使用 return 语句。在Python中,函数如果不写返回值,有一个默认的返回值 None。 return 代表的是函数的结束,return 后面的代码都不会运行。
示例1
def add_function(a,b):
c = a + b
return c
print(add_function(1,2))
运行结果:
示例2
def add_function(a, b):
c = a + b
print(c)
# 函数运算之后得出的一个返回值(不会打印出来)。返回值用 add_function(1,2) 表示,然后赋值给 x
x = add_function(1,2)
print(x)
运行结果:
6、pass语句
函数定义不能为空,但是如果要写无内容的函数定义,需使用 pass 语句来避免错误
示例
def my_function():
pass
7、函数递归
如果一个函数内部调用自己,那么这个函数就称为递归函数。递归要注意结束条件,也称为递归出口,防止函数无限调用
示例
# 用递归计算阶乘
def func(n):
if n==1:
return 1
else:
return n*func(n-1)
print(func(5))
运行结果: