Python之函数基础

目录


一、什么是函数

函数是对程序逻辑进行结构化或过程化的一种编程方法。能将整个代码块隔离成易于管理的小块,把重复代码放到函数中就不需要进行大块地重复拷贝应用,减少代码的冗余,有助于保持一致性。

函数的阶段:

  (1)定义阶段

    过程:

      申请一块内存空间,把函数体代码放进去,把内存地址给函数名。

    注意:在定义阶段只检测语法,不执行函数体代码 。

  (2)调用阶段

    过程:

      根据函数名找到存着代码块的内存地址,执行函数体代码。

二、为什么用函数

函数的作用:

 (1)明晰函数的组织结构,增强可读性

 (2)减少代码的冗余

 (3)降低管理、维护的难度,增强扩展性

三、函数的分类

#1、内置函数
为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()
ps:我们将会在最后详细介绍常用的内置函数。

#2、自定义函数
很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可

四、函数的定义

 (1)语法:

def functionname(参数1,参数2,...):
    """
    文档描述
    """
    代码块
    return 返回值
(2)def是定义函数的关键字
函数名是用来调用函数的,函数名需要能反应函数功能。
(3)调用
①方式:
函数名(参数1,参数2,...)
②调用函数的原则:
先定义再调用
直接调用会报NameError错误(函数名、变量名等统称为名字)
(4)定义函数的三种方式:
①有参数
参数是函数用来接受外部传入的值
def func(x,y):
    if x>y:
        return x
    else:
        return y

func(10,13)
  ②无参数
当函数不需要调用者传入函数值的前提下就无参
def interactive():
name=input('username>>').strip() pwd=input('password>>').strip() interactive()

      ③空函数

def func():
    pass

func()

五、函数调用

函数调用的三种方式:

#第一种方式:
def func():
    print('hello world')

func()

#第二种方式:
def max(x,y):
    if x>y:
        return x
    else:
        return y

#(1)
res=max(10,13)
print(res)
#(2)
res=max(10,13)*100
print(res)

#第三种方式
def max(x,y):
    if x>y:
        return x
    else:
        return y

res=max(10,13)
res=max(res,12)
print(res)

函数的返回值:

  当函数体代码运行完后需要给调用者一个返回值。

  1.函数返回值的三种用法:

    (1)没有写return时,也有我们看不见的return作为函数执行结束的标志,它的值为None

    (2)return返回值后跟有一个值时,将返回其本身

    (3)return返回值跟有多个值时,将以元组 的形式返回多个值

  2.注意点:

    (1)return是函数执行结束的标志

    (2)return返回值是没有类型限制的

    (3)函数内可写多个return,但是只执行一个

六、函数参数

  形参是函数定义时,括号内定义的参数,即变量名。

  实参是函数调用时,括号 内传入的值,过程是将值绑定到变量名上,函数调用就结束,绑定解除。

  应用:

    1.位置参数:按照从左到右的顺序定义参数

      位置形参:必选参数

      位置实参:按照位置给形参传值

    2.关键字参数:按照key=value形式定义实参

      无需按位置传值

      关键字参数必须在位置实参右边

      对同一个形参不能重复传值

    3.默认参数:形参在定义时就已经为其赋值

      可以传值也可以不传值,经常需要变的参数定义为位置形参,变化小的参数定义为默认参数(形参)

      只在定义时赋值一次

      默认参数的定义应该在位置形参右边

      默认参数通常应该定义为不可变类型

    4.可变参数:

      可变参数是指实参指个数不固定

      实参按位置和关键字两种定义方式,针对两种形式的可变长,可用*args,**kwargs

    5.命名关键字参数:*后定义的参数必须被传值(有默认的除外),而且必须按照关键字实参的形式传递(key=value)。

posted @ 2018-03-23 07:53  桥前石头  阅读(130)  评论(0)    收藏  举报