17、函数

作者: 魔方宫殿 | 来源:发表于2022-03-31 22:52 被阅读0次

上集回顾:

  1. 列表推导式的一般形式
  2. 列表推导式的复杂表达式

Life is short, you need Python!

前面小P已经稍微了解了一下函数。本集来详细学习下Python函数。

一、定义
函数可以理解为一个有名字的代码片段,函数定义完成以后,想要执行这个代码片段,直接调用函数名就可以了,不用每次都要把整个代码片段重新编写一次。例如:

>>> def print3Line() :
...   print("line 1 ----------")
...   print("line 2 ----------")
...   print("line 3 ----------")
...
>>> print3Line()
line 1 ----------
line 2 ----------
line 3 ----------
>>> print3Line()
line 1 ----------
line 2 ----------
line 3 ----------

二、参数
可以传递给函数一个值,让他按这些值做一些事情。这些值就是叫做参数,定义函数时用的参数名称叫做形参,实际调用时传递的值叫实参。例如:

>>> def printLines(n) :
...   for i in range(n) :
...     print("line", i, "------------------")
...
>>> printLines(1)
line 0 ------------------
>>> printLines(3)
line 0 ------------------
line 1 ------------------
line 2 ------------------

三、返回值
函数执行完成以后,可以把结果返回出来,这个结果叫做返回值。例如:

>>> def add(x, y) :
...   return x + y
...
>>> add(5, 10)
15
>>> add(1, 3)
4

四、默认值参数
有些参数可能大部分情况都是一个值,特殊情况下才是不同的值,这时就可以使用默认值参数,调用时如果使用默认值就可以省略这个参数,不使用默认值时才需要传入参数。比如PI值大部分取3.14,偶尔可能用更高的精度:

>>> def mulPi(n, pi = 3.14) :
...   return n * pi
...
>>> mulPi(1)
3.14
>>> mulPi(3)
9.42
>>> mulPi(3, 3.1416)
9.4248

五、关键字参数
有了默认值参数以后,调用确实方便灵活了很多,但是如果有多个默认值参数,例如:f(a=1, b=2, c=3, d=4),此时如果调用时不使用d的默认值怎么办呢?直接用f(5)修改的会是参数a。此时就要指名道姓,想修改谁就直接指出名字,例如f(d=5),这就是关键字参数。举个例子:

>>> def f(a=1, b=2, c=3) :
...   print("a =", a, "b =", b, "c =", c)
...
>>> f()
a = 1 b = 2 c = 3
>>> f(5)
a = 5 b = 2 c = 3
>>> f(c=5)
a = 1 b = 2 c = 5

六、别名
函数定义完成以后,如果仅仅想给函数改名字,可以把函数名赋值给新的函数名就行了,不用重新定义函数。例如:

>>> def longNameFunction() :
...   print("lalala-------------")
...
>>> longNameFunction()
lalala-------------
>>> newName = longNameFunction
>>> newName
<function longNameFunction at 0x7f75b74d77b8>
>>> newName()
lalala-------------
>>> longNameFunction()
lalala-------------

本集总结:

  1. 函数定义
  2. 函数参数
  3. 函数返回值
  4. 默认值参数
  5. 关键字参数
  6. 函数别名

下集见

相关文章

网友评论

    本文标题:17、函数

    本文链接:https://www.haomeiwen.com/subject/dbwmjrtx.html