zoukankan      html  css  js  c++  java
  • 铁乐学Python_day09_函数

    今天我们来学习函数。
    产生的原由,若没有函数,会显得重复代码多,可读性差,也会造成重复造轮子的情景。
    故产生了函数,用来封装好一个功能,它是以功能为导向的。

    1、【函数的样式】

    例如自己定义一个函数:
    def my_len():
    def python中的关键字,用来声明和定义一个函数;
    my_len 函数名,命名规范与变量命名的一样;
    def与函数名中间要隔一个空格;
    函数名+"()"+":",括号加冒号,括号里填的要你想要设置函数调用者传递的参数;
    紧接着就是缩进的函数体(主要功能实现部分);

    例,以下自定义的计算可迭代对象元素长度的函数:

    my_len():
    def my_len(l):
        count = 0
        for i in l:
            count += 1
        return count
    
    li = [1, 2, 3, 4, 5]
    print(my_len(li))
    

    函数的执行,函数名+"()"就会去调用执行。
    函数的返回值,定义函数时,不要在函数中写print语句(调试的时候可以这么做),因为函数是以功能为导向的,需要返回输出的值时使用return将值返回给函数的调用者就可以了。
    在函数当中遇到return时就会结束执行函数(结合if语句用就会有像循环中break的感觉)。

    函数返回的值有以下几种:
    1)无return语句,返回None;
    2)使用了return,返回None;
    3)return指定返回一个值,该值是什么,就直接返回给函数调用者;
    4)return返回多个值,将多个值放置到一个元组中,返回给函数调用者。

    2、【三元运算】

    例,在以下自定义一个用于比较两个整数大小的函数体中,就使用了三元运算:

    # 普通的比较两数大小,谁的值大返回谁的函数:
    def max_min(a, b):
        if a > b:
            return a
        else:
            return b
    
    print(max_min(290,355))
    
    # 使用了三元运算优化代码:
    def max_min(a,b):
        return a if a > b else b
    
    print(max_min(45, 56))
    retrun a if a > b else b 的意思是判断如果a > b 就返回a,否则返回b。
    

    3、【函数的传参】

    分两大方面:实参和形参。
    上例中的max_min(45,56)这里的45和56就属于实际传递过去的参数,所以就是实参;
    而def中定义函数时出现的max_min(a,b)中的a,b就属于形式上的参数,用于对应参考的,就是形参。

    实参角度:
    1、位置传参,与形参的位置与个数一一对应,按顺序,个数不能少也不能多;
    2、关键字传参,同样与形参一一对应,但可以不按顺序,因为有关键字,例如上例在实参中直接填写b=56,a=45这样。
    3、混合传参,就是位置参数和关键字参数混合使用,但要注意的是所有的关键字参数都要放在最后面,也就是位置参数要在关键字参数之前。

    形参角度:
    1、位置传参,按顺序和个数与实参形成一一对应关系;
    2、默认参数,重要!设置好默认参数后,如果实参中有传递参数过来,就按照实参的参数,如果没有,就直接按照默认的预设的值。省事又灵活。默认参数永远要在位置参数的后面。
    3、动态参数,今天暂时不去了解。

    end
    2018-3-28

  • 相关阅读:
    JQuery:自动触发事件
    SQL Server 取日期时间部分
    使用IIS 7.0 / 7.5 时配置HttpModules需要注意
    Winform:中直接打开指定文件
    jQuery 时间获取扩展
    喵星史话(一)——猫的起源
    2013年的环法
    ie8下奇怪的问题:float:left之后,右侧的div会影响左侧
    虚假IP和DNS污染
    android中setBackgroundResource和setBackgroundDrawable和用法
  • 原文地址:https://www.cnblogs.com/tielemao/p/8665714.html
Copyright © 2011-2022 走看看