美文网首页
python-函数

python-函数

作者: 凤凤思密达萌萌哒 | 来源:发表于2020-01-07 21:33 被阅读0次

    一、基本介绍

    • 没有使用函数式编程之前带来的问题
    • 代码的组织结构不清晰,可读性差
    • 实现重复的功能时,你只能重复编写实现功能的代码,导致代码冗余,白白耗费精力。假如某一部分功能需要扩展或更新时,需要找出所有实现此功能的地方,一一修改,无法统一管理,加大了维护难度。

    函数是什么

    1、函数是对实现某一功能的代码的封装
    2、函数可以实现代码的复用,从而减少代码的重复编写

    二、定义函数

    1、函数分类

    函数分为 内置函数 和 自定义 函数

    1、置函数是自带的,直接可以调用。比如 : id() type() list()
    2、自定义函数 是我们自己在代码中编写定义的

    2、定义函数语法

    def 函数名(参数1.参数2,......)
        '''注释'''
        函数体
        return 返回值
    
    • def 是定义函数的关键字
    • 函数名和变量名的定义规则一样,要能体现出函数的功能含有:
      1、()小括号时必须的
      2、:小括号后面的英文冒号是必须的
    • 参数不是必须的,多个参数使用英文逗号,隔开,
    • 函数体可以写任意合法的python代码,需要缩进4个空格。
    • return 是用于返回数据的,这个是可选的。
    • 返回值也是可选的。

    定义函数

    def foo():
        print("hello jack")
    foo()  #调用函数
    ****注意:函数必须先定义,才能调用****
    

    三、函数的参数

    函数的参数可以是python 中的任意数据类型,并且参数的数量可以是零个或多个。
    函数参数分为:

    • 形参:形式上的参数,在定义函数时使用,其实就是一个变量名
    • 实参:实际的数据,实在调用函数时使用。

    1、形参中位置参数和默认参数

    def sys(msg)      --sys就是位置参数--
        print(msg)
        s = "hello,jack"
    #调用
    sys(s)  
    

    1、函数调用

    def func(x,y)
        n = x -y
        print(n)
    func(3,2)
    

    2、传递参数

    位置参数有几个,调用函数时就要传递几个。并且有位置顺序的区分

    1.默认参数,直接传递实参
    def conn_L(ip="192.168.142.99"):
          print(ip)
    conn_L()
    
    2.也可以传递实参
    conn_L("192.168.142.1")
    

    2、实参中的位置参数和关键字参数

    • 实参:在函数使用的时候,给函数传递的参数。
    • 位置参数:一个个数据对象,传递的时候是有位置顺序区分的。如:(18,'jack')
    • 关键字参数:变量名和变量名的组合,传递的时候没有位置顺序之分。如:(name=jack,age=18)
    1.位置参数
    def say_me(name,age):
        print("昵称:",name)
        print("年龄:",age)
    say_me("jack",18)      
     
    2.关键字参数
    def say_me(name,age):
        print("昵称:",name)
        print("年龄:",age)
    say_me(age=18,name="jack") 
    
    **关键字参数的变量名必须 和定义函数时的参数名称一致**
    

    3、实现接受任意参数

    *  可以接收所有的位置参数
    ** 可以接收所有的关键字参数。
    
    In [7]: def aa(*args,**kwargs): 
       ...:     print(args) 
       ...:     print(kwargs) 
       ...: aa(1,3,a=10)                                                    
    (1, 3)
    {'a': 10}
    

    4、返回值强大之处

    函数也可以通过关键字 return 返回任何数量的 Python 中的任意数据类型,作为结果

    调用函数并且接收返回值
    In [9]: def foo(): 
       ...:     s = 'lenv' 
       ...:     li = [1,2,3] 
       ...:     return s,li 
       ...: name,l3 = foo()                                                 
    In [10]: name                                                           
    Out[10]: 'lenv'
    In [11]: l3                                                             
    Out[11]: [1, 2, 3]
    

    四、函数的高级用法

    1、作为参数传递

    def f1():
        n = 1 + 1
        return n
    
    def foo():
       ret = arg()
       print(ret)
    foo(f1)
    输出2
    ----------------------------------------------
    注意这里传递的是 函数名,后面不要加小括号。
    本质上是传递了函数对象本身
    

    2、作为返回值返回

    def f2():
        print("hello")
    def func():
        return f2
    f = func()
    print(id(f))
    print(id(f2))
    
    # f 和 f2 都指向了同一个函数对象
    

    相关文章

      网友评论

          本文标题:python-函数

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