勤学思培训网USEIRY
  • 终于领会学python需要什么基础

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为,version是模块的预编译版本编码,一般都包含Python的版本号。例如在CPython 发行版中,文件的预编译文件就是:__pycache__/-。这种命名规则可以保证不同版本的模块和不同版本的python编译器的预编译模块可以共存。以下是小编为你整理的学python需要什么基础

    脚本在运行之前会首先检查python文件的最后编辑日期和预编译模块的编译时间,从而决定是否需要重新编译。预编译模块也是跨平台的,所以不同的模块是可以在不同的系统和不同的架构之间共享的。

    Python在两种情况下不检查缓存。第一种,从命令行中直接加载的模块总是会重新编译并且结果不保存。第二种,如果没有源模块,则不会检查缓存。为了支持无源代码的部署方式,应该将预编译模块放在源代码文件夹中而不是__pycache__中,并且不要包含源代码模块。


    [图片0]

    你可以使用-O和-OO参数来降低预编译模块的大小。-O开关会去除assert语句,-OO开关会去除assert语句和__doc__字符串。因为有些模块要依赖这些语句,因此只有当你确认模块的内容时才去使用这些开关。优化模块的后缀名是.pyo。

    .pyo和.pyc文件的执行速度不会比.py文件快,快的地方在于模块加载的速度。compileall模块可以用来把某个文件夹的中的所有文件都编译成为.pyc或者.pyo文件。

    lambda

    lambda通常是匿名函数的代名词,我们用到lambda的时候就是创建一个匿名函数:举个简单的例子:x代表了输入,x**2代表计算方法,也代表返回内容,也就是说这个函数输入一个数,返回这个数的平方。但是因为这个函数没有函数名,所以无法在其他地方调用

    除非我们将这个函数起一个名字:但通常我们不会这么做,匿名函数只是作为匿名使用。

    filter函数用法是:filter(fuction,list):将list中每一个元素带入到function中,计算返回值,将返回值为True的list中的元素形成一个新的list,当然也可以是tuple。

    对于上面这个函数,我们可以用lambda来简化:它的意思是,如果alist中的值的平方小于5,就返回这个值,形成一个新的list

    关于python

    Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议[1] 。Python语法简洁清晰,特色之一是强制用空白符(w作为语句缩进。

    首先从Python官网(/downloads/)下载Python安装程序,本文以Python 为例:


    [图片1]

    web-based installer 需要通过联网完成安装2、executable installer 通过可执行文件(*.exe)方式安装3、embeddable zip file 嵌入式版本,可以集成到其它应用中

    笔者开发环境是Windows所以选择红框选中的版本,Mac用户下载红框标注的版本,下载完成后,找到相应的软件包,

    迭代器,生成器与yield

    迭代器:你可以创建一个列表,然后逐一遍历,这就是迭代

    生成器:只能遍历它一次的迭代器 (iterate over them once)

    生成器是一个object

    生成器没有将所有值放入内存,而是实时地生成这些值。

    yield:是一个关键词,类似return, 不同之处在于,yield返回的是一个生成器

    map与reduce的区别与使用,以及filter与sorted

    map()函数接收两个参数,一个是函数,一个是Iterable。map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

    由于map()返回的是Iterator,一个惰性序列

    惰性序列(Iterator):不主动去遍历它,计算机就不会计算其中元素的值;

    所以map()的返回需要格式化,如 list(map(fn,[1,2,3,4,5]))

    reduce把上一个计算结果继续和作为下一个计算的输入

    filter()也接收一个函数和一个序列;filter()将传入的函数作用于每个元素,然后根据返回值是True/False决定是否保留该元素

    lambda是什么

    lambda x:x+1

    lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体

    只会使代码更简洁

    什么是装饰器(Decorator)?

    装饰,故名思议,就是一直有一个函数(素颜),需要这个函数功能更多一点(漂亮一点),就需要装饰一下(化妆)。