zoukankan      html  css  js  c++  java
  • 几个Python小程序

    1:

    def buildConnectionString(param):
        """
        """
        return ";".join("%s=%s" %(k,v) for k,v in param.items())

    if __name__=="__main__":
        myParams={"server":"mpilgrim", \
                    "database":"master", \
                    "uid":"sa", \
                    "pwd":"secret" \
                    }
        print buildConnectionString(myParams)

    --------------------------

    没什么好说的

    2:

    def info(object,spacing=10,collapse=1):
        """
        list the api of the object
        """
        methodList=[method for method in dir(object) if callable(getattr(object,method))]
        processFunc=collapse and (lambda s:" ".join(s.split())) or (lambda s:s)
        print "\n".join("%s %s" %(method.ljust(spacing),processFunc(str(getattr(object,method).__doc__))) for method in methodList )
       
    if __name__=="__main__":
        print info.__doc__
        li=[]
        info(li)

    -----------------------------------------------------

    methodList=[method for method in dir(object) if callable(getattr(object,method))]

    注意句法, XX for in XXX if ***

    processFunc=collapse and (lambda s:" ".join(s.split())) or (lambda s:s)

    lambda表达式 and or

    and例子

    >>> 'a' and 'b'         1
    'b'
    >>> '' and 'b' 2
    ''
    >>> 'a' and 'b' and 'c' 3
    'c'

    如果有假值,则返回第一个假值,否则返回最后一个真值

    or例子:

    >>> 'a' or 'b'          1
    'a'
    >>> '' or 'b' 2
    'b'
    >>> '' or [] or {}      3
    {}

    如果有真值,返回第一个真值,否则返回最后一个假值

    lambda例子:

    >>> def f(x):
    ...     return x*2
    ...    
    >>> f(3)
    6
    >>> g = lambda x: x*2 1
    >>> g(3)
    6
    >>> (lambda x: x*2)(3) 2
    6


  • 相关阅读:
    哥也能写KMP了——实现strstr()
    面试归来,感觉无望,下次再战
    Pow(x, n)
    Length of Last Word
    后缀数组应用
    2倍倍增算法构造后缀数组
    跳台阶问题
    求无序数组中第二大的数--快速选择
    单源最短路径问题
    全局下的isFinite
  • 原文地址:https://www.cnblogs.com/macula7/p/1960422.html
Copyright © 2011-2022 走看看