10、函数基本使用
目录
一、函数的认知
1、什么是函数
函数就是盛放代码的容器,把实现某一功能的一组代码丢到一个函数中,做成一个小工具
2、为何要用函数
# 1、代码的组织结构不清晰,可读性差
# 2、遇到重复的功能只能重复编写实现代码,代码冗余
# 3、功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大
3、如何用函数
原则:先定义,后调用
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体代码1
函数体代码2
函数体代码3
return 返回的值
'''
1.def:定义函数的关键词;
2.函数名:函数名指向函数的内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能;
3.括号:括号内定义参数,参数是可有可无的,且无需制定参数的类型;
4.冒号:括号后要加冒号,然后在下一行开始缩进编写函数体的代码;
5."""注释""": 描述函数功能,参数介绍等信息的文档,非必要,但是建议加上,从而增强函数的可读性;
6.函数体:由语句和表达式组成,根据需求使用。
'''
二、定义函数
1、定义函数的的三种形式
有参函数、无参函数、空函数
参数是函数的调用者向函数体传值的媒介,若函数体代码逻辑依赖外部传来的参数时则需要定义为有参函数,否则定义为无参函数,函数定义阶段不会执行代码,但是会检查语法。
(1) 有参函数
# 比数字大小的函数
def max(x, y):
if x > y:
return x
else:
return y
res = max(15, 12) # 调用阶段传值
print(res)
(2) 无参函数
def func():
print('=======')
print('欢迎光临')
print('=======')
func() # 定义时无参,意味着调用也不需要传值
(3) 空函数
def auth_user():
"""user authentication function"""
pass
def download_file():
"""download file function"""
pass
# 空函数通常是有用的,因为在程序设计的开始,往往是先想好程序都需要完成什么功能,然后把所有功能都列举出来用pass充当函数体“占位符”,这将使得程序的体系结构立见,清晰且可读性强。之后我们便可以统筹安排编程任务,有选择性的去实现上述功能来替换掉pass,从而提高开发效率。
三、调用函数
1、调用函数的三种形式
函数调用时先通过函数名找到函数的内存地址,然后函数的内存地址()会触发函数体代码的运行,按照在程序出现的形式和位置,可将函数的调用形式分为三种
(1) 语句形式
单纯的调用,输入函数名即可
# 定义阶段
def foo():
print('窗外的麻雀')
bar()
def bar():
print('在电线杆上多嘴')
# 调用阶段
foo()
# 执行结果:
窗外的麻雀
在电线杆上多嘴
(2) 表达式形式
通俗来讲就是参与了如 赋值运算,通常有返回值的就是表达式形式的调用
# 做一个比较月薪的函数,然后拿出月薪较多的那个值算出年薪
def a_s_y(x, y):
if x > y:
return x
else:
return y
# 调用阶段
res = 12*a_s_y(15000, 12000) # 把调用函数的值乘以12然后赋值给res
print(res)
# 执行结果:
180000
(3) 作为其他函数参数的形式
见名知意,可以把函数调用当作参数传给另外一个函数
# 比较三个数的大小
def max1(x, y):
if x > y:
return x
else:
return y
res = max1(max1(10, 20), 30)
print(res)
# 函数调用 max(10,20) 其实是得到了30,然后把这个得到的值又给了这个函数,相当于把它当作了参数x,又和参数y 30作比较,是不是感觉有点俄罗斯套娃的感觉,怎么一层又一层,我差点都被绕晕了
2、函数返回值
我们若需要将函数体代码执行的结果返回给调用者,则需要用到return。
(1)用return控制函数的返回值
函数内可以有多个return,但只要执行一次,整个函数就立即结束,并且将return后的值当做本次调用的结果返回,具体来说,函数的返回值又分为三类
1、return 值:返回的就是该值本身
2、return 值1,值2,值3:返回的是一个元组
3、函数内可以没有return,或就一个return后没有值:返回的是None
什么时候该有返回值?
调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值
通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果
什么时候不需要有返回值?
调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值
通常无参函数不需要有返回值

浙公网安备 33010602011771号