文章目录
- 1. 函数介绍
- 1.1 函数的概念
- 1.2 函数定义与调用
- 1.2 函数的参数
- 1.3 函数的返回值
- 1.4 说明文档
- 2. 函数的嵌套调用
- 2.1 嵌套调用及执行流程
- 2.2 嵌套调用的应用
1. 函数介绍
1.1 函数的概念
什么是函数?
函数:是一个被命名的
、独立的、完成特定功能的代码段
,其可能给调用它的程序一个返回值
。
通俗的说函数就是把一段可以实现某种功能
的代码封装起来, 想要使用这个功能就可以直接调用函数。
被命名的
:在Python中,大部分函数都是有名函数。
完成特定功能的代码段
:函数的功能要专一,专门为了完成某个功能而定义。
返回值
:当函数执行完毕后,其可能会返回一个值给函数的调用处。
函数的主要作用:
① 模块化编程
② 代码重用
函数中的几个重要概念:
- 函数
- 参数
- 返回值
函数语法:
def 函数名([参数, ..]):
代码1
代码2
...
[return 具体的值]
1.2 函数定义与调用
Python函数需要使用def关键字来定义。使用方式有两步:
(1)先定义
(2)后调用
当然了,函数在使用时,特点:
(1)先定义,后调用;
(2)不调用,不执行;
(3)调用一次,执行一次。
定义函数:
def 函数名():
代码1
代码2
...
调用函数:
函数名()
实例:
(1)编写一个show()函数,并在函数中输出:bug虐我千百遍, 我待bug如初恋。
(2)调用函数,观察执行结果。
# 1.定义
def show():
print("bug虐我千百遍, 我待bug如初恋.")
# 2.调用
show() # 1.写对函数名; 2.()
# 扩展
def show():
# 代码
pass
1.2 函数的参数
当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。
定义有参数的函数,语法:
def 函数名(参数1,参数2,...): # 形参
代码1
代码2
...
调用函数,语法:
函数名(参数值1,参数值2,...) # 实参
说明:
(1)形参是指形式参数,表示在定义函数时的参数;
(2)实参是指实际参数,表示在调用函数时传递的参数值,具有实际意义。
实例:
(1)定义一个函数,用于求解两个数之和;
(2)接着,调用函数并执行程序,观察效果。
# 1.定义函数
def get_sum(a,b):
ret = a + b
print(f"两个数之和为:{ret}")
# 2.调用函数
get_sum(10,20)
总结:
(1)当定义了有参数的函数时,调用函数也需要传递参数值;
(2)注意:当给有参函数传递参数时,要关注参数的三要素:个数、类型、顺序。
1.3 函数的返回值
函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。
返回值语法:
def 函数名([参数1, 参数2, ...]):
代码1
代码2
...
return 值
(1)若要给函数返回结果,需要使用return关键字;
(2)return关键字的作用:把结果返回给函数;结束函数;
(3)当函数没有返回值时,默认返回None。
实例:
(1)定义一个函数1,用于求解两个数之积,并把积返回给函数;
(2)定义一个函数2,用于求解两个数的差、和,并同时返回给函数;
(3)定义一个函数3,输出:人生苦短,我用Python;
(4)执行程序,观察效果。
# 1.求解积
def get_multiply(a, b):
ret = a * b
return ret
print(get_multiply(10,20)) # print()
print('-'*50)
# 2.求差、和
def get_sub_sum(a, b):
ret1 = a -b
ret2 = a + b
return ret1,ret2 # 元组
result = get_sub_sum(30,14)
print(result)
print('-'*50)
# 3.输出:人生苦短,我用Python(输出没有返回值)
def show():
print("人生苦短,我用Python。")
print(show())
1.4 说明文档
说明文档
指的是:在定义函数的第一行,加上多行注释。这样的操作,可以让函数更加规范化。
当添加了说明文档后,在调用函数时,就能查看到函数的作用提示。
那么如何给函数添加说明文档呢?
查看print()函数
def 函数名():
""" 说明文档的位置 """
代码
...
当需要看函数的说明文档的具体内容时,语法:
help(函数名)
实例:
例如,一起来完成:
(1)定义一个函数1,无说明文档内容,输出:一山不容二虎;
(2)定义一个函数2,添加说明文档内容;
(3)执行程序,对比两个函数显示效果。
def func():
"""输出一句话"""
print("="*40)
print("一山不容二虎,除非一公和一母!")
print("="*40)
func()
print(help(func))
# 没有说明文档
# def show():
# print("一山不容二虎.")
#
# show()
# print(help(show))
2. 函数的嵌套调用
2.1 嵌套调用及执行流程
函数的嵌套调用指的是:在一个函数中,调用了另一个函数。
嵌套调用语法:
def 函数1():
代码
...
def 函数2():
代码
# 调用函数1
函数1()
...
说明:在函数2中,调用了函数1。
实例:
例如,一起来完成:
(1)先定义一个test()函数和func()函数;
(2)接着,在函数test()中,嵌套调用func()函数,并在外部调用test()函数;
(3)执行程序,观察效果;
# 1.定义func()
def func():
print("==========AA===============")
print("==========Nfunc()============")
print("==========BB===============")
# 2.定义test()、调用func()
def test():
print("*************11****************")
func()
print("**********M调用了test方法**************")
print("*************22****************")
# 3.调用test()
test() # 1ANBM2
2.2 嵌套调用的应用
使用函数的嵌套调用,可以把复杂的问题分解成:多个简单问题,这样便于解决问题。
比如,要求多个数的平均值。此时就可以拆分成两个函数:
- 函数A:用于求解多个数之和;
- 函数B:调用函数A,获取多个数之和,接着,再使用和除以总个数,就能求解出平均值。
实例:
(1)要完成一个输出任意条横线的需求;
(2)定义函数1:用于输出一条横线;
(3)定义函数2:先循环N次,再调用函数1,可输出N条横线;
(4)执行程序,观察效果。
# 1.定义函数
def line():
print("-"*40)
# 2.N条横线
def print_lines(num):
i = 0
while i < num:
# 嵌套调用
line()
i += 1
print_lines(10)