python中的函数(自我总结)

 

函数分为两种

1.内建函数

比如:type(),max(),range()

在编程时是可以直接调用的函数

python中的函数(自我总结)_第1张图片

2.自定义函数(或第三方函数)

   自定义函数是可以用“def”定义一个自己想要的函数

   首先我们了解一下函数的基本结构

   

   在上面的这个函数中,fun 的是函数名

   在 () 没有输入参数,

   然后直接在第二行中输入 print("姓名") 就是 fun 函数的方法

   当我们调用这个函数时,就可以引用函数中的方法

   python中的函数(自我总结)_第2张图片

   非常简单,好理解!!

   现在说一下加入型参的函数,fun(): 中的 () 输入参数

   我们可以看到直接引用下面的函数是没有打印出结果

python中的函数(自我总结)_第3张图片

 但是运行的结果并没有报错

说明函数并没有直接打印函数结果的能力,第一个函数可以打印结果,是因为函数的方法有打印的代码。

那我们在试一下打印上面的函数结果是什么呢?

python中的函数(自我总结)_第4张图片

运行函数的结果是为None,大家知道None是一种特殊的字符类型

为什么不是直接打印出函数的结果呢?因为没有加return这个返回结果

但为什么第一个不带参数的函数可以运行函数中的方法呢?

大家看一下面的函数

python中的函数(自我总结)_第5张图片

其实,大家可以看到print(fun()),打印出的结果是一样为None

中间的123的结果,实际上就是print(123)打印出的结果

因为在函数在缺少return时,函数是缺少了返回值,所以这个时候调用函数是的结果值是None

而当函数的方法被调用时,是会被直接执行的,所以运行的结果会有123

要组成一个完整的函数,需要加上返回值return

在函数方法中,被赋值的参数是不会影响函数以外定义的参数

如下图中所示

python中的函数(自我总结)_第6张图片

运行出的结果是正确的,函数外的a = 5和函数内 a = 2,是没有相互影响的

3.return的运用

return是返回函数的参数的,大家思考一下,当一个函数有多个结果时,return是否也可以返回多个结果呢?

比如:一元二次方程,一元二次方式最多是有两个解的这种情况

这个时候就需要输出两个解

下面这个函数方法中定义的值,在返回时就返回这两个值

python中的函数(自我总结)_第7张图片

return返回多个值时,是不需要加括号的

如果return返回一个函数中没有定义的对象呢?

return是会直接报错的

但如果在函数之前定义一个参数是否可以通过函数的return返回呢?大家思考一下

python中的函数(自我总结)_第8张图片

这个函数没有报错的,说明是可以被运行的

运行的结果如下

大家可能已经知道,函数中没有定义的对象,return返回却可以返回出未被定义的参数,这是什么原因呢?

 我们都知道python代码的运行是从上而下的

我们简单修改上面代码的顺序,将c = 0 放到后面,会发现

python中的函数(自我总结)_第9张图片

代码没有报错,但是呢运行的结果是“name 'c' is not defined”

有此可以得出

1.函数的返回值是可以返回函数以外的参数

2.函数中出现同样的对象,优先输出函数内的参数,但不会同时输入两个一样的对象值

大家在连续思考一下,型参是否可以定义多个呢?

可以练习一下

4.函数的嵌套

原本的函数中再定义一个函数

是否可以

我们先来做一个有趣的探究,在return中返回原本函数的结果,思考一下是否会出现循环的效果

python中的函数(自我总结)_第10张图片

大家看到这个函数,会发现这个函数好像可以一直计算下去,y值会越来越大

这就是一个“死循环”,只要你不手动去结束,函数就会一直计算y的值

大家在看下面的函数,如果我们在函数本身的方法中去调用它本身会不会有报错呢?大家可以先思考一下 

python中的函数(自我总结)_第11张图片

实时上,该函数的执行结果,是没有被运行出来的,但是我们会发现,他是在一直在运行,但一直无法得到结果,这也就是一个死循环。

很多人会问了,如果在型参中再调用函数呢?可以不可以被调用

答案:是不可以的,代码就会直接报错了

python中的函数(自我总结)_第12张图片

   

函数名、参数、方法

你可能感兴趣的:(python,开发语言,后端)