00:00
好,关于拈的基础知识呢,我们主要要介绍的就是这么多啊,你要知道我们这里边我们说的,无论是包也好,还是拈块也好,它都属于一种拈啊,拈是简单的包,是一种复杂的拈啊,复杂的拈,那这里我我们就要提出一个问题来了,好,的确,呃,有了拈,有了包以后,它可以降低我们这个代码之间的一个耦合,也就说让代码之间的关系没那么紧密,我可以通过引入拈来,引入一个新的功能,我也可以干嘛呢?把一个程序分解成多个拈来,把这个这个这个呃,这一个这个完整的程序分成一个一个细小的拈块,方便我后边的组合,方便我们的一个维护,这是这么一个作用,但是这个时候其实我们就会想了,那如果说。每一个模块我都要一个一个写的话,其实这样的话会很麻烦,我们更希望的是什么呢?我们更希望的是有一些现成现成的模块,也就是已经写好的模块让我拿过来,我可以直接去使用,这样我们用起来其实会更舒服,那这也正好符合了我们Python的一个思想,叫做开箱即用,什么叫开箱即用啊,就是我的东西拿回来,我买一个产品,买一个东西拿回来我直接使用,而我不用去再考虑为了使用这产品我要不要去买一些新的商品,对吧?那同样我们使用这个Python也是一样,我们希望干嘛呀?诶,有一些功能你就给我自带好了,哎,而是什么呀,不希望我再去自己再去单独去开发,是这意思吧?哎,所以这个时候我们就希望Python会给我们一个很强大的功能,方便我们去开发,但是如果功能过于强大,也会带来一个问题,因为如果在我们Python中,它一下子整合了很多的功能的话。
01:48
会导致我们Python这个程序过大,你想想什么,A功能也有,B功能也有,C功能也有过,一直到Z功能,可能有1万个功能,它都给我整合到这个程序里边,但是很有可能这1万个功能我是不是都用不了啊,我可能就用其中两个功能,你给我整1万个,那是不是会导致我这个程序过大呀,哎,过大,所以在Python当中,它的确实现了一个开箱禁用,但是为了避免让我们程序过大,它的很多功能都是通过模块的形式来给我们引入的,所以这里边我们要说一下,说一个什么呢?哎,说一个我们叫做一个19,我们叫做一个Python的一个标准库啊,Python的一个标准库,第二一个PY,那这里边注意啊,Python的一个核心思想,我们叫做一个开箱即用,开箱即用,也就说这个产品我只要打开箱子,我就直接去使用,而不用考虑其他的,那为了什么呢?诶为了诶,为了实现我们这个开箱。
02:48
哎,即用的这个思想,哎什么呢?哎,Python中哎为我们提供了一个叫做一个模块的一个什么呀,标准库啊,一个模块的标准库,在这个标准库中,诶在这个标准库中,诶有很多什么呀,诶很强大的模块,我们什么呀?哎我们可以直接使用,诶我们可以直接使用并且什么呢?诶并且标准库。
03:21
诶会随什么呢?我们这个Python的安装干嘛呢?一同安装我们可以什么呀?我们可以直接去使用就OK了啊,那标准库里边有哪些模块可以让我们直接去用呢?那这里我们来看一下,直接打开我们的官方文档,在下边有一个,在这儿有一个叫做global,诶global Mar有一个index,叫做全局的一个模块的索引,那这块我们一点开这里边我们就能看到Python给我们提供的各种各样的模块,你这么一看,它是不是会有一堆啊,哎,很多很多这些模块都是我们Python的一个标准库,我们可以直接拿过来去使用,有很多很多是吧?当然我们不可能一个一个去说,我们说一些比较比较典型的,比如说在我们这里边有一个模块叫做一个什么呢?诶叫做一个S开头的,我们来找一下,叫做一个看看在哪呢,在这呢叫做SYSSYS什么呢?是system的一个简写,叫做一个系统,那这个模块我们要怎么。
04:22
可用,你可以直接点进来,来看它里边会有一个什么呀,哎,会有一个描述啊会有一个描述,诶你叫什么呀?诶这个模块提供了访问一些诶变量什么,主要用来访问这些什么解释器,还有什么方函数等等一系列东西,那这个东西是干嘛的?System系统,系统指的什么呢?指的就是我们实际上在这里指的是我们这个Python的一个什么呀,解析器啊解析器,那这里边我们来说我们的第一个模块,我们在这来说一下SSOS模块,SOS我们这个模块,哎,它什么呢?哎,它里边诶提供了一些什么呢?诶变量啊一些这个变量和什么呢?和函数十我们可以获取到我们这个Python,哎解析器的信息,哎解析器的信息或者什么呢?或者哎。
05:18
来通过我们这个函数来干嘛呢?哎,操作我们这个Python的一个什么呀?哎,解析器啊,解析器,换句话说这个东西是直接可以操作到我们这个底层的解析器的啊,底层的解析器的就是我们的这个解释器里边给我们提供什么东西,我们通过它都可以去查看,都可以去做一些配置,那这里边同样也会包含很多内容啊,很多内容那我们还是不可能全说,我们先说一些比较典型的,然后剩下一部分我们来,诶随着往后深入的学习,我们用到的时候,我们再去说它啊,他就说它,那这里边我们先说第一个问题,那我既然要用这个模块,我要先说是不是怎么引入啊,哎,所以这里边我们我们先做第一个干嘛呢?诶,来引入我们这个SYS这个模块,那其实引入就非常简单了,直接使用我们这个port来一个SYS,这样这个模块就直接引入了,注意了,这里这个模块不用定义,因为它是我们Python里边已经包含好了,我们直接拿过来用就OK了,我们来看看我们先来一个PRINT1。
06:19
SYS我们来看看能不能看到它,我这一执行是不是已经看到这个模块了,诶build in它属于一个叫做一个内置的一个模块啊,我们可以直接去引入,直接去使用,好那现在模块引入完了,接下来我们来说一下模块当中有哪些东西是可用的,那第一个我们要说的是一个SYS点一个叫做一个RGV啊阿V,那这是什么东西?诶,这是获取我们这个执行我们这个代码时,诶代码时命令行中哎所包含的这个参数啊,所包含参数什么意思啊,那么这样我们来演示一下,那这块呢,我得需要用我的这个命令行窗口来执行一下这个这个程序,那注意了,当我通过命令窗口想执行我19这个文件的时候,我是不是得先输入一个Python来一个19,这样才能执行这个文件呀,哎,这样才执行文件,那这里面注意,那这个Python是什么,这个Python是我们执行的一个指令,是我们一个命。
07:19
零,而后边这个19这个是什么?这个是不是就是我们这个命令后边所跟的参数啊,哎,所跟的参数,那这个叫做参数啊,这个叫做参数,后边我们还可以继续再跟什么呀,再跟一系列参数,参数之间使用空格来隔开,那这些是不是都叫参数啊?那现在我这个命令传了几个参数,传了1234,是不是四个参数,哎,四个参数,而我们这个SYS这么一个RV这个属性就是来获取到这四个参数的,我们来看一下,我们先来在这儿执行一下,我们直接print一个SYS,点一个RGV直接一保存,那注意了,它返回的是一个什么呢?我们先看看效果吧,哎,先看看效果,我这一执行走一个,这个时候你会发现它这是不是返回的是一个中括号啊,中号是什么?诶,它返回的是一个列表,为什么会返回列表,为什么会返回列表,那我们先说了该哎该属性它是一个什么呢?是一个。
08:19
这个列表列表中,哎保存了什么呀?哎,保存了我们当前命令的什么呀?哎,所有参数啊,所有参数为什么是列表,因为我们的参数是不是不是只有一个,它可以有多个呀,哎,所以是一个列表,但是现在由于我们这种执行方式是在我们的suble里边自动去执行的,所以它实际上只传了一个参数,并没有后边那些AB AB ccbd那些参数,所以我们现在看到只有一个啊,只有一个,但是我们来看这。我们来干嘛呢?哎,我们来到我们命令行里去执行,我们再看看啊,直接来一个这个Python。Py TN Python,我们这是一个19,然后后边我来一个AA,来一个这个bbb,来一个CC,那这个时候我是不是就传了四个参数,第一个是它,第二个是三,然后它,然后它,那我们返回的列表就是什么呀?哎,就是这四个我们来看第一个是不是它呀,然后a abbb CC是不是都获取到了,哎,所以通过这个玩意儿我们叫做一个RV,它们可以干嘛呢?获取到我们当前去执行的一个所有的参数,有几个就获取到几个,那这个我们在执行一些特殊功能的时候会用到啊,会用到,好这个是获取参数的一个阿格V,然后再往下下边一个我们再说一个属性,一个属性叫什么呢?叫做一个MOS,诶叫做一个modu,啊modus是我们这个模块对吧,同样也是一个YS点一个modus,那这个是干嘛的,这个是获取我们当前程序中,诶,程序中引入的所有模块啊,引入的所有模块我们这个程序。
09:59
要执行,执行的时候,我们这个程序我们是不是要加载模块啊,哎,加载模块,而你想如果你想知道你这个程序里加载的哪些模块,你就可以通过这个MOS来获取到,直接来看了,它同样也是一个列表啊,也是一个直接来一个来一个这个MOS这一保存我们来看效果。
10:20
稍微等一下,因为我们的模块可能会很多,它需要去加载一下啊,你会发现它是不是给我们返回,还不是一个列表,它返应的是一个什么呀,是一个字典,因为每一个模块是不是都有名字呀,诶这是模块的名,这是我们这个模块的对象,这是名,这是对象,它返回的是一个字典啊,返回的是一个字典,所以这里边注意我们来说一下,诶这个Mar joice,哎,它是一个什么呀?是一个字典,字典的什么呢?字典的K,哎,字典的key是我们这个模块的一个什么呀?名字字典的值呢?我们的value value是什么呀?诶是我们这个模块对象本身,也就是说通过它你就可以获取到我们的所有的什么呀,所有的模块,你看这一个build in,这是我们这个build in,然后SYS是不是我们这个模块啊,然后包括我们下边还有各种各样的嘛,什么OS一系列模块在这是不是都能看到,哎,都能看到啊,这也是我们的所有模块,但是这个时候其实你就会。
11:20
发现一个问题,我这虽然可以查看到我所有模块了,但是我用print去打印的时候,你会发现我们这个模块看起来是不是非常的不清晰啊,哎,非常的不清晰,就是很乱啊,很乱,所以注意我们再用print去打数据的时候,它不会对数据做任何的格式化,你数据本身是什么样子,它就会展现成什么样,就会展现成什么样子,那如果我希望他给我打印的数据可以给我做一些简单的格式化呢?我要怎么办呢?那在这里我们要说一下,在我们这个Python里还给我们提供了一个模块,我们来说一下,在这我们来说吧,我们叫什么呢?叫做一个print,诶叫做一个PP print模块,诶它可以什么呢?哎,它给我们给我们提供了一个方法,这个方法叫什么呢?就叫PP print啊,或者函数叫做一个PP print,那该方法可以干嘛呢?
12:20
诶,该方法可以用来对我们什么呀?诶打印的这个数据,诶做什么呢?诶做这种简单的一个格式化啊,简单的格式化,那这PP print print我们知道是打印,那这个P是什么意思呢?P叫做pretty啊,Pretty什么意思呀,漂亮的啊,漂亮的,所以p print就叫什么呀,漂亮的打印,所以它的作用就是可以对我们这个结果进行简单格式化,什么叫简单格式化呀,现在这个数据实际上是一行啊一行,这个换行是我们的sub自动换行的,那我们如果用PP print,它会自动进行换行,我们来试一下啊,那我们还是要用它,我们是不是还得先得引入啊,哎,引入直接在这来一个impport的一个这个PP,一个print,哎,P print,那现在我们在这就可以直接用PP print打印了怎么用PP一个p print,然后这点一个p print,诶那这什么意思?P print是模块p print是P,这个p print是我们这个模块里的函数,那等于是我调这个模块里的这个函数去打。
13:20
赢它啊,去打赢它,这个时候我们再看效果走一个,还是需要稍微的去等一下啊等一下。哎,那这个时候你再看这个打印是不是比刚才那个漂亮多了,哎,你看它是什么呀,它是不是等于一个元素放到一行啊,哎,一个元素放到一行,这样我们阅读起来就会方便一些,所以当你这个数据过多的时候,如果你说你想让它好看一点,你就可以用什么呀,我们这个p print,当然你说我这数据就就那么两个字,你直接用print就没关系了,那通过这是不是能看到我们现在所有的这些模块啊,哎,所有这些模块就都看到了啊好,那这个是我们说的另一个叫做一个哎,Modules啊modules,当你需要去查看我们所有引入模块的时候,就可以用它,然后再往下说,还有一个我们叫做一个C点,一个这个,诶,一个这个pass pass什么意思啊,Pass是一个路径啊,Pass是一个径,那这个是干嘛的,我们先看看啊,我们还是来一个PP print直接打印一下这个pass直接一保存,我们这一执行,诶,你会发现这里边是不是放的是一组路径啊,我直接给它粘过来啊。
14:31
把直接给它粘过来,这里边放的是一组的路径,也是一个什么呀,也是一个列表。也是列表,诶那我们先说它是什么呢?诶,它是一个什么呢?它是一个列表,列表中保存的是什么?诶列表中保存的是我们这个叫做一个模块的一个搜索的路径啊,模块的一个搜索路径,什么叫模块搜索路径?那注意了,我们当我们在这儿去定义一个模块的时候,你会发现假如我在这定义了一个M模块,我直接用iport是不是就引入了M模块啊,我在这定了一个hello这个包hello模块,我是不是直接引hello就引入到hello这个模块了?那问题是你看我现在在这引port一个p print,但是在我代码里边有没有p print,哎,没有这个p print,那它又是如何去引入的呢?那就要说到我们一个模块的一个搜索路径,这个pass有点像我们这个环境变量pass,这个pass是什么呢?它规环境变量pass是追踪的我们命令的执行的一个路径,而这个pass是追踪的我们一个模块的搜。
15:39
做路径,那举个例子,比如说我现在在这儿引炮了一个p print这个模块,那他怎么去找,他去哪找,他第一个位置先去这个路径下去找,这个路径是不是就是我当前这个扣的呀?诶所以注意第一个他先去我当前目录下去找,有没有这个模块,那很明显这有没有,诶这儿没有这个p print啊没有,这儿没有,然后再去干嘛,再去找第二个是不是去找这个python36.zp啊,哎,也没有,那怎么办?再去第三个没有再去第四个没有再去第五个没有再去第六个,你说它是沿着这几个路径依次去找的,所以你的模块其实你放到这几个路径里,哪个位置它都能找到啊,它能找到,但是一般情况下,我们的自定义的就放在当前目录下就可以了啊,就放在当前目录下可以,但是像这种P润的它是不是我们自定义的呀?诶不是不是,那它肯定在这几个路径里面的之一,那它在哪呢?它应该是在我们这个Le下啊,Le下我们来。
16:39
看看有没有打开我的计算机,我们的这个C盘找谁呢?找到我的这个DV Python Python,三六往下找,有一个lib,我们来看里边有没有P,直接摁一下。PP打头的,P打头的在这儿是不是就有一个p print.py啊,那这个就是我们这个print的这个什么呀?哎,这个包啊,就是它的这个包啊,这里边这个模块就是在这儿,为什么我们能实现这功能代码都在这儿,也就是说这是我们那个p print的那个模块的一个源码,感兴趣可以看一下,在这里我就不再去细说了啊,不再细说了,所以这里个路径。
17:19
这个路径表示什么意思?表示就是我们包的一个搜索路径,它会在这几个路径当中去寻找,但是这个路径我们一般不希望大家去动啊,不希望大家动,因为我们如果你是自己的模块就直接去往这儿放就行了,不要去随便的去改这个东西啊,不要随便去改这个东西,好,这是第二,这是又一个是吧,诶,System点一个pass啊pass,然后再说我们还有一个属性叫做一个Li fourli SOS,点一个PLAPLA一个啊platform platform这是什么意思呢?哎,呃,如果你稍微有一点基础的话,你会知道platform表示的是一个平台啊,表示的一个平台,它表示什么呢?它表示我们当前Python运行的一个平台。
18:09
运行的平台什么意思啊,你的Python你是运行到这个Windows里的,你是运行到我们这个Mac里的,是运行到这个这个link里的,还是运行到这个账号里的,对吧?表示是它的一个平台,那这个时候你就可以用它来获取直接print一个CS,点一个这个platform啊platform我们这一执行返回的是一个什么是WINDOW32,表示我们现在这个pad是运行大Windows系统里的啊Windows系统的如果你是Linux,那返回的就不一样了,那它可能返回哪些结果,你可以看一下找一下,直接搜一下啊C点一个platform在这,它这会给你一些例子,如果是Linux系统会返回Linux Windows系统就返回WIN32,诶如果是这种,它实际上是一个模拟器这个啊,它会返回这个啊,然后ma OS返回这个,也就说不同的系统会返回到不同的这个结果啊,不同的结果,那这个是我们说的一个这个,呃,Platform啊,这什么时候用,就是当你希望知道你现在。
19:09
哎,Python是运营在哪的时候,你就需要用一下啊,如果不这个呢,有时候我们考虑一些兼容性的时候,会使用一下啊,会使用一下,好这个是我们说的一个platform,然后再说一个这个函数,函数叫做一个什么呢?叫做一个exit,诶exit什么意思啊,叫做一个退出啊退出这是一个函数,这个函数用来干嘛呢?哎,退出我们什么呀?哎退出我们这个程序啊退出程序你这来一个SOS,点一个exit exit这一保存,我们这一执行,哎程序是不是就结束了,哎就结束了,同学说你这本来你这后边啥也没有了,这也看不出效果来,对吧,你怎么看效果,我先给他住了,在这我写一个print,一个hello啊hello这一保存,我这一执行,现在是不是有这hello啊,哎,好,那现在我们在这来一个SOS,点一个exit啊it我这一执行走一个,你看我那hello还冲不出来了,哎,就没出来了,为什么?因为一执行到这个我的程序就已经结束了啊,就结束了,所以后边的干嘛呀都。
20:09
没执行啊,都没执行,所以你用它可以来干嘛呢?诶可以来退出我们这个程序,并且你在这儿还可以附一个什么呀,诶付个消息,诶比如说这写一什么呀,诶程序出现异常,诶结束,你可以写一个错误消息,这一保存一执行,是不是告诉你程序出现异常结束啊,哎结束,所以你写完它以后,有点像我们这个return,哎,Return你执行它后边干嘛呀,全都不会执行了啊,全都不会执行了,这是我们说一个exit用来退出我们这个程序的啊退出我们这个程序的,好,那这个是我们说的一个system这个模块啊,这个模块里边呢,都是我们一些关于我们这个解析器的一些东西啊,什么A呀,哎,Modus呀,我们这个pass呀,Platform,还有exit,当然还有很多很多是吧,我们就不展开来说了,哎,接着来介绍一下,以后我们用到东西我们再去说它啊,他就说它,然后再来说一个和它有点类似的,我们有一个什么呢?欧大耳头叫做oos,欧大陀叫做一个OS啊OS。
21:09
这是什么意思呢?OS啊,这个东西叫做operating system啊operating operating跟我们这个operator一个意思,Operating叫做操作,System叫做一个系统啊系统操作系统这么一个模块,所以OS就表示操作系统意思,你像ma oos是吧,I都表示的是什么呀?是操作系统啊操作系统,那现在我们来看一下,那这OS干嘛的呢?来一下OSOS模块为我们提供什么呢?诶为让我们可以对什么呢?诶对我们这个操作,诶系统进行什么呢?诶进行访问啊,那这个是我们说的一个OS模块啊,OS模块直接来用吧,诶直接来用还是用的话直接引的一个OS,我们先来看看能不能引入,直接打印一下这S我们这一执行是不是引入啊,并且他在还他在这儿还给你显示我们这个文件的一个源码在哪,在我们Li下边这什么os.py直接在这儿,你能找到它这个源码,那这个模块里边给我们提了。
22:09
哪些属性或者方法呢?还是我们简单介绍几个,第一个我们来说一下,叫做一个OS叫什么呢?叫做envi RO,叫做一个什么呀,Environment啊environment那这是干嘛的呀,Environment我们的环境的意思,那这个属性呢?哎,通过这个属性哎可以什么呢?获取到我们这个系统的环境变量啊,环境变量什么意思啊,我们之前是不是给我们操作系统设置环境变量啊,哎,那如果你要想获取怎么办?直接通过这个属性,那我们这块啊,它还是挺长的,所以我们这还是诶p print p print谁呢?OS点一个,诶environment啊environment直接一保存,我们来看效果,这一打印,哎稍微等一下还是比较多啊,还是比较多啊,那这个呢,这个它没有给我们进行格式化,为什么呢?因为它返回的是一个对象啊,对象里的数据是由我们这个SR那个。
23:09
这个特殊函数决定的,所以它这没有进行格式化,那我们这块也可以看到对吧,看到你会发现这环境变量来数太多了呀,哎太多了,那你如果只想看到,你想看那个怎么办?比如说我们想看到我熟悉那个pass怎么办,那我可以直接后边中号来一个什么呢?来一个这个pass,这一保存一执行,那这个时候我们看到这个环境变量就是什么呀?诶就是pass,你会发现这个是不是就是我们之前配的那个pass呀,诶你像这个什么呀,这是我们P那个路径啊,诶这是我们那个P子那个路径,那在这儿都可以去查看啊,通过它可以来查看系统的环境变量,但是一般情况下没有特殊的需求的话,也也不太用查啊,有一些小的需求可能会用到啊,但是你要知道要查的时候怎么办,通过的是我们这个environment啊environment,然后我们再说一个,再说一个函数,我们叫什么呢?叫做一个OS点一个l sys TM system,它是一个函数,它可以干嘛呢?诶,它可以用来执行我们这个什么呀?诶。
24:09
我们这个操作系统的什么呀,系统的一个命令啊,执行操作系统的一个命令,什么意思,我们知道在我们的DOS里,我是不是可以执行什么什么DLL啊,什么一些指令,对吧,一些指令,那你如果想通过我们的Python去调用这些指令怎么办?直接来一个OS,点一个CSTEM,哎,比如说我想执行一个DR,你就直接传一什么呀,传一个DR,一保存我们这一执行。这是不是执行了DR,但是这出现乱码了是吧?为什么乱码,因为我们这个suble这个这个这个工具,我们用的是是这工具re PL这个工具,它对中文支持不支持中文是吧?不支中文,你可以在这儿来看,我这一执行是不是就看到了,哎就执行了我们这个电压这个哎这个命令啊执行了我们这个电压命令,也就是说通过我们它可以执行命令,你说我要想打开一个文件,比如说我想打开记事本,打开一个程序,你可以直接来什么呀?哎,我直接输入一个这个notepad,然后一执行是不是打开记手啊,啊就这么一个效果,它可以直接在我们DOS里是执行命令,那你如果是在这个Linux里边就可以执行这个Linux的命令啊,这是我们说的一个OS模块,它可以直接和我们这个操作系统进行一个交互啊,进行交互,当然里边还会有很多其他的,我们还是不再去具体说了,我们这一块我们介绍了三个模块,Print system,还有一个这个OS啊,操作系统的,那这三个模块都是比较基本的一个模块,都是一些比较常用的功能啊,常。
25:35
的功能,那因为但是我们这块还没说全,包括这个p print里边也包含很多功能,我们都没有去说,所以现在你先明确一点,你要知道Python给我们提供了一组标准库,它里边给我们提供了很多很多常用的功能,让我们可以直接去使用,那你需要一些功能的时候,你可以先去标准库找找有没有已经开发好了,就不要再去重复的去发明轮子,对吧,直接去找已经开发好的,我们直接去用就OK了,这是一个第二一个,它这个模块的功能会有很多,那你用的时候需要自己去研究一下这个方法去怎么用,那后边我们用到一些模块,我们随着用,我们随着再去展开去说啊,展开去说,那这个模块标准库我们就先介绍到这儿啊,介绍到这儿,还是啊,再回顾一下去哪找啊,去哪找回到这儿,我们的文档的首页在哪呢?文档的首页在这个位置,Global,哎,Global module index啊,Global module index全局的一个模块索引在这。
26:35
你就可以去找到我们所有的可以直接去访问到这些模块,包括我们之前是不是用过一个模块叫做time呀,Time这个模块在哪呢?是在这儿呢?哎,它也是Python给我们提供好的,都是可以直接去使用的啊,可以直接使用的,好那我们就先说到这儿,我们来停一下。
我来说两句