python学习第十一天
一.函数的基本使用
(1).什么是函数
函数:具备某一功能的工具
函数的定义:实现准备工具的过程
函数的调用:遇到应用场景拿来就用
(2).为何要有函数
内置函数(python3解释器定义好的,我们只需要拿来使用即可)
拿来主义,提升开发效率
自定函数(把程序中实现某一功能的一块代码组织整理到一起)
1.增强程序的组织结构性,提升可读性
2.减少代码冗余
3.提升程序的可维护性与扩展性
(3).如何用函数
使用原则:先定义,后调用
定义函数的语法:
def 函数名(参数1,参数2,参数3):
'''
文档注释
'''
代码1
代码2
代码3
...
return 值
调用函数的语法:
函数名(值1,值2,值3)
1.基本使用
x = 10 # x = 存放值10的那个内存空间的内存地址
print(x)
def login(): # login = 存放代码的那个内存空间的内存地址
name=input('your name>>: ')
pwd = input('your pwd>>: ')
role = input('your role>>: ')
if name =='juanfu' and pwd =='666' and role =='admin':
print('login successful')
else:
print('user or password error')
print(login) #<function login at 0x000001B90ADB51F0>
login()
x = 10
x() #逻辑错误,没有语法错误
2.先定义,后调用
函数的使用分为2个阶段
定义阶段:申请内存空间把函数体代码放进去,然后把内存地址绑定给函数名
调用阶段:通过函数名找到函数体代码,加括号触发函数体代码运行
强调:定义阶段只识别语法不执行代码,只有在调用阶段才会执行代码
def func():
xxx
func()
示范1:
def f2():
print('from f2')
def f1():
print('from f1')
f2()
f1() # from f1 , from f2
示范2:
def f1():
print('from f1')
f2()
def f2():
print('from f2')
f1() # from f1 , from f2
3.函数定义的三种形式
无参函数
def login():
name = input('your name >>: ')
pwd = input('your pwd>>: ')
role = input('your role>>: ')
if name == 'juanfu' and pwd == '666' and role == 'admin':
print('login succussful')
else:
print('user or password error')
login()
有参函数
def max2(x,y):
if x >y:
print(x)
else:
print(y)
max2(10,11) # 11
max2(20,21) # 21
空函数
def login():
pass
def register():
pass
4.函数调用的三种形式
def max2(p1_msalary,p2_msalary):
if p1_msalary > p2_msalary:
return p1_msalary
else:
return p2_msalary
语句形式:单纯的调用
max2(10,11)
表达式:
x = max2(1,2)
res = max2(1,2) * 12
print(res) # 24
可以当做参数传给另外一个函数
res = max2(max2(10,11),12)
print(res) # 12
二.函数的返回值
1.函数体内没有return,或return后没有值:默认返回None
def func():
#return # 返回None
pass # 返回None
res = func()
print(res)
2.return 值:返回的就是这一个值
def func():
return 123
res = func()
print(res) # 123
3.return 值1,值2,值3:返回一个小元组(值1,值2,值3)
def func():
return 123 ,'abc', 3.1
res = func()
print(res,type(res)) #(123, 'abc', 3.1) <class 'tuple'>
补充:
函数内可以有多个return,return是函数结束的标志,函数体代码但凡运行到一个return就会立刻终止整个函数的运行,然后将return后的值当做本次调用的产品返回
def func():
print('first')
return 111
print('second')
return 2222
print('third')
return 333
res = func()
print(res) # first , 111
三.函数参数的详细使用
函数的参数分为2大类
形参
在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参
形参相当于定义在函数内的变量名,用于接收外部传进来的值
def func(x,y): # x,y 是形参
print(x)
print(y)
func(10,11) # 10,11 是实参
实参
在调用函数阶段,括号内传入的值,称之为实际参数,简称实参.
实参相当于变量值,用于为形参赋值的
注意:
在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,
在函数调用完毕后,实参形参会解除绑定,回收占用的内存空间