一、函数介绍
1.为什么要有函数?
没有函数的代码组织结构不清晰,可读性差。
代码冗余
管理维护难度大,扩展性
2.什么是函数?
具备某一个功能的工具就是程序中的函数。
事先准备工具的过程就是:函数的定义。
拿着工具来使用就是函数的调用。
所有函数都是:先定义后调用!
二、函数的定义
1.语法 def msg()
def是定义函数的关键字 msg就是是函数名,函数名是用来调用函数的,命名必须能反映函数的功能。()是用来放参数的
def msg(count,liu):
print(count*liu) #函数的功能 #在中间还可以加文档描述,来增强函数的可读性。
def good(good_p):
print(good_p)
msg(20,'=') #函数的代码块
good('hello word') #函数的代码块
msg(20,'*')
***以上输出:
====================
hello word
********************
2.定义函数的三种类型
(1)有参函数:参数是函数体代码用来接收外部传入数据的。
inp_name='ly'
inp_paws=123
def interactive():
name=input('请输入你的用户名:')
paws=input('请输入你的密码:')
return name,paws
def auth(name,paws):
if inp_name == name and inp_paws == paws:
print('登录成功')
res=interactive()
x=res[0]
y=res[1]
print(x)
print(y)
***以上输出:
请输入你的用户名:ly
请输入你的密码:123
ly
123
(2)无参函数:当函数代码体逻辑不需要函数的调用者参入值的情况下,定义时无参,意味着调用者用时也无需传入数据。
def line(x,y):
if x > y:
print(x)
else:
print(y)
line(10,50)
***以上输出:
50
name='liuyuan'
paws='123'
def interactive():
inp_name=input('输入你的名字:')
inp_paws=input('输入你的密码:')
if inp_name == name and inp_paws == paws:
print('输入正确')
else:
print('错误')
interactive() ##定义时无参,意味着调用时也无需传入参数。
***以上输出
输入你的名字:liuyuan
输入你的密码:123
输入正确
(3)空函数:函数体为pass.
def auth():
"""
这是一个认证功能
:return:
"""
pass
def put():
"""
上传功能
:return:
"""
pass
def get():
"""
下在功能
:return:
"""
pass
def ls():
"""
list contents
:return:
"""
pass
三、调用函数
定义:函数的使用必须先定义收调用的原则。
2.调用函数:
调用函数必须先定义,再调用。
函数名加()就是在调用函数
# print(print_sym)
# print_sym('#',30)
# print_msg('hello egon')
# print_sym('#',30)
注意:没事先定义而直接调用,就相当于引用了一个存在的变量名。
(1)定义阶段:在定义阶段,不执行函数体代码(只检测语法)
(2)调用阶段:根据函数找到函数的内存地址,然后执行函数体代码
# 定义阶段:
def lol():
print('你好')
blo()
def blo():
print('lasdll')
#调用阶段
lol()
四、返回值
定义:当函数体代码运行结束后,需要有一个返回的结果给调用者。
返回值有三种形式:
1.没有reture,返回None
def ppp():
pass
ren=ppp()
print(ren)
***以上输出
None
2.retur后跟一个值。
def ppp():
return 5
ren=ppp()
print(ren)
***以上输出
5
3.ruture可以以逗号分隔,返回多个值,会返回一个元组给调用者。
def ppp():
return 1,5,6,9,[5,6,9,],{9:6}
ren=ppp()
print(ren)
***以上输出
(1, 5, 6, 9, [5, 6, 9], {9: 6})
注意:
1.retur返回的值,没有类型限制。
2.函数内可以写多个return,但执行一次,函数会立刻结束,并把return后的值作为本次调用的返回值。
def ppp():
print('你好')
return 1
print('你好2')
return 2
print('你好3')
return 3
ren=ppp()
print(ren)
***以上输出
你好