Python 知识点

1. python是解释型语言,也就是边执行边解释,而java/c则是编译型语言,执行之前先编译成机器可执行的机器码,再执行,解释型语言的速度比编辑型语言的速度要慢。python中常见的解释器有 cpython,ipython,pypy。严格来说,python也算是半编译半解释语言,比如python在被模块导入时,首先被导入的模块会被编译成字节码。

2. python是动态语言,而java/c是静态语言,动态和静态的一个区别就是变量类型定以后是否可以改变,动态推断变量的类型。

  在python中:a = 1;a = “123” 可以

  在java中:int a = 1;a = “123” 不可以

3. python中经常出现编码错误,除了在py文件头部加上 #coding = utf-8,而要保证py文件本身也是 utf-8编码(查看编辑器默认编码),utf-8要是utf-8 without BOM(win下记事本加的几个特殊字符)

4. python头部的加的 !/usr/bin/python 只在linux下有用,表示直接可以 . a.py 执行 a.py 文件

5. python的str表示的字节序列而不是字符序列,字节序列要指定编码成字符序列。str也是不可变对象,对其操作会返回一个新的变量,比如str = “I am”, str.replace(“I”, “He”),str 还是“I am”,替换后的会作为返回值返回。默认参数必须指向不可变对象,否则如java中的静态变量。

6. python中可以采用尾递归来避免递归中的栈溢出问题。

7. 生成器和迭代器,直接list会浪费大量的内存。 Iterable 和 Iterator 的区别。

8. metaclass相当于一个类,class是metaclass的一个实例。

9. ORM 对数据库中的表和类对应起来。

10. 异步IO,有回调(js中经常用)和轮询两种方法。

11. 写文件最好用 with open(“a.txt”,“w”) as fw:避免写fw.close()

12. python的多线程不能利用多核(只能用一个核,这个核的任意一时刻只能执行一个线程),可以用多线程来利用多核。

13. Reg 中有分组(),去除匹配到的元素

14. Timestamp 是和时区没有关系的

15. XML : DOM and SAX,DOM太占内存,大XML用SAX方式

16. 

posted on 2015-06-12 11:32  keketse  阅读(154)  评论(0编辑  收藏  举报

导航