1.在Python中函数是什么?
函数是带名字的代码块,用于完成具体的工作。
要执行函数定义的特定任务,可调用该函数。需要在程序中多次 执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用 执行该任务的函数,让Python运行其中的代码。
2.函数的好处
- 有助于将程序分解成更小的块(模块化)
- 提高程序的可理解性和质量
- 避免重复并使代码可重用
- 降低了软件开发和维护的成本
一、函数的定义和调用
1.函数的定义
使用def语句定义,一般定义语法如下:
def 函数名(参数列表 ) :
函数体
- 关键字 def:标志着函数头的开始
- 函数名(function_name):唯一标识一个函数,函数命名遵循标识符的编写规则
- 参数列表:通过它可以将值传递给函数,是可选的。
- 冒号(:):用于标记函数头的结尾。
- 函数体:由一个或多个有效的 python 语句构成,语句必须具有相同的缩进级别。
2.函数的调用
函数名()
eg:
无参函数:
def func(): ##函数名
a=1
b=2
c=a+b ##函数体
func() ##调用函数
二、函数的参数
1.位置参数
位置参数,传入的参数值是按照顺序依次复制过去的
def func(a,b): ##函数名
c=a+b ##函数体
return c ##返回值
func(1,2) ##调用函数
位置参数的缺点:
必须熟记每个位置的参数含义。
2.关键字参数
关键字参数是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函 数传递实参时不会混淆。
关键字参数让你无需考虑函 数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(animal_type='hamster', pet_name='harry')
3.默认参数
默认参数用于定义函数,为参数提供默认值,调用函数时可传可不传该more参数的值
注意:所有位置参数必须出现在默认参数前,包括函数定义和调用
def func(name,sex=1): #sex=1为默认参数
print(name)
print(sex=1)
func ("li")
4.可变参数
定义函数时,有时我们不能确定调用的时候会传递多少参数,此时就需要用到可变参数
1)包裹位置传递
def func(*args):
函数体
func()
func(1,2)
func(a,b,c)
我们所传进的所有参数都会被*args变量收集,它会根据传进参数的位置合并为一个元组,args是元组类型。
2)包裹关键字传递
def func(**kargs):
函数体
func()
func(a=1)
func(a=1,b=2)
kargs是一个字典,收集所有关键字参数。
三、函数的四种类型
根据函数的参数和返回值,函数可以分为四种类型:
- 无参数,无返回值的参数
- 无参数,有返回值的参数
- 有参数,无返回值的参数
- 有参数,有返回值的参数
1.无参数,无返回值的参数
def func():
a=1
b=2
c=a+b
print(c)
func()
2.无参数,有返回值的参数
def func():
a=1
b=2
c=a+b
print(c)
return c
func()
3.有参数,无返回值的参数
def func(a,b):
c=a+b
print(c)
func(1,2)
4.有参数,有返回值的参数
def func(a,b):
c=a+b
print(c)
return c
func(1,2)
print(func(1,2))