# 什么是函数?
“函数就是一段可以重复使用的代码块。我们用 def 来定义它,给它起个名字,然后在需要的时候调用它。你可以给它传一些参数,它会执行一些操作,最后可能会返回一个结果。”
“函数就像是一个‘小机器’,你给它一些输入(比如数字或文字),它就会帮你做一些事情,然后把结果给你。比如你想让电脑打印一句话,你可以写一个函数,告诉它‘打印’什么内容。这样,你就可以在需要的时候调用它,而不用每次都重复写相同的代码。”
```python# -*- coding: utf-8 -*-'''@File : 7-函数.py@Author : HY @Version : 1.0@Desc : None'''def print_str(): print("你好,世界!")```
这段代码的意思是:“我定义了一个叫‘打印问候语’的函数。当你调用它的时候,它就会打印出‘你好,世界!’。”
# 为什么需要函数?
在Python中,函数的使用能够带来很多好处,主要体现在以下几个方面:
1. 代码复用;函数允许我们将一段代码定义一次,然后在程序的多个地方重复使用。这样可以避免重复编写相同的代码,提高开发效率。
2. 模块化编程;通过将复杂的问题分解为多个小函数,可以让程序结构更清晰、更易于理解和维护。每个函数负责一个特定的功能,便于单独调试和修改。
3. 提高可读性;函数可以给代码段起一个有意义的名字,使得代码更易读。例如,calculate_area() 比一大段计算面积的代码更容易理解。
4. 便于调试和维护;当程序出现问题时,可以通过函数来定位错误。如果某个函数出错,只需要检查该函数内部的逻辑即可。
5. 参数传递与返回值;函数可以通过参数接收输入数据,并通过返回值输出结果,这使得数据在程序中的流动更加规范和可控。
6. 降低复杂度;函数可以将复杂的任务分解为简单的步骤,从而降低整个程序的复杂度。提高了代码的复用性和可维护性,还使程序结构更加清晰。
# 如何定义一个函数?
使用def关键字来定义函数
```python'''def 函数名(参数): # 函数体 return 返回值函数的要素函数名:给函数起个有意义的名字参数:函数接收的输入值函数体:函数要执行的具体操作返回值:函数执行后返回的结果'''```
定义一个计算两个数相加的函数:
```python# -*- coding: utf-8 -*-'''@File : 7-函数.py@Author : HY @Version : 1.0@Desc : None'''def func_add(a, b): res = a + b return res```
通过这种方式,我们就能理解函数的本质:它是一个可以重复使用的代码块,让程序更加模块化和易于管理。
# 函数怎么用?
定义完成后,通过函数名来调用函数:
函数名(参数)
函数的使用要点
- 参数传递:调用函数时传入实际的值(实参)
- 返回值:函数可以返回结果,也可以不返回
- 函数复用:定义一次,多次调用
- 模块化:把复杂任务分解成小函数
```python# -*- coding: utf-8 -*-'''@File : 7-函数.py@Author : HY @Version : 1.0@Desc : None'''def func1(a, b): return a + bres = func1(3, 5) # a=3, b=5print(res)'''@OutPut : 8'''```
# 函数的参数和返回值是什么?
函数定义的关键字是 def,后面跟着函数名和一对括号,括号里可以放参数。函数体用缩进来表示。
函数名可以随便起吗?比如用数字开头?为什么函数要加括号 ()?如果函数没有 return 语句,会返回什么?
函数名不能以数字开头,且不能与 Python 关键字冲突。函数名后面加括号是为了调用它。如果没有 return,函数默认返回 None。
```python# -*- coding: utf-8 -*-'''@File : 7-函数.py@Author : HY @Version : 1.0@Desc : None'''def print_str(): print("你好,世界!")def func_add(a, b): res = a + b return resres_1 = print_str()res_2 = func_add(1,2)print("res_1的返回值是:"+str(res_1))print("res_2的返回值是:"+str(res_2))'''@OutPut : 你好,世界!res_1的返回值是:Noneres_2的返回值是:3'''```