视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python基础知识之函数总结
2020-11-27 14:13:14 责编:小采
文档
 本篇文章给大家分享的是Python基础知识之函数总结,内容挺不错的,希望可以帮助到有需要的朋友。

函数:包含自定义函数、内置函数

1)自定义函数结构:包含五个部分:

  • def关键字:识别用于创建函数

  • 函数名:比如f1

  • ():()里面有参数

  • 函数体:具体这个函数要实现的功能

  • return:返回值,如果无,则返回none

  • 如下所示:

    2)函数的调用:用函数名+()

    形式为:函数名(参数1,参数2),比如f1(5,8)

    3)函数的执行顺序:自上至下。

    而函数体只有在被调用的时候才执行

    如果要取函数的返回值,需要赋值。

    函数体中的return后的语句不再执行。

    执行结果:

    案例1:自定义函数,因为没有调用函数,所以函数体不执行

    f1():
    ()

    案例2,调用函数,执行函数体。函数体中一旦执行到return,则立即终止,因此后面的print(456)永远不会执行。

    f1():
    ()
    ()
    f1()

    案例执行结果为:123

    案例3,结果为123、111,因为有return把值给了r,print(r)打印出来111

    f1():
    ()
    r=f1()
    (r)

    案例执行结果为:123、111

    案例4:当函数无return的时候,自动默认返回值为None;返回结果为123、None,因为没有return,r接受到的值为None

    f1():
    ()
    r=f1()
    (r)

    案例执行结果为:123、none

    案例5:python传递的是引用,不是复制,如下的li经过函数体执行后,已经被引用了

    f1(a1):
     a1.append()
    li=[,,,]
    (li)
    f1(li)
    (li)

    执行结果:

    [11, 22, 33, 44]

    [11, 22, 33, 44, 999]

    4)函数的参数:

    比如f(x1,x2,x3=1),x1,x2,x3则为参数

    包含的参数类型有:

    普通参数:形式参数和实际参数

    默认参数:提前给定值,比如x3

    指定参数:实际参数调用时,可以改变顺序指定

    动态参数:

    *args

    **kargs

    万能参数*args,**kagrs

    案例1:区分形式参数和实际参数:

    案例中的xxx为形式参数,调用函数时传递的为实际参数

    f1(xxx):
    ()
    xxx+r=f1()
    (r)

    案例2:理解参数的调用

    普通参数,x1、x2,在f1里面按顺序传递


    f1(x1,x2):
    x1+x2
    r=f1(,)

    默认参数,如果设置,则该形式参数必须放后面,如x3,调用时不用再次传递

    f1(x1,x2,x3=):
    x1+x2+x3
    r=f1(,)

    指定参数,指定参数可以改变顺序指定


    f1(x1,x2,x3=):
    x1+x2+x3
    f1(x2=,x1=)
    (r)

    案例3:动态函数(函数名前加*,或者**):一个形式参数,可以接受多个实际参数。

    当形式参数带*时,默认将传递的参数放置在群组中

  • 当实际参数为普通参数传递时,即使列表,也会被作为一个元素传递

  • 当实际参数有*时,list所有的元素将相应的作为元祖的每一个元素

  • (x,(x))
    f1(,,)
    li=[,,,]
    f1(li)
    f1(*li)

    执行结果:

    ('55', 66, 'll') <class 'tuple'>

    ([11, 22, 33, 'hhhh'],) <class 'tuple'>

    (11, 22, 33, 'hhhh') <class 'tuple'>

    当为**时,默认传递的参数放置在字典中,实际参数必须为指定参数或字典

    案例4:如果形式参数为**,传递实际参数的时候也传递**,则会把整个字典传进去

    f1(**x):
    (x,(x))
    f1(=,=)
    dic={:,:}
    f1(**dic)

    执行结果:

    {'n1': 'hh', 'n2': 'kk'} <class 'dict'>

    {'k1': 'n1', 'k2': 'n2'} <class 'dict'>

    案例5:万能参数:f1(*args,**args),必须*在前,**在后

    f1(*a,**x):
    (a,(a))
    (x,(x))
    f1(,,,**{:,:})

    执行结果

    (11, 22, 33) <class 'tuple'>

    {'k1': 'n1', 'k2': 'n2'} <class 'dict'>

    关于万能参数的应用,就是str.format

    案例6:用占位符传递,这样是*arg的应用

    s1=.format(,)
    s2=.format(*[,])
    (s1)
    (s2)

    执行结果:

    i am hh,age2

    i am hh,age2

    案例7:当形式参数为字符变量时,必须后面指定参数传递,为**arg的应用

    =.format(=,=)
    dic={:,:}
    s2=.format(**dic)
    ()
    (s2)

    执行结果:

    i am hh,age2

    i am nn,age4

    5)全局变量:作用在全局,用大写表示,如果要修改且作用于全局,则需要加global

    案例1:全局变量:作用域在全局,用大写表示。

    =f1():
     age=(age,)
    f2():
     age = (age, )
    f1()
    f2()

    案例2:修改全局变量:如果要修改且对全局有用,则可以用global

    NAME=f1():
     age=NAME
     NAME = (age,NAME)
    f2():
     age = (age, NAME)
    f1()
    f2()

    执行结果:

    案例3:修改全局变量:不加global,则仅作用在函数内部

    =f1():
     age= = (age,)
    f2():
     age = (age, )
    f1()
    f2()

    执行结果:

    6)三元三目运算:即if..else的简称。

    格式为:"为真时的结果 if 判定条件 else 为假时的结果" ,

    “condition ? true_part : false_part”

    案例1:如果1==1条件成立,就等于前面的值,否则为后面的值hhh

    ==:
     name=:
     name=name2===

    6)lambda函数:目的就是简化用户定义使用函数的过程

    案例1:lambda函数,简写函数,一个参数

    f1(a1):
    a1+ret=f1()
    (ret)

    #案例可以简写

    =a1:a1+r1=()
    (r1)

    案例2:lambda函数,简写俩参数

    =a1,a2:a1*a2+r1=(,)
    (r1)

    案例3:应用lambda函数

    =[,,,,,]
    key=w:[w]
    r=key()
    (r)

    案例4:循环用法案例

    =n=alphabet=s3=[[:i]+c+[i+:] i () c alphabet]
    (s3)
    执行
    结果为:

    7)python有很多内置函数,可以直接使用

    可参考:http://www.cnblogs.com/vamei/archive/2012/11/09/2762224.html

    下载本文
    显示全文
    专题