zoukankan      html  css  js  c++  java
  • (05)函数

    -----------
    更新时间:
    17:34 2016-03-03 星期四
    -----------
    文件头通用写法
    #!/usr/bin/python
    #conding:utf8

    ■ 函数定义
        ● 定义  def 函数名(参数列表) 如 def fun(x,y..)   取的名字不要保留关键字冲突
        ● 调用 函数  fun(1,2)  函数定义了,要调用才会执行里面的代码

    ■ 函数参数
        ● 形参 在定义函数时,后面的参数列表,为形参  def fun(x,y..)   x,y 这些为形参
        ● 实参 在调用函数时,后面的参数列表,为实参  fun(1,2)   1,2 这些为实参
        ● 给定实参时,数目要和形式的数目一致,传什么类型没有规定
        ● 默认参数,在形参时指定,必须是从右开始指定,否则就要调整参数列表的顺序
            def machine(x=3,y) 不合法  def machine(x,y='合法')

    ■ 函数相关变量的作用域
        ● 局部变量 ,在函数定义的变量为局部变量,只能供给函数本身使用,外部不可见
        ● 全局变量, 除了在函数里定义的变量外,都是全局变量,可以供后面的代码段和函数使用
        ● 函数内声明为全局变量 用关键词 global ,声明后,后面的代码段都可以使用

    ■ 函数返回值
        ● 没有 return时,默认返回为None
        ● 函数返回值 ,是通retrun 返回语句
        ● 函数可以返回任何类型的值 ,数值、字符串,列表,....
        ● 函数调用retrun, 函数就会相应的结束,retrun 后面的代码不执行

    ■ 函数的其它应用
        ● 多类型传值
            ◆ 向函数传列表、元组、字典
                保证好形参和实参数目的一致,传一个列表,元组,字典都是一个整体,相当于一个实参,
                元组做为实参,给函数,要告诉是元组 在元组变量前面加 “*” 如 fun(*t)
                字典做为实参,给函数,要告诉是字典 在字典变量前面加 “**”如 fun(**d)   形参和字典的键要一 一对应
                若没有对应,就要分别取字典的键对应的值

        ● 处理多余的参数
              在定义形参数时,后台定义一个可接收的元组 如  def fun(x,*args)   这样就可以传多个值 fun(8,3,3,4)
              在定义形参数时,后台定义一个可接收的元组 和 字典 如  def fun(x,*args,**kwargs)   这样就可以传多个值 fun(8,3,name=toby)

    ■ lambda表达式 (构建的是一个对象)
        ● 匿名函数  (主要用在,执行脚本、一次函数、只有一行的函数)
           g=lambda x,y:x*y    定义:定义了x,y变量,做了一件 x*y 
           g(2,3)  调用
           阶乘  lambda 简化代码
           l=rang(1,6)
           reduce(lambda x,y:x*y,l)     reduce是取列表中每两个值作用于前面的函数

    ■ 内置函数
         ●  python 自己有许多内置函数,尽量使用,性能较高,不要自己发明轮子,自己定义,可以帮助文档查看 
             命令行可以用 help(命令) 查用法
         ●  常用函数列举: abs()-绝对值 max()-最大值 min()-最小值
                                     len()-长度   divmod()-除法结果(商和模) pow()-幂运算   round()-返回浮点数
                                     callable()-判断前面有没有定义过某过函数   isinstance()-判断对象的类型   cmp() 比较两个字符串
                                     rang()-用来快速形成一个序列  xrang()- 效率会比 rang()高   type()-得到变量的类型
                                     int()  long() float() complex() str() list() truple() hex() oct() chr() ord() -类型转换
         ● 字符串函数:str.capitalize()  str.replace()  str.split()  filter() zip() map() reduce()... 帮肋文档查看
        
    * 文件入口
        if __name__=="__main__":
       
    * 递归
        >>> def newsum(mylist):
        ...     if not mylist:
        ...         return 0
        ...     else:
        ...         return mylist[0]+newsum(mylist[1:])
        ...        
        >>>
        >>> newsum(range(1,6))
        Out[5]: 15
        >>> newsum(range(1,101))
        Out[6]: 5050   
       
    * 函数是对象
       这样也可以多个引用
        >>> sec_newsum=newsum
        >>> sec_newsum(range(1,101))
        Out[8]: 5050
        相当于多加一个指针引用       

  • 相关阅读:
    IDEA导入外部jar包步骤
    将本地新建工程推到git上
    【转】Memcached与Redis有什么区别
    Redis
    JavaScript-Tool-lhgDialog-js:lhgdialog.js
    信息安全-HTTP:HTTP 身份验证
    信息安全-HTTP:HTTP访问控制(CORS)
    JavaScript-Tool-lhgDialog:框架示例
    JavaScript-Tool-lhgDialog:动画示例-源代码
    JavaScript-Tool-lhgDialog:动画示例
  • 原文地址:https://www.cnblogs.com/toby2chen/p/5197376.html
Copyright © 2011-2022 走看看