美文网首页
Python---基本知识17之函数1

Python---基本知识17之函数1

作者: hello_我的哥 | 来源:发表于2018-01-22 20:58 被阅读16次

    什么是函数?

    函数其实就是把许多代码放在一起,包装好之后的一种形式,使得他可以被多次复用。

    函数的简单定义:

    如下面代码块所示,首先是一个关键字def,然后一个空格,后面跟函数名,一个小括号,冒号,后面就是代码块了,当然记得加一个tab缩进;调用就直接使用函数名就OK了;

    def simple():

        print("我是函数的简单定义")

    simple()

    传一个参数:

    def simple(str):

        print(str)

    simple('一个参数的函数')

    传多个参数:参数之间以逗号隔开,在调用的时候有两种方式,一种是一一对应,一种是关键字参数对应

    1.

    def sum(x,y):

        print(x+y)

    sum(1,2)

    2.

    def sum(x,y):

        print(x+y)

    sum(y=5,x=7)

    传不定长参数:如下面代码块所示,首先形参前面加一个*,表示传过来的参数应该是元组类型,那么t就是一个元组,在使用函数的时候,直接传多个参数就行;如果是参数前面加两个**,表示传过来的参数类型应该是字典,那么在使用函数的时候传参就应该是字典格式的,

    1

    def indefinite(*t):

        print(t,type(t))

        for i in t: i+=i print(i)

    indefinite(1,2,3)

    2

    def indefinnite(**d):

        print(d,type(d))

        items=d.items()

        result=0

        for k,v in items:

            print(v)

            result+=v

    print(result)

    indefinnite(a=4,b=5)

    参数的装包和拆包:

    装包:就是把多个值装成元组或者字典,比如传多个参数的时候,就需要把多个元素进行装包,拆包,就是把元组或者字典转成多个值;如下面代码所示,把1.2.3三个值转为了元组,就是装包过程,把agrs元组转成了三个值就是拆包的过程;

    def sum(a,b,c):

        print(a+b+c)

    def tupl(*args):

        print(args)

        print(*args)

        sum(*args)

    tupl(1,2,3)

    缺省参数:如下代码所示,name就是缺省参数,缺省参数就是调用函数的时候可以写也不可以不写的参数,默认有一个默认值,如下代码默认值就是monther;

    def love(name='monther'):

        print("i love",name)

    love()

    值传递和引用传递:值传递的意思是说我只是把内容给了你,就好像我一个箩筐有五个苹果,我只是给了你五个苹果,我的箩筐没给你,箩筐还是我的箩筐;引用传递呢就是我不仅把五个苹果给你了,我还把箩筐都给你了;箩筐都给你的意思就是如果你重新装了6个苹果,那么我从箩筐取出来就会是6个苹果,说白了就是你可以改变我给的那个变量,但是在python里面又分了不可变类型和可变类型,这样的话,你就只能改变可变类型的变量,不可变类型是不能改变的,不可变类型改变之后,已经不是同一个变量了;那么针对python语言,使用的都是引用传递,下面上代码:

    1.这段代码验证了当x的值发生改变之后,他的id其实已经改变了,换句话说他已经不是以前的x了

    def transfer(x):

        print(id(x))

        x+=1

        print(id(x))

    y=5

    print(id(y))

    transfer(y)

    print(id(y))

    结果:

    1734399856 1734399856 1734399872 1734399856

    2.这段代码验证了可变类型是可变改变他本身的值:

    def transfer(x):

        x.append(5)

    y=[1,2]

    transfer(y)

    print(y)

    结果:

    [1, 2, 5]

    补充:Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的。

    函数的返回值:

    在代码块的最后加一个return语句就可以把值返回出去,需要注意的是,return后续的代码不会执行

    def sum(x,y):

        s=x+y

        d=x-y

        return s,d

    result=sum(9,5)

    print(result)

    函数使用描述:其实就是注释,对于函数的注释有他的规范,就是在代码块的第一行,用三个双引号进行注释,注释需要说清的几个点,函数功能,参数类型,参数意义,返回值类型以及意义;获取函数的注释用help函数获取;

    def sum(x,y=1):

        """ 求两个数的和

        :param x: 数值1,数值类型,必填

        :param y: 数值2,数值类型,选填,默认值为1

        :return: 两个和,数值类型 """

        result=x+y

        return result

    help(sum)

    相关文章

      网友评论

          本文标题:Python---基本知识17之函数1

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