小知识集合

  • 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*kwargsargs 是 arguments 的缩写,表示位置参数。*args 用来将参数打包成 tuple 给函数体调用;kwargs 是 keyword arguments 的缩写,表示关键字参数,**kwargs 打包关键字参数成 dict 给函数体调用。且 *args 必须放在 **kwargs 的前面,