# python3小白课:函数是什么 ### 函数是什么 上学的时候,我相信大家学习过一种简单的函数,比如`y = x + 1`,通过映射关系,输入x的值,就能计算出y的值。 类似的,在编程语言中,函数可以是一段封装好的代码,你只要给它喂进去它规定需要的零到多个参数,它通过一通群魔乱舞之后就能给你吐出来结果。就像刚才说的函数等式一样,编程语言中封装的函数也能够多次进行调用。 从咱们开始学习到现在,我想使用得最多的就是内置的`print`函数了吧,你只需要喂给它你需要打印输出的内容,它就会输出到控制台中。同时这个命令还能无限次进行调用。 使用它的人无需在意它在内部如何群魔乱舞的细节,只需要了解它要喂什么,和它会吐什么就可以了。 但定义它的人不一样,既需要知道它需要喂什么,吐什么,还需要知道内部运行的细节,这可比仅仅使用它难多了。这跟我们制造东西一样,使用一台电脑很好学习,但制造一台电脑对个人来说可不是个容易的事情。 本章节我们主要就来讲讲定义它的一些细节。 > [!note] > > 放心,定义函数的难易程度跟你要实现的目的有关,对于逻辑简单的函数,其实并不费什么功夫。 --- ### 为啥要用函数 > [!question] > > 有的同学会好奇,我们使用之前学习的内容,直接写我们要执行的代码不好吗?干嘛还要定义个函数,然后再调用它听起来这种听起来很麻烦的做法呢? 其实我们可以有这么一些个好处: (1)控制代码运行的开关。函数定义后,没有调用它的情况下是不会执行的,这样我们结合流程控制,可以智能地选择要运行的代码,当不想运行的时候,注释掉调用语句或者不写调用即可,用不着把大段的代码逻辑给注释掉或删除掉,非常方便。 (2)代码复用。函数为代码复用的重要手段,比如我们要计算一个我们想要的复杂的计算结果需要传入1个参数,然后跑200行的代码后才能获得正确的结果。如果没有函数,那么我们每次计算都写一遍这200行代码吗?这么做显然是低效而且浪费资源的。我们做程序员就是为了`偷懒`,别人辛辛苦苦干一天的活,我们整个自动化程序,自己跑个一小时就干完了,大大提高了生产力,所以重复的代码还是尽量交给计算机来完成比较好,这样我们有更多的时间来思考业务实现逻辑的优化。这也体现了`封装`的思想,将经常需要使用的相同或相似代码打个包,用到的时候拿出来玩玩,用不到的时候它就乖乖躺一边,多舒服啊。 当然使用函数还有其他一些好处,这里就不再赘述了。总之它很好,就对了。