函数的定义以及调用

"""
一:函数的定义,分类
为什么需要函数?
面条版的程序存在的问题
1.代码结构不清晰,可读性查
2.有很多冗余(多余的重复的)代码
3.后期的维护性极差,扩展性

基于上述问题,程序中必须有对应的解决方案就是函数

函数是什么?
函数是实现某一功能的代码的集合体
相当于生活中具备某个功能的工具,例如:锤子
要使用工具 必须要先制造工具,才能使用
同理,在程序中要想使用函数,则必须先定义函数(创建函数)

如何定义函数
定义函数的语法:
def 函数的名字(参数1,..参数n):
'''
文档注释
文档注释可以被help函数提取
'''
代码1
代码2
代码n
return 值

return 参数 和注释都是可选的

def: 定义的关键字
函数的名字: 用来查找和执行函数,
python的命名规范:
不能是数字开头
不能是关键字
只能由数字,字母,下划线组成
要见名知意,这一点很重要,必选让使用的人能看出来你的功能
用下划线连接多个单词
档注释:注释是给程序看的备注信息,文档注释用于描述函数的具体细节.文档注释可以被help函数提取
代码块:具体实现功能的代码,也称之为函数体
return: 用于返回值给使用者

参数是可选 那就可以将函数
分为
有参函数
当你的函数体执行需要依赖外界的数据才能完成功能,那就应该是有参函数
无参函数
当你的函数体执行不需要依赖外界的数据就能完成功能,那就应该是无参函数


如果不包含任何函数体就就称之为空函数

定义
def func():
pass # (略过函数体)

# 调用
func() # 调用空函数是没意义的

在程序开发初期有用,可以用于定义出程序的结构

参 数是什么?
参加,参与,数据
参与运算的数据
什么样的代码应该定义为函数
这段代码会多次被执行,
这个段代码是一个完整的独立的功能



二 函数的调用:
def func():
print("func run")
# 1.直接调用
func()

# 2.在表达式中调用
def max(a,b):
if a > b:
return a
else:
return b
print(max(10,20) * 100)

# 3.将函数的返回值作为参数
print(max(max(10,20),30))


定义阶段
1.申请内存空间,将函数的代码存储到内存中
2.把内存地址和函数名建立绑定关系
需要强调的是:函数在定义阶段是不会执行函数体代码的,但是会检测语法

调用阶段
1.通过函数名找到函数的内存地址
2.加括号触发函数体的执行


三 return返回值:
return 关键字用来返回一个值
在函数定义中是可选的

什么时候该有返回值
函数是工具,是帮你完成某个功能的,一些功能在完成后必须要产生一个结果给调用者
例如生活中的榨汁机,执行完成后使用者应该得到果汁

什么时候不需要返回值
在调用这个函数时,不需要返回任何结果给调用者,那就不需要返回值

return的特殊用法:
1.一次性返回多个值
2.返回空值
不写任何的return 默认返回None
return后不返回任何值
return None
3.一个函数中可以有多个return关键字
函数执行过程中只要遇到了return 后续代码都不会执行了,函数立马返回
我们可以利用这个特点来结束函数的执行
"""
原文地址:https://www.cnblogs.com/xiezuodd/p/10250186.html