zoukankan      html  css  js  c++  java
  • python_函数

    一。函数

    定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    体现:当我输入一定的数据以后,我能根据里面的执行步骤,算出 另一些数据的值;得到数据,获取输出值。

    形式参数: 函数在定义的时候写的参数。变量名 list_value, element
    实际参数: 函数在调用的时候写的参数。list_value= ['列表'] ,element ='数值1'
    位置参数 positional argument: 形式参数和实际参数要一一按照顺序对应。不多不少, 位置一样。

    1)形式参数
    list_value、element代表形式参数
    def append(list_value,  element):
    """对列表进行数据添加"""
    list_value.append(element)
    return list_value
    
    

    2)实际参数

    list_value=['列表'], element='数值1'代表函数append()的实际参数
    def append(list_value,  element):
    """对列表进行数据添加"""
    list_value.append(element)
    return list_value

    print(append(list_value=['列表'], element='数值1'))
    运行结果:



    3)位置参数

    示例1:

    def(空格) 函数的名称 (位置参数1, 位置参数2, 位置参数3):
    """文档字符串 docstring
    函数的注释,这个函数是干嘛用的。
    参数:
    返回值:
    """
    (缩进)函数体(函数具体执行的逻辑)
    return 函数的返回值(输出)


    例子:
    def add(a, b):
    """两个数相加"""
    print("函数正在执行")
    c = a + b
    return c
    调用:add(1,2)
    运行结果:

     4)默认参数

    注意:

    1.默认参数指在函数定义的时候,给参数一个缺省值。当在函数调用的时候,没有传入改参数的实际参数时,则直接使用这个缺省值

    2.默认参数必须放到位置参数的后面

    如果调用函数的时传入了这个实际参数,默认值不会生效。

    优点:可以简化函数调用的过程,只需要传入少量参数就可以实现调用过程。

    def(空格) 函数的名称 (默认参数1 = a, 默认参数2 = b, 默认参数3 = c):
    """文档字符串 docstring
    函数的注释,这个函数是干嘛用的。
    参数:
    返回值:
    """
    (缩进)函数体(函数具体执行的逻辑)
    return 函数的返回值(输出)
    例子:
    def add(a = 1, b = 2):
    """两个数相加"""
    print("函数正在执行")
    c = a + b
    return c
    调用1(直接使用默认参数):
    print(add())
    运行结果:

    调用2(不使用默认参数,使用实际参数):

    print(add(3))
    运行结果:

     5)关键字参数

    关键字参数名字相当于形式参数的名字

    作用:可以提高函数调用时候的可读性,可以交换参数的顺序,更加容易理解实际参数的意义。

    与位置参数的区别:以不按照顺序进行调用,可以交换顺序。

    注意点:关键字参数也要放到位置参数的后面。

    例子(交换参数位置):

    def get_name(firstname, middle,  lastname=""):
    """获取名字"""
    return firstname + middle + lastname

    a = get_name('你好', lastname='世界', middle='全')
    print(a)
    运行结果:

     

    6)可变长参数

    作用:在函数参数不可知的情况下使用可变长参数。

    形式:

    1.元组可变长参数:参数名前有一个" * "

    可以无限获取函数参数直到不能获取

    2.字典可变长参数:参数名前有两个 " ** "

    可以无限获取函数键值对参数直到不能获取

     例子1(元组可变长参数):

    def get_name(*names ):
    """元组可变长参数"""
    print(names)
    print(type(names))

    get_name('可变长1', '可变长2', '可变长3')
    运行参数:

    例子2(位置参数与元组可变长参数):

    def get_name(firstname, *names ):
    """位置/可变长"""
    print(firstname)
    print(type(firstname))
    print(names)
    print(type(names))
    return firstname

    get_name('位置', '可变长1', '可变长2')

    运行结果:

    例子3(字典可变长参数):

    def get_name(**kwargs ):
    """字典可变长"""
    print(kwargs)
    print(type(kwargs))

    get_name(middle='字典可变长1', yit='字典可变长2')
    运行结果:

    例子4(元组可变长与字典可变长):

    def get_name(*names, **kwargs ):
    """元组可变长/字典可变长"""
    print(names)
    print(type(names))
    print(kwargs)
    print(type(kwargs))

    get_name('可变长1', '可变长2' , middle='字典可变长1', yit='字典可变长2')
    运行结果:

    7)函数之间的调用:
    范围:同一项目内,若不在同一项目需要先引用
    例子(
    congratulate_offer函数中调用eat函数):
    def eat(name, food):
    print("{}喜欢吃食物:{}".format(name, food))

    def congratulate_offer(offer_name, money):
    """庆祝拿到 offer """
    print("{}希望拿到{}k 的 offer.".format(offer_name, money))
    # 请客
    eat(offer_name, '小龙虾')
    congratulate_offer('我', 15)
    运行结果:

    8)函数的作用域:
    全局变量:在函数外部指定的变量,可以在函数内部调用
    局部变量:一般是指函数内部指定的变量,只能在该函数中使用
    区别:1.局部作用域能获取并修改(需要在函数中声明”global“)全局变量;
       2.全局不能获与修改取局部变量;
       3.
    例子1(局部作用域使用全局变量):
    c = 10
    def add(a, b):
    return c + a + b

    print(add(2,3))
    运行结果:

    例子2(局部作用域修改全局变量需要声明"global"):

    c = 3
    def add(a, b):
    global c
    c = c + 3
    print(c)
    #return a + b + c
    add(3, 4)
    print("最后的c:", c)
    运行结果:

    例子3(全局不能获取局部变量):

    def add(a, b):
    c = a + b
    c += 5
    return c
    c = 4
    add(5,7)
    print(c)
    运行结果:

     
    
    
    
    

     1)print 和 return 的区别

    print: 显示,在屏幕上打印
    return: 函数运算的结果,获取结果以后不一定会打印,显示出来

    2)return

    1.函数里面 return 表示函数的返回值,可以在调用函数之后通过变量进行接收
    2.return 知识点2: 函数体遇到 return 就终止运行, 相当于 for/ while 的 break,

    3.函数调用以后得到的数据是由 return 决定的。
    4.函数没有 return , 得到的数据就是 None

    例子:
    打印函数return值
    def add(a, b):
    """两个数相加"""
    print("函数正在执行")
    c = a + b
    #print(c)
    return c

    result=add(1,2)
    print(result)
    运行结果:

     例子: 遇到return就会终止;

              函数调用得到的结果是由return决定的

    def add(a, b):
    if a > 100:
    return a + b
    elif a == 100:
    return a + 2*b
    else:
    return a + 3 * b

    print(add(101, 6))
    运行结果(执行的是第一个if的结果):

    例子:函数没有return,得到的数据是None

    def add( a, b):
    c = a + b


    print(add(1,2))
    运行结果:

    
    
  • 相关阅读:
    【学习小记】一般图最大匹配——带花树算法
    如何检查oracle的归档空间是否满了
    Linux 的计划任务
    转 oracle的热备份和冷备份
    SQLException: Io 异常: Connection refused ERR=12514 ERR=1153异常处理过程
    查看oracle数据库版本
    ORACLE默认实例设置--linux
    oracle查看用户属于哪个表空间
    oracle默认数据库实例
    oracle 查看用户所在的表空间
  • 原文地址:https://www.cnblogs.com/newsss/p/12779568.html
Copyright © 2011-2022 走看看