小知识集合
Python 和其他语言的区别:
优点:语言简单上手易学,解释型语言,拥有丰富的第三方库;
缺点:运行速度慢(对于计算密集型任务),GIL 全局解释锁。
Python2 和 Python3 的主要区别:
- Python2 中默认的字符串类型是 ASCII,Python3 中默认的字符串类型是 Unicode;
- Python2 中除法
/
的结果是整型,Python3 中是浮点型; - Python2 输出 print 不用括号,Python3 则需要括号。
- Python2 中可以使用 Python3 的语法,需要在代码前面加上
from __future__ import XXX
,例如,用到 Python3 中的 print 函数用法时,可以在代码前面写上from __future__ import print_function
。
pip install packages
可使用国内镜像下载。pip install -i https://pypi.tuna.tsinghua.edu.cn/simple packages ## 设置默认packages下载地址(此处选用的清华的镜像) pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple ## 临时用镜像更新pip pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
- Python 有严格的缩进,区分大小写。
__name__
是当前模块名,当模块被直接运行时模块名为__main__
。这句话表明当模块被直接运行时,以下代码将被运行,当模块是被导入时,代码块不被运行。
map()
函数:根据提供的函数对指定序列做映射。第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。map(function, iterable, ...) # function 函数 iterable 一个或多个序列
- Python 和 Cpython 的区别:Python是一种编程语言,可以有多种实现。其中使用 C 语言开发的称为 Cpython,使用 Java 开发的称为 Jpython。Cpython有几个明显的缺点,一是存在GIL全局解释锁,使Python在多线程上表现不佳。二是不能即时编译。
print() 和 pprint() 都是 Python 的打印模块,功能基本一样,唯一的区别就是 pprint() 模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。特别是对于特别长的数据打印,print() 输出结果都在一行,不方便查看,而 pprint() 采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用 pprint() 打印方式。当然,一般情况多数采用 print()。
>>> stuff = ['spam','eggs','lumberjack','knights','ni'] >>> stuff.insert(0,stuff[:]) >>> stuff [['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni'] >>> pprint.pprint(stuff) [['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni']
*args
和*kwargs
:args
是 arguments 的缩写,表示位置参数。*args
用来将参数打包成 tuple 给函数体调用;kwargs
是 keyword arguments 的缩写,表示关键字参数,**kwargs
打包关键字参数成 dict 给函数体调用。且*args
必须放在**kwargs
的前面,