什么是函数
# 函数就相当于具备某一功能的工具
# 函数的使用必须遵循一个原则:
# 先定义
# 后调用
# 函数分两大类:
# 内置函数(python自带)
#例如 len()
# 自定义函数:(把程序中实现某一功能一块代码组织整理到一起)
为什么使用函数
为了解决
1、增强程序的组织结构性、提升可读性
2、减少代码冗余
3、提升程序的可维护性与扩展性
函数的调用
函数的使用必须遵循’先定义,后调用’的原则。函数的定义就相当于事先将函数体代码保存起来,然后将内存地址赋值给函数名,函数名就是对这段代码的引用,这和变量的定义是相似的。没有事先定义函数而直接调用,就相当于在引用一个不存在的’变量名’。
定义函数的语法格式:
def 函数名(参数1,参数2,...):
"""文档描述"""
函数体
return 值
解释:
def:定义函数的关键字;
函数名:函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能;
括号:括号内定义参数,参数是可有可无的,且无需指定参数类型;
冒号:括号后要加冒号,然后在下一行开始缩进编写函数体的代码;
“”“文档描述”"": 描述函数功能,参数介绍等信息的文档,非必要,但是建议加上,从而增强函数的可读性;
函数体:由语句和表达式组成;
return 值:定义函数的返回值,return是可有可无的。
函数定义的三种形式
形式一:无参函数
def func():
print('哈哈哈')
print('哈哈哈')
print('哈哈哈')
# 定义函数发生的事情
# 1、申请内存空间保存函数体代码
# 2、将上述内存地址绑定函数名
# 3、定义函数不会执行函数体代码,但是会检测函数体语法
# 调用函数发生的事情
# 1、通过函数名找到函数的内存地址
# 2、然后加()号就是在触发函数体代码的执行
# print(func)
# func()
形式二:有参函数
def func(x,y): # x=1 y=2
print(x,y)
func(1,2)
形式三:空函数,函数体代码为pass
def func(x, y):
pass
函数调用
1、语句的形式:只加括号调用函数
def func():
print('哈哈哈')
print('哈哈哈')
print('哈哈哈')
func()
2、表达式形式:
def add(x,y): # 参数-》原材料
res=x + y
return res # 返回值-》产品
# 赋值表达式
res=add(1,2)
print(res)
# 数学表达式
res=add(1,2)*10
print(res)
3、函数调用可以当做参数
def add(x,y): # 参数-》原材料
res=x + y
return res # 返回值-》产品
res=add(add(1,2),10)
print(res)
函数返回值(返回多个值用逗号,隔开)
# return是函数结束的标志,即函数体代码一旦运行到return会立刻终止函数的运行,并且会将return后的值当做本次运行的结果返回# 注意# 不加return,函数也是返回None# 直接return,默认返回None# return 值,返回一个值# return 值1,值2,值3,返回一个元组(值1,值2,值3)
1、不加return或只有return
def func():
print('哈哈哈')
return
res=func() #==>None
2、return 值,返回一个值
def func():
print('哈哈哈')
return 1
res=func() #==>1
3、return 值1,值2,值3(返回一个元组(值1,值2,值3))
def func():
print('哈哈哈')
return 1,2,3
res=func() #==>(1,2,3)