Python学习笔记(四)函数的设计和使用

4.1  函数定义

4.1.1  基本语法

函数定义语法如下:

def 函数名([参数列表]):

    '''注释'''

    函数体

注意事项:

函数形参不需要声明其类型,也不需要指定函数返回值类型

即使该函数不需要接收任何参数,也必须保留一对空的圆括号

括号后面的冒号必不可少

函数体相对于def关键字必须保持一定的空格缩进

Python允许嵌套定义函数

在定义函数时,开头部分的注释并不是必需的,但是如果为函数的定义加上这段注释的话,可以为用户提供友好的提示和使用帮助。

⑦return语句用来从一个函数中返回一个值,同时结束函数。如果函数没有return语句,或者有return语句但是没有执行倒,或者只有return而没有返回值,Python将认为该函数以return None结束。

函数举例:

生成斐波那契数列的函数定义和调用

def fib(n):

     a, b = 0, 1

     while a < n:

         print(a, end=' ')

         a, b = b, a+b

     print()

 

fib(1000)

4.2  形参与实参

函数定义时括弧内为形参,一个函数可以没有形参,但是括弧必须要有,表示该函数不接受参数。函数调用时向其传递实参,将实参的值或引用传递给形参。在定义函数时,对参数个数并没有限制,如果有多个形参,需要使用逗号进行分割。

例如:

编写函数,接受两个整数,并输出其中最大数。

def printMax(a, b):

    if a>b:

         pirnt(a, 'is the max')

    else:

         print(b, 'is the max')

 

对于绝大多数情况下,在函数内部直接修改形参的值不会影响实参。

例如:

 

>>> def addOne(a):

  print(a)

  a += 1

  print(a) 

>>> a = 3

>>> addOne(a)

3

4

>>> a

        3

在有些情况下,可以通过特殊的方式在函数内部修改实参的值。

例如下面的代码:

>>> def modify(v):          #修改列表元素值

  v[0] = v[0]+1

>>> a = [2]

>>> modify(a)

>>> a

[3]

>>> def modify(v, item):    #为列表增加元素

  v.append(item)

>>> a = [2]

>>> modify(a,3)

>>> a

        [2, 3] 

 4.3  lambda表达式

§lambda表达式可以用来声明匿名函数,也就是没有函数名字的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。

§lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含其他复杂的语句,但在表达式中可以调用其他函数。

例如:

>>> f = lambda x,y,z:x+y+z         #可以给lambda表达式起名字

>>> f(1,2,3)                       #像函数一样调用

6

>>> g = lambda x, y=2,z=3: x+y+z   #参数默认值

>>> g(1)

6

>>> g(2, z=4, y=5)                 #关键参数

11

 

PS:

本篇主要参考董付国老师的《Python可以这样学》一书,这是一本不错的Python入门书籍,有兴趣的可以买本看看,当然,也可以持续关注我的博客,我会一直更新相关内容的。

你可能感兴趣的:(Python,Python函数的设计和使用,lambda表达式)