什么是函数

# 函数就相当于具备某一功能的工具
    # 函数的使用必须遵循一个原则:
        # 先定义
        # 后调用
# 函数分两大类:
  # 内置函数(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)