Python Basics

廖雪峰老师博客

1. 可变参数(例如 *nums),允许传入一个list 或 tuple,但是 关键字参数(例如 **kv),允许传入一个dict,具体可参考此页

2. set与dict类似,但只是一组key的集合,不存储value;tuple与list类似,只是tuple初始化后不能修改,即每个元素的指向不变;

3. Python切片操作使用 [start Index : end index : step],意为 从 start index 开始(from zero),到end index 为止,不包含 end index,每 step 个元素取一个,若step为 -1,则数据顺序翻转;如果要从最后一位元素开始,则 start index 从 -1 开始;

L=['A','B','C','D','E']

>>> L[0::2]
['A', 'C', 'E']

>>> L[::-1]
['E', 'D', 'C', 'B', 'A']

>>> L[-1:-3:-1]
['E', 'D']

>>> L[-2:]
['D', 'E']

4. 凡是可作用于for循环的对象都是Iterable类型,比如list、tuple、dict、set、str、generator;

凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

5. __slots__定义的属性仅对当前类的实例起作用,对继承的子类是不起作用的;

6. Python 格式化字符串时,如果有多个参数,则将结果需使用 括号,并 添加 逗号进行分隔;

"I'm %s. I'm %d year old" % ('Vamei', 99)

7. 由于Python解释器设计时具有GIL全局锁,导致了多线程无法利用多核,但可以利用多进程实现多核任务;多个Python进程有各自独立的GIL锁,互不影响。

8. 正则表达式默认采用贪婪匹配,也就是匹配尽可能多的字符;可以使用问号?来取消贪婪匹配;

>>> re.match(r'^(\d+?)(0*)$', '102300').groups()
('1023', '00')

9.

 

posted @ 2016-03-29 10:32  Jacky Ge  阅读(446)  评论(0编辑  收藏  举报