• [python]学习Django中的python知识拾遗


    1、使用正则表达式进行URL匹配

    urlpatterns = patterns('',
        # ...
        (r'^time/plus/d+/$', hours_ahead),
        # ...
    )

    (1)使用r代表字符串是原始字符串,表示python不会对立面的反斜杠转义符进行处理,使用正则表达式一般使用原始字符串。

    (2)使用d+表示匹配1个或者多个数字,如果限定只能使用两个数字,则d{1,2}。

    (3)如果要把正则表达式的某个数作为参数,则用小括号包起来,如(r'^time/plus/(d{1,2})/$', hours_ahead)。

    2、使用timedelta来计算时间差

    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)

    timedelta代表一个时间差,如果用两个datetime对象相减也可以获得一个timedelta。除此之外,可以使用hours,minutes,seconds,weeks等参数来自定义时间差。把datetime对象加减一个timedelta就可以获得一个时间点之前或者之后特定时间差的时间点了。

    3、异常处理格式

    try:
       offset = int(offset)
    except ValueError:
      raise Http404()

    使用try,except xxx: raise xxx()的格式进行异常处理。

    4、每一个类可以定义一个__unicode__方法,告知如何使用unicode的方式打印此类,如

    def __unicode__(self):
            return self.name

    5、把列表中所有对象的同一属性存放于一个列表中

    class sss:
        n=0
    
    l=[a,b,c]
    
    >>> r=[i.n for i in l]
    >>> r
    [2, 4, 3]

    6、结果批量生成列表的方式(lamdba表达式、map、reduce)

    map(function,sequence)
    把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。
    如果function有两个参数,即map(function,sequence1,sequence2)。
    >>> squr = lambda x:x**2
    >>> map(squr,[1,3,4,5,6,8])
    [1, 9, 16, 25, 36, 64]

    reduce(function,sequence)
    function接收的参数个数只能为2!
    先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给
    function,然后只返回一个结果。

    例子:
    求1到10的累加
    reduce(lambda x,y:x+y,range(1,11))
    返回值是55。

    filter(function,sequence)
    function的返回值只能是True或False!
    把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。

    例子:
    找出1到10之间的奇数
    filter(lambda x:x%2!=0,range(1,11))
    返回值

    [1,3,5,7,9]

    zip,同时处理多个列表

    >>> a=[1,2,3]
    >>> b=[5,6,7]
    >>> for x,y in zip(a,b):
        print x+y
        
    6
    8
    10
  • 相关阅读:
    标准差和方差
    Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能
    集合框架3-Arrays 类
    集合框架2- ArrayList
    Windows 下安装 SSH 服务(Openssh)
    利用 Spring Boot 中的 @ConfigurationProperties,优雅绑定配置参数
    Spring系列.Environment接口
    (4)ElasticSearch在linux环境中搭建集群
    (1)RabbitMQ在Docker上安装
    说一说Web端侧AI
  • 原文地址:https://www.cnblogs.com/iyjhabc/p/3859847.html
Copyright © 2020-2023  润新知