一、函数的定义
在开发程序的过程中,如果需要模块代码多次,为了提高编写的效率以及代码的重用,则要把具有独立功能的代码块组织成为一个小模块,称为函数。
语法格式:
def 函数名():
代码
eg:
def func1():
print('--------------------------')
print('测试函数1')
print('--------------------------')
二、函数的调用
定义了函数之后,就相当于是有了具备某些功能的代码,想要让这些代码能够执行,需要调用函数。
语法格式:
函数名()
eg:
func1()
注意:
- 每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了。
- 如果函数中执行到了return,就会结束函数。
- 调用时,实参个数和先后的顺序应该和定义函数的顺序保持一致,如果调用的函数有返回值,那么就可以用一个变量来保存这个值。
三、函数的类型
1,无参数,无返回值
此类函数,不能接受参数,也没有返回值,一般情况下,打印具有提示功能的函数,使用此类函数。
语法格式:
def 函数名():
语句
def meau():
print('--'*25)
print('这是无参数,无返回值的函数哦!')
print('可以用作提示功能哦!')
print('--'*25)
meau()
显示结果:
2,无参数,有返回值
无参数,有返回值的函数,不能接收参数,但是可以返回某个数据,一般在采集数据功能应用的时候,使用此类函数
语法格式:
def 函数名():
语句
return 需要返回的数值
def getAge():
#年龄获取代码块
return 18
age = getAge()
print('年龄为:%d' %age )
显示结果:
注意:
- 一个函数有没有返回值,就看有没有return语句,因为只有return语句才可以返回数据。
- 在开发者根据需求来设计函数是否需要返回值。
- 函数中可以有多条return语句,但是只要执行一条return语句,就意味着这个函数的调用完成。
3,有参数,无返回值
有参数,无返回值的函数,接收参数,但是不返回数,一般情况下,对某些变量要设置数据而不需要结果时,使用此类函数。
语法格式:
def 函数名(形参列表):
语句
注意:
- 在调用函数时,如果需要把一些数据一起传递过去,被调用函数就需要用参数来接收。
- 参数列表中变量的个数是根据实际传递数据的多少来确定的。
4,有参数,有返回值
有参数,有返回值的函数,不仅可以接收,还可以返回某个数据,一般在数据处理并需要结果的应用使用此类函数。
语法格式:
def 函数名(形参列表):
语句
return 需要返回的值
# 计算1~100的和
def num_sum(x):
result = 0
i = 1
while i <= x:
result += i
i += 1
return result
result = num_sum(100)
print('1~100的和为:%d' %result )
显示结果:
四、函数的参数
- 形参:用来接收参数用的,定义的时候放在小括号里面的。
- 实参:调用函数的时候小括号里面的,用来传递参数给函数用的。
五、函数的嵌套使用
一个函数里面又调用了另外一个函数,这就是函数的嵌套调用。若果函数A中点用了另外一个函数B,那么先把函数B中的任务都执行完毕之后在回到上次函数A执行的位置。
def func1():
print('----------------func1 开始执行----------------------')
print('func1 代码块')
print('----------------func1 执行完毕----------------------')
def func2():
print('----------------func2 开始执行----------------------')
func1()
print('----------------func2 执行完毕----------------------')
func2()
显示结果:
六、参数默认值的使用
在定义函数时,可以给每一个形参指定默认值,在调用函数的时候,如果给形参传递了实参,那么python就会使用,传递的实参,否则,会使用定义时参数的默认值。
1,使用参数默认值
def desicribe_pet(pet_name,animal_type='猫猫'):
"""显示宠物信息"""
print("我有一个 " + animal_type)
print('名字叫做' + pet_name)
desicribe_pet('球球')
显示结果:
注意:
这个函数在定义的时候给animal_type参数设置了默认值,所以在调用函数的时候,可以不用传参,直接使用默认值。
2,给定义默认值的参数传递实际参数
def desicribe_pet(pet_name,animal_type='猫猫'):
"""显示宠物信息"""
print("我有一个 " + animal_type)
print('名字叫做' + pet_name)
desicribe_pet('球球','狗狗')
显示结果:
注意:
当给定义默认值的参数传递实际参数是,python会使用实际传递的参数,不使用默认值。