[python]学习Django中的python知识拾遗
2014-07-22 09:44
197 查看
1、使用正则表达式进行URL匹配
(1)使用r代表字符串是原始字符串,表示python不会对立面的反斜杠\转义符进行处理,使用正则表达式一般使用原始字符串。
(2)使用\d+表示匹配1个或者多个数字,如果限定只能使用两个数字,则\d{1,2}。
(3)如果要把正则表达式的某个数作为参数,则用小括号包起来,如(r'^time/plus/(\d{1,2})/$', hours_ahead)。
2、使用timedelta来计算时间差
timedelta代表一个时间差,如果用两个datetime对象相减也可以获得一个timedelta。除此之外,可以使用hours,minutes,seconds,weeks等参数来自定义时间差。把datetime对象加减一个timedelta就可以获得一个时间点之前或者之后特定时间差的时间点了。
3、异常处理格式
使用try,except xxx: raise xxx()的格式进行异常处理。
4、每一个类可以定义一个__unicode__方法,告知如何使用unicode的方式打印此类,如
5、把列表中所有对象的同一属性存放于一个列表中
6、结果批量生成列表的方式(lamdba表达式、map、reduce)
map(function,sequence)
把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。
如果function有两个参数,即map(function,sequence1,sequence2)。
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,同时处理多个列表
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
相关文章推荐
- python开发学习-day15(前端部分知识、web框架、Django创建项目)
- Windows python +django学习
- Python Web 开发 学习笔记1 安装配置 python+django
- python-django学习(一)搭建环境
- 【python学习】多线程相关知识
- django学习笔记(一):Python2.7 、Django1.2下载及安装
- python&django学习和书籍推荐
- 【转】python学习笔记-第1章节 基础知识
- Start Python 学习笔记(琐碎知识,持续更新。。。)
- python-django编程小知识
- Python -- Django 学习网址
- python学习笔记-第1章节 基础知识
- Django学习入门步骤 教程步骤 python
- android Monkeyrunner:Python语法知识学习(for,while,if用法实例)
- [学习] Apache + mod_python + Django Step by Step
- [python]django学习笔记 二
- python+django+mysql学习笔记 (一) – 安装篇
- python-django 学习过程
- Python2.7 学习笔记 (一)——基础知识
- Python学习之一 Python基础知识