1 什么是函数
函数就是具备某一功能的工具
2 为什么要用函数
1 程序的组织结构不清晰,可读性差
2 代码冗余
3 可扩展性差
3 如何用函数
函数的使用必须遵循的原则:先定义,后调用
修理工事先准备工具的过程即函数的定义
修理工遇到应用场景拿来工具就用即函数的调用
语法:
def 函数名(参数1,参数2,...):
"""
文档注释
"""
code1
code2
code3
......
return 返回值
def:定义函数的关键字
函数名: 就相当于一个变量名,指向函数的内存地址,
注意:函数的内存地址()就可以触发函数体代码的执行
参数: 参数是函数的调用者为函数体代码传值的媒介,在python中函数的参数无需声明类型
"""文档注释""" : 推荐写上
代码块:就是函数体功能的具体实现
return 返回值 :函数体代码块运行的成果
函数的使用分为两个阶段:
定义阶段: 只检测语法,不执行代码
调用阶段:运行函数体代码
def foo():
xxx
print(
先定义
def foo():
print("from foo")
后调用
print(foo)
foo() 定义时无参,意味着调用时也无需传入参数
先定义
def bar(x,y):
print(x)
print(y)
后调用
bar('a',2) 定义时无参,意味着调用时也必须传入参数
定义无参函数:当函数体的代码逻辑不依赖任何传入的值就能执行,就不需要定义参数
def print_msg():
print('='*50)
print('welecome.....'.center(50,' '))
print('='*50)
print_msg()
print_msg()
定义有参函数:当函数体的代码逻辑依赖于外部调用者传入的值才能执行,必须定义参数用来接收外部传入的值
def max2(x,y):
# x=1
# y=3
if x > y:
print(x)
else:
print(y)
max2(1,4)
def max2(x,y):
if x > y:
return x
else:
return y
res=max2(1,4)
print(res)
def foo():
print('from foo')
bar()
foo()
def bar():
print('from bar')
def foo():
print('from foo')
bar()
foo()
定义阶段
def foo():
print('from foo')
bar()
def bar():
print('from bar')
调用阶段
foo()
定义阶段
def foo():
print('from foo')
bar()
调用阶段
foo()
def bar():
print('from bar')
1.2 有参函数
def bar(x,y):
print(x,y)
bar(1,2)
1.3 空函数
def func():
pass
ftp
def upload():
pass
def download():
pass
def login():
pass
def register():
pass
def ls():
pass
二 调用函数的三种形式
2.1 #语句形式
def foo():
print('from foo')
foo()
2.2 表达式形式
def foo(x,y):
res = x + y
return res
res=foo(1,2) 表达式形式
res1=foo(1,2)*100
print(res1)
2.3 可以当作参数传给另外一个函数
def max2(x,y):
if x > y:
return x
else:
return y
一 函数的返回值需要注意:
1 返回值没有类型限制
2 返回值没有个数限制
返回1个值:调用函数拿到的结果就是一个值
返回多个值:调用函数拿到的结果就是一个元组
返回0个值,或者不写return:调用函数拿到的结果就是None
二 return关键字:return是函数结束的标志,函数内可以有多个return,但只要执行一次,整个函数就结束
1.2 有参函数def bar(x,y): print(x,y)bar(1,2)
1.3 空函数def func(): pass
ftpdef upload(): pass
def download(): pass
def login(): pass
def register(): pass
def ls(): pass
二 调用函数的三种形式2.1 #语句形式def foo(): print('from foo')foo()
2.2 表达式形式def foo(x,y): res = x + y return res
res=foo(1,2) #表达式形式res1=foo(1,2)*100print(res1)
2.3 可以当作参数传给另外一个函数def max2(x,y): if x > y: return x else: return y