粉丝26获赞156

通用指导, where shark 查看是图库过车数据,使用 where shark 打开豹纹, 通过 http contains 车牌进行过滤, 鼠标右键豹纹追踪流 h t t p 流 修改为 af。 八、再查找栏搜索车牌, 在搜索出车牌的附近报文中查看 status go 的字段为零, status string 为操作成功则表示此车辆正常上传了。

大家好,我是苦伞,今天给大家分享的是拍摄的 input 导入,分为两个场景,首先第一个场景是导入整个模块,它的公式就是 input 模块艾特别名,艾特别名加了一个中括号,表示是可以省略掉的。比如我们经常看到的 input pandas spd, 稍微看过拍审代码的应该会看到这样一行的导入 pandas 库这样一个代码。 pandas 呢,是我们拍审数据分析的三大剑客之一,也就是三大最常用的库之一。 s 比较常用的裤就是我们的 pandas 男品,还有可视化裤, mad blood 里边。好这一节课呢,我们先来看一下 pandas 裤,它是我们处理数据最理想的工具,所以我们经常会使用到这样银行代码。当然 这里 spd 是可以省略掉的,但是通常我们不会把它省略掉,这是为什么呢?因为我们要调用这个酷的时候,用缩写的方式会方便很多。比如我们现在创建一个 datafram 对象, datafram 是什么呢? 我们先把这行代码写完,然后再给大家解释一下,然后我输入一个班级的成绩,比如语文成绩是多少,我们班级考试成绩 好,我们现在是一百零一分,一百一十一分,或者还有一个一百二十三分数爱语文成绩之后,我们再把这个班级的数学成绩给他录进来, 我们回退一下,然后在这里输入我们的数学,我们在输入的过程中看到这里有一把 查没有,因为这里应该是 pd 啊。好,输入完数学成绩之后呢,我们把它的成绩用一个中括号把它罗列出来,比如一百二十二分,一百三十分, 一百四十五分。好,这就是我们创建了一个 datafram 对象 panda, 下面呢,它的数据结构分为两种,一个是 series 啊,一个是 series 的话,我在这里给大家加一个, 然后还有一个就是我们的 data free, 当然这个 siris 是需要去大洗的,如果我们是在代码里面去调用它的话 啊,排损是区分大小写的,所以这个时代需要注意的一点,大的 frame 呢,就是我们的一个多维数据结构,而这里呢是一个单位的数据课结构。可以这么简单的去理解一下,比如这里有一个 表格,一列一列的呢,单列的数据你可以理解为是一个 sara 色,而有多列,比如这一块,我们可以先把它打印出来,再给大家解释,可能会容易理解一点。 好,我们执行一下,这里出错了,他表示的是 pandas 这个库里面呢,没有 dataframe, 是因为我们这个 dataframe 是需要去大写的,所以我们给他改成大写就可以了。 改完之后呢,我们再来执行一下这一条语句。好,这样我们一个输出的结果就出来了,每一个同学他的语文成绩和数学成绩这里单列了,你可以理解为一个 siris, 而这里整个数据结构呢,就是我们一个 data freeman, 也就是一个多维的数据结构。 这里我们简单介绍一下 series 跟 desperate 我们,当然我们重点这个视频是为了让大家去理解 input panders, 这样子呢,我们的这个结果就出来了,我们刚刚前面说过,我们这个别名是可以省略掉的,对吧?所以我们可以尝试把它删掉,然后呢,我们刚刚要用的别名,我们直接改为 pandas, 是不是也是可以执行的呢?可以试一试。 好,我们的这个结果也是能够出来的,对不对?所以实际上别名是可以省略掉的,但是我们还是需要注意的,就是在我们导入 pandas 的时候,这个别名我们通常是不会去省略的,为什么呢?因为我们经常要要用我们 pandas 里面的方法或者是函数, 像这里 pandas 它有这么一长串的字母对不对?如果我们每调用一个函数都去写一个 pandas, 是非常的麻烦的,也不方便,当然这也是一种语言习惯,在写 pandas 的过程中,绝大部分人都是 input pandasspd, 就你一个人 import pandas, 所以会显得很另类,大家也不习惯去看你的代码,所以我们平时呢就用 input pandasspd 就行了。好,然后我们调用的过程中呢,也就是 pd 点就可以了。 第二个场景,导入某个模块的函数,我们的公式就是我们先加一个井号 from 模块,或者是你也可以理解为就是我们的库导入导入的英文单词就是 input input。 什么呢?你可以写函数啊,或者说是对象, 因为很多对象呢,在拍摄里面,你也可以理解为是一种函数的形式,像这里的话, pd 点 datafram, 看起来呢,我们的 datafram 是一个对象对不对?但实际上我们是调用了 pandas 库里面的这样一个 datafram 函数,所以你也可以把它理解为一个函数, 我们把这一行代码给他复制到这一块,复制过来之后呢啊,我们先把这个非必要的 series 给他删掉,删完之后,像这里我们既然要用了,对他分别是不是我们肯定是可以去导入他的,我们 from pandas in pot, 然后再去导入我们的函数,我们的 data frame。 好,我们是可以直接回车的,这样呢,你也可以去执行一下这一行代码, 选中他,如果你是选中部分代码去执行,记得是点这样一个白色的按钮好,点完之后出来的结果跟上面是一样的,对不对?所以实际上上面的代码里面我们是省略掉了导入函数这样一个模块,这个函数呢,并不是所有的模块 导入都是可以省略掉的,比如我们在导入百度一叉子的词语图或者是水滴图的时候,我们是不能够省略掉的。我们再来看一下另外一个案例, 我们从百度一掐死里面去导入我们的水球图。大家先不要去理解这一行代码是什么意思,我们重点去理解 from input 跟 input, 因为我们为了让大家能够学习的轻松一点,我们每一期视频呢都会有一个专项的内容。好,这里我们的输出的结果就是这样一个网页端的文件,我们可以打开看一下它,实际上呢就是一个图,我们直接双击一下,好的,就是这样一个水球图, 所以我们实际上后面我们是可以用盘审去设计这样一个网页端的数据报表或者是数据报告, 我们再回到我们的拍摄里面。接下来呢,我们也可以去尝试一下,把这样一行代码去省略掉,我们直接导入这样一个库,这样一个模块,看一下是什么样的结果。我们 inpot, 然后这里, 然后再把这个服装棉破的给他删掉,删掉呢?我们需要把前面这一对也给他删掉,这是为什么呢?因为我们这里设计到了很多库,对不对?因为我们重点是去考察 在这个第三方库下面,我们能不能去审阅到这样一个 form inpot 函数,而把前面这些库放在这里呢?有可能会存在一个交叉,影响我们的结果, 在这里我们直接选中所有的执行就可以了。好,这里是出错了,他说 name a liquid is not defined, 也就是说我们这个 liquid 函数没有被定义,那么为什么 pandas 他的 series 导入是可以省略掉的,而这里拍 chassis liquid 函数必须导入呢?这是因为 pandas 是我们拍摄的标准库,而标准库的函数是可以不用硬破的,直接使用的。像前面我们直接导入到 in pandas 裤之后, 就调用到了里面的 datafram 喊出来,对吧?而拍一下子呢,他是第三方库,属于百度一下子,这里呢?我们这行代码是直接调用了百度一下子里面的水,就图百度一下子是什么?大家可以去百度一下,进入里面的页面看一看。 第三方库的函数则是需要通过 input 函数导入才能够使用的,这也是为什么我们这里 from input, 这里不能去省略调的,省略调他就出错了,对吧?谈得斯呢?如果你需要去导入多个函数,比如这里你要画很多个图,我们 important passion, 如果需要导入多个函数的话,多个方法或者是多个对象,我们可以用逗号去隔开,像这里比如我们前面 from pandas import, 我们前面是 import data frame, 对吧?然后我们也可以去要用 series 好 serious 也记得是要大写的,你可以直接回撤,这样他会默认是一个大写的状态。如果我们要导入多个函数,我们都可以用逗号去隔开的,包括这一。前面我们 from 拍一次点 chassion parts liquid, 我们如果还要导入其他的图的话呢,我们可以直接是逗号,然后再加其他图的模块。以上呢就是我们 本次视频的核心知识点,主要是让大家理解 input 跟 from input, input 呢,是帮助大家去导入库导入模块, from input 呢是导入模块里面的函数对象等等。所以大家如果其他代码有不理解的地方,不需要去担心,因为后面我们的视频里面 我们会继续给大家详细的解读。好了,以上就是我们本次视频的主要内容,非常感谢大家的聆听。

还记得前面我们写的这个记录日字的功能吗?我们是自己定义了一个函数,在函数内部打开文件并写入日字信息,然后哪个地方需要记录日字的时候,我们就调用这个函数。 而现在我们要选一个更加标准、更加专业的日制管理模块,他同样是拍摄的内置模块,我们直接应付到 logon 就可以了。在 logo 模块中,他把日制分为了五个等级,我就直接把中央代码复制过来了。第八个是调试日制,就是我们在进行代码调试的时候,输出的一些信息 应否是消息日子,也就是正常的日子,比如哪个用户在什么时候登陆了,在什么时候又充值了多少,然后窝里是输出警告日子的,比如吃饭空间不足了,但程序还是正常运行的状态,只是如果你不处理的话,继续运行下去就有可能发生错误。 然后这个 l 是输出错误的日子的,就是程序的某一部分功能已经发生错误了。注意,这个错误是被我们捕获到的,而不是真的,就像我们平时报错那样,程序之间崩溃的那种错误。你肯定遇到过一些软件, 这个软件本身能正常使用,但是当我们点击某一个功能的时候,他就弹个提示给我们,比如什么文件丢失了,或者网络原因,或者其他什么原因导致子宫呢?无法使用这种情况下的错误信息,我们就需要把它捕获到,然后输出成错误日子,一定不能让程序直接报错,导致程序崩溃。 然后在 l 之上还有一个 critic 严重错误,刚刚的 air 是记录某一部分功能发生的错误,而这个 critic 就是记录严重的错误的, 表示程序已经不能正常执行了,到了面临崩溃的边缘了,就是说这条日子输出完之后,可能程序就该崩溃了。比如你用的 qq、 迅雷等其他软件肯定也遇到过类似的问题, 就是软件打不开了,打开就谈个错误窗口,说要上传什么日子,这就是在程序内部发生了严重错误,程序已经不能够正常运行了,然后他自己也捕获到了这个错误,并且记录了这个日子信息,然后让你上传这个日子信息,这就是这五个级别的日子信息。他们具体的用途。我们在进行项目开发的过程中,对待 斑马进行调试的时候,就可以输出调试级别的日子。以前我们都是直接用 print 打印门打印某一个变量,在调试的时候他的运行状态,通过以细腻的打印操作,我们可以看到程序走上了一步了,这一步的这个变量纸的数据是否正常。而现在我们就不需要用 print 了,就可以用 logan 点滴 bug。 我们现在就暂时先把这五个功能看成是打印功能就可以了。然后后面我们还可以通过一些配置像让我们的日字信息不但可以打印到控制台,还可以记录到日字文件里面。 以前我们在调试代码的时候,可能需要打印一些变量的状态,而项目写完之后,我们就不需要打印这些变量了,这时候就需要把这些打印一个个全部注释掉, 代码少的时候还好,如果项目很大的时候,可能很多模块里面都有各种各样的打印输出,要一个个去取消打印就会很麻烦。而现在我们换成日制输出的这种方式之后,我们是可以配置日制输出等级的,调试的时候我们可以把日制等级配成第八个级别,这样运行的时候所有等级的日制就都会输出。当我们把代码调试完毕之后,要上线运行的时候,我们 就可以把日子等级配置成硬货级别,这样硬货级别以下的日子,也就是第八个级别的日子就不会再输出了。我们直接来运行一下这个代码,看到了吗?只答应了蜗牛级别以上的日子。窝宁 arrow critical, 这是日制的级别,窝宁以下的英货日子和第八个日子是没有输出的,因为他默认的日子输出级别就是窝宁, 然后这个入团是日字的名字,这个我们后期是可以改的。然后在后面就是日字的详细信息了,就是我们在这里传的内容,比如说在这里传一个硬盘空间不足,再来运行,这里就变成了窝里硬盘空间不足。

搬砖啦,今天来共享一下借丝数组的方法来看,第一个数组转换成支付串, 我们想要检测一下,可以把它存在一个变量里面,我们是不是可以打印出当前这个变量来看一下?刷新 好,那这一块看的时候不是太明白,有小伙伴说,哎,我想要看一下他转换过来之后,是不是你刚才说到的字不串呀?如果是死俊类型呢?说明咱们转换 ok 的,对吧?来看一下是不是死俊类型。好,紧接着来看第二个赵颖,赵颖他呢是 连接,对什么连接啊?对当前数组里面的元素进行连接,他也是一个方法,其实方法的使用方式都是一样的, 别去啊,变化一下就行了,对不对?那这里面他要求我们可以传递参数,安是一个行参,也就是你用其他的字也可以,他没有具体的一个意义,只是说在这里我们可以传递进去一个参数,比如说我这时候来给他传递进去一个新号, 那我们可以打印出来看一下,当然除了信号之外,你也可以给他来一个啊,杠啊,或者是其他的都可以啊。那还有一种情况是空格,直接就是空格来看一下, 这里也可以看明白的,这个都比较简单啊,除了这一块之外呢,我们再来看下一块呢,添加新元素有这么几种,我们一个一个来说,先来说第一个等号,等号是复制的一个作用,对吧? 那如果我们要通过等号对他进进行添加新元素呢?比如说我现在我就想要这样的一个数组, 也就是给他添加一个四,对不对?这个四我们怎么样通过等号来去添加进来呢?只需要去找一下他的下标就可以了。他的下标为多少?零一二三,对不对啊?那你把当前这个三给他拿进来,我们需要把四给他复制一下, 看一看他增加了没有啊?增加了是不是?好,那这个比较简单啊,除了这个方式之外呢?我们还有一个是通过方法,那比如说像铺式方法,其实跟这个都是一样的, 只要是方法,我们就可以把当前这个铺式给他拿进来,他这里也是干什么呀?可以传递参数的,对不对?比如说我们想要铺式进去 一个一百,好,这里来刷新看一下,记一下啊, 这是这个,那我们再来看这个,这个跟他有什么样的区别呢?你看同样的添加对不对?你有一个添加就好了,为什么要搞出这么多添加的一个方式呢?好,来看一下。 哎,这个是不是跟我们刚才这个有点不太一样,能看出他的区别来了吗?也是针对咱们当前不同的需求,比如说我当前就要在数组的最后一位去追加,那你可以用到铺式对不对?或者等号都可以啊。那如果是我需要在当前数组第一位去添加,那你就要去使用它了,对吧?再来看这个, 这个他需要三个参数,先来看啊,我在这里来写一下,大家先来看一下。 哎,就剩了一个一,一个两百,为什么呢?我来说一下啊,遇到这样的你怎么样去看呢?那针对于当前括号里面的参数,有些时候我们记不清他是什么意思,或者是能添加几个参数的时候,我来教你一个方法,其他的也都是用的, 我们先 ar 点 splas, 你看在这里他这个括号里面是一个参数,这个地方给到我们可以填两个参数,第一个是 start, 就是开始他接收的是一个 no 类型,能看明白,对吧?好。第二个是我们要删除的个数, 这是两个参数,但是我们这里有一共有几个?有三个,那你可以按上下方向键来去切换一下,看这个地方是二,刚才这里是一,能看明白吗?这里他就可以来三 的参数,你看前两个参数都是一样的,都得,也就是从第几个开始,我想从所以我一的位置开始开始,怎么样啊?删除,比如说我不想删除,那就给他一个零,你想删除一个元素,就给他一个一,能明白吗?那还有一个是第三个参数是什么呀?艾特, 也就是当前你要给他的一个纸,比如说我要追加进去一个三百,就这样去写就可以了。那我们来看一下啊,当前所引为一, 也就是从这里,对不对?好,删除几个,删除一个,删除一个之后,那你想给到他的一个值是多少?为三百,对吧?好,那我们一块来看一下, 能看明白,对吧?

当你不知道某个字符串或者文本的编码类型的时候,你可以使用第三方会差代词来进行检测判断,虽然不是百分之百正确,但是可以作为一个参考。依据 规矩,我们先用派克威力将它安装好,然后导入这个库。主要呢就使用他的 dtac 的这个方法,它里面穿的参数呢,必须是 biat 类型。 我给了三个例子,我们先看一下结果吧,结果里面是一个字典,这个字典里面有三个 k, 第一个是硬扣顶,就是他猜测出来的编码,然后康菲等词呢,就是他的可信度,也是概率。然后最后一个是 language, 是他猜测出来这个字不串或者文本使用的语言是什么。


php 入门基础,创建一个变量并输出变量内容, 打开代码编辑器,新建一个名为 index 的 php 类型文件,文件类型一定要保存为 php 类型,保存其他类型代码将无法运行。创建好文件后,先书写 php, 开始标签。 php 类型文件已开始,标签开始,已结束,标签结束。阿帅建议新手术写 php 代码时,将结束标签先打上,以免忘记。接下来我们开始创建 php 变量, 创建一个名为 a 的变量,数据为一二三四五六。阿帅在这里打上了相关的 php 注释, 方便大家理解。说明,注视前需要打上注视符,注视符有多种,以后大家会了解到。 接着创建第二个变量, 第二个变量名为币,数据内容可以是字符串,需要加上引号,字母和汉字都属于字符串,以后的视频里会讲解字符串类型。 一般来说单引号和双引号都可以使用到字符串类型,阿帅建议单引号用于字母字符串,双引号用于汉字字符串。 电量就是用来储存数据的,就像一个饭,锅里面装着饭, 当创建完变量后,那么如何输出变量的内容呢?要想吃锅里的饭,也就是输出变量内容,就需要使用输出语句。在这里使用的是 echo, 比较常见的用于输出单个和多个数据。 我们用符号来连接两个要输出的变量,这是个连接符。好了,书写完毕,接下来就开饭了, 然后我们保存代码文件,在这里我们需要用 php 服务器预览内容,访问我们的本地服务器,也就是从浏览器中访问, 接着打开浏览器,访问本地服务器地址,即可查看变量内容,是不是 很有趣?电量内容出来了,大杂烩一样显示在一起,貌似不是很美观。接着我们分开输出,重新书写输出代码。 分开输出,我们需要使用换行服,在这里相入了 html 标签。 br 标签用来唤醒,当然还是需要连接服进行连接。在这里阿帅忘了说明一个关键点,那就是每个代码结束后需要加上号, 我们现在创建的变量为全局变量。什么是全局变量呢?后续阿帅会一一讲到,慢慢来,一口吃不了胖子。编辑修改代码后,我们打开 开浏览器刷新下,这次显示了两行分开输出了,哈哈。后续为大家讲解 php 数据类型哦,请持续关注。

我们说 r 模式下,文件指针会调到开始为止,然后 f 点瑞的就是把这个文件内容一次性全部从硬盘读到内存了,这时候如果文件过大, f 点瑞的就会有问题,如果这个文件有几十个 g, 你还能用 f 点瑞的来读吗? r 模式下, f 点瑞的是文件指针,从开头一直读到文件结尾, 整个文件都给你读到内存里面来,内存一下就给你占满了,这样的话三十二 g 的内存都不够你用的。当然文件小的话这样做没问题,文件大的话就不行了。现在我把读高的内容复制给 r e s e, 再打印一下 r e s e, 然后接着我再用 f 电热热来读一次。 为了区分两次读写的数据,我在前面打印一下分割符,用第一次读点生产,然后八十的支付用横杠填充,支付穿。这个生态功能虽然我没讲过,但是前面我是要求过你要自己去了解的,还是带你看一下吧。十三杠支付转详解,这个文件在这里生态 有两个参数,一个是宽度,也就是这个字不算的长度,另一个参数是要用来填充的符号。这个文件要分享给你们,我觉得作用不大,都是讲课的时候敲了一些简单的代码,没有太多笔记性的东西, 需要的话就在评论区留言吧,如果需要的人多的话,我就放到我的百度网盘历史你们都知道吧,前面已经贴过三次了。好,我们再回到这里,然后第二次主页打印一下。现在我要运行这个程序的话,会发生什么呢?我们说了,执行了 fda 之后,文件指针会从当前位置移动到文件最后, 当第一次执行 f 点锐德的时候,文件指针当前位置在开头,然后文件指针移动到末尾,把整个文件都读出来了。现在我们没有做任何操作来移动这个文件指针,所以当第二次执行 f 点锐读的时候,文件指针的当前位置已经处于末尾了,所以第二次的结果应该是什么也读不到。来运营看看,第一次读确实是读到 内容了,你好,我喜欢你,但是你看第二次读什么也没有,所以只要我们能够控制这个文件指针的移动,是不是就可以随心所欲,像读哪段内容就可以读哪段内容了,也可以避免阿尔摩斯下的瑞德会一次性把整个文件内容读入内存,造成内存被占满的问题。控制文件指针移动,这是我们后面要讲的, 现在还有一个点你要注意,你看这个我喜欢你后面还有一个换行,为什么呢?我们的文件内容不就是你好,我喜欢你这句话吗?来看这个文件内容,这个文件内容里本来就有个换行服,也就是感恩,虽然这个感恩我们看不见,但是我们读文件的时候,这个感恩也是会读进去的。现在我把这个换行删掉,再回来运行,换行就没有了。


之前呢,我们已经给大家介绍了二分查找基础版代码的一个编写,不过呢,大家如果去读一些文章,或者翻一些别人代码时,你可能看到你看到的二分查找,它的实现上啊,跟我提供的这个实现会略有差异。 那我为了加深大家对二分查找的认识,我这里再给出另外一个版本的二分查找,我们来对比一下,看它差在哪 啊。那我把这个代码咱们先复制一份啊,我下面呢已经准备好了另一个方法啊, anna research also native 啊,就是它的一个改动版,我们把刚才基础版的代码先粘过来,然后我在这个上面来做改动啊,这些注释都先不要了, 一共呢,我要改动三个地方,第一个地方呢,就是 i 跟 j 这个边界位置不一样,你看我们之前的代码里, i 呢是指向的,所以零, j 呢指向的是,所以 n 减一,对吧。现在呢,我把后面这个减一去掉 啊,这是改动的第一个位置啊, 啊,这是第一处,待会我再来解释为这个改动意味着什么 啊?改动的第二处呢,就是这里的条件,前面我们一再强调了要写成小于等于,对吧?但是现在呢,我把这个接的边界改了,这里就不是小于等于了,而是小于啊,这是我们改动的第二处。 最后第三处的改动在哪呢?哎,第三处的改动在这里,就是这个接的边界呢,原来是哎,中间所引位置减一啊,要移到中间所引的左侧啊。现在呢,我要把它改一下。 改成什么呢?先写出来这个注释啊,我把它要改成接等于 m 啊,接要变成中间,所以 那永恒说,这,这不对了呀,这之前我们解释了啊,这要写成小于,等于这里要变成 m 减一,为什么你这样改了以后,他就没有那个小于,这里没有那个减一了呢?哎,这都是受到我们这个接的边界 值的影响,那接下来我就来解释为什么这个改动是这样的。 好,我们先来检查一下啊,这个改动版这个算法的一个正确性,怎么验证它的正确性呢?哎,其实还是通过单元测试啊,我这呢已经把之前我们基础版的单元测试代码复制了一串, 只不过测试的方法呢,改成了我们新的这个方法, bannery 测试 alternative, 也是对他找到的几种情况,还有没有找到的几种情况做的一个测试啊,那我们来跑下这个测试代码, 可以看到,哎,测试通过了是吧?啊,下面再测一下这个没有找到的情况,哎,可以看到也是测试通过了,因此呢, 我们这个算法的正确性是没有问题的啊,就虽然做了刚才这三处改动,这个算法是正确的,有了这个正确的基础,我们再来看一下它的一个执行流程。 好,这里呢,我又新做了一个网页,这个网页呢就对应着我们二分查找的一个改动版,可以注意一下它的改动地方啊,一是我们接它的数值已经没有这个 length 减一了,只是 a 点 length 了。 第二个呢,就是我们 i 跟 j 比较的时候,没有那个等于了。第三个就是缩小 j 的这个边界范围的时候,没有那个减一了。 好,那接下来我们就结合他的一个执行流程来看一下这几个改动他的背后的一个含义啊。好,我们来 来查找其中这个十三这个元素吧。我要查找十三,那第一步是不是还是先要确定 i 跟 j 这两个指针它的初始值啊? 那 i 的处置值没有变,它仍然指向的是所以零位置的元素,但是 j 呢?哎, j 呢?不一样了啊,它指向的是一个并不存在的元素。哎,它跟我们之前的一个基础版就不一样了, 基础版里面我随便查找一个值,基础版里的 i、 n、 g 是不是不光是作为边界啊? 他们指向的这个元素也有可能是我们将来要查找的目标,对不对?哎,比如说现在这个四也有可能是我要查找的目标,这个二十 五呢,也有可能是我的查找目标。但是我们这个改动版里, i 呢?它当然指向的元素也有可能是我们的查找目标,但是 j 呢?不一样了,它只是作为一个边界,它指向的一定不是查找目标。 注意我最后说的这句话啊,接纳只是作为一个边界,它指向的一定不是查找目标。 好,记住这句话,我们再接着往后看。下面呢,是不是还是要求他的中间所言,对吧?好,找他的中间所言。 中间所引,因为它是对应这所引零,接纳对应这所引八,它俩加起来除以二,中间所引是不是四啊?啊?所以找到了中间 值二十二,那我们把这个中间值呢,跟这个目标做比较,因为目标比中间值小啊,哎,所以他应该在左侧查找,对吧?在左边啊,那在左上查找,那我们缩小这个接他的边界, 缩小它的边界的时候,为什么这里写成了 m, 而不是 m 减一呢?大家回忆我刚才强调的那句话啊,接它现在只是作为一个边界, 他呢指向的一定不是查找目标。那如果我把这改成 m 减一,那就意味着将来这个接在下一次,他是不是就指向了 m 减一,也就是四减一等于三呀? 他指向的这个十三一定不是查找目标,是不是就跟我们这个查找目标 就恰巧错过了?理解了吧。哎,接指向的会被错过,他只是作为边界, 所以这样的话,我们就把这个十三漏掉了,所以我们接下来要让这个接纳它的取值是 m, 而不是 m 减一。 好,接的取值应该是 m, 因为这个 m 呢,我们在第一轮比较的时候已经比较过了啊,他的这个二十二已经跟十三比较过了,他俩不等啊,所以接指向的并不是查找目标,这跟我们刚才强调的那个语句是不冲突,不矛盾的啊。 好,我们继续把这个流程走完吧。好,这回零加四除以二,找到了中间缩影二, 当然我们的目标呢,这会比中间值大了,所以在他的右侧找,这跟以前一样了啊,在右侧找,那就是扩大 i 的边界,那让 i 变成 m 加 e, 这个不变 没问题吧?好,当然这个时候我们的 i 小于阶,这个条件仍然成立,所以再次进入循环,再找这个中间值,那四加三除以二向下取整还是三,所以这回的中间值跟 i 相等了。 这也跟我们之前的推论也是一致的,因为 i 指向的元素仍然有可能是我们的差状目标, 这次能不能找到?哎,可以了,这次我们要指向的这个中间值是不跟我们的查找目标恰好相等啊,哎,这就已经找到了 啊,这是我们其实刚才已经回答了大家的两个问题啊,一个呢是改动版的接的含义啊,他是只作为一个边界了,他指向的一定不是查找目标啊,他指向的元素肯定不会参与比较, 因此呢,才有了我们这里的缩小边界时,要让它等于 m, 而不是 m 减一。好,最后呢,我们再来看一下这里的 wel 循环,这为什么没有那个等于条件了啊? 其实呢,也好解释,你看前面咱们分析过这个 i 指针,它所指向的元素是不是还是有可能要去参与比较的呀?但是这个接指针呢,它所指向的元素,我们是 不是不应该让他去继续参与比较吧?那如果我们把这里加上那个等号条件,就意味着 i 的取值是不是要有可能去最后一步叫等于减,他就由 i 带着接,让他们所指向的元素参与比较了? 就跟我们前面这个假设矛盾了,想通了吧,那有的人说,那我不就是让他等于一下,让接指针指向的元素比较一次又能咋呢? 哎,其实问题还挺严重的,他会在某些情况下让我们这个陷入一个死循环。 那接下来我们就来给大家演示一下这个返利啊。好,这里呢我又准备了一个网页,这个网页呢就 就是给大家演示这种有错误的情况,那么这里我已经把条件啊加上了,这个等于,那我们来观察一下他什么时候会出现这个死循环, 我先告诉大家结论吧,结论呢,就是当他查找一个这个数组内没有的元素时,他就会啊,如果我们加了这个等于条件啊,他就会陷入死循环了,比如说我们找一个三十吧。 好,大家来看,三十是不是在数字里没有啊?好,我们看一下它的查找过程啊。 当然呢,我这个页面已经做了特殊处理,我会在死循环发生的时候,不会让他一直循环下去,我会提前退出,不然我的页面也会卡死啊。我们来看一下,刚开始呢,也是先找一个中间值,那中间值比目标大, 所以我们应该在他的左侧来找,这时候缩小接让接呢,等于 m 没问题吧?好,进入第二轮的比较,第二轮的查找,那第二轮呢?再找一个中间值,找到的是这个十九, 那十九呢?比目标小,所以应该在它的右侧来查找。好,那我们扩大 i 的边界啊,让 i 呢?等于 m 加一。 好,这是第二次查,那第三次查呢?好,那我们再取一个中间值,这时候三加上四除以二取整,是不是还是三呀?哎,向下取整还是三啊?所以呢,中间值算出来, m 是指向了三, 好,注意,这一步它还是合理的。因为什么呢?因为我们说过,这时候 m 跟 i 实际上是指向 同一个位置,对吧?就相当于是比较。哎,指向的元素吧。哎,我们前面说了,哎,他指向的元素应该是也会参与比较的啊,也有可能参与比较,因此这是合法的, 所以到这一步为止还是没有问题的。不过很遗憾,我们 i 和 m, 他指向的这个二十七跟我们要查找的三十还是没对上,是吧?没找到, 没找到的话啊,那因为我们的中间值比目标要小,所以应该在中间值右侧再找,这时候呢, i 就等于 m 加一,没问题吧? 啊,现在问题来了,这时候 i 跟接相等了啊,就是我们这个条件也满足了,他还会进入下轮的查询比较。那这一轮呢,其实就不应该 进来了,因为现在接指向的元素啊,如果进入这个循环,那就意味着接指向的元素是不是也要参与比较了? 其实接指向的这个三十五在我们第一次就已经比较过了啊,他当时已经比较过不等了,对吧?但是这一轮如果他再比一次,会出现什么问题呢?接着往下看啊, 好,这个时候,因为他俩的指向的都是所引四,所以再计算出来中间所引是不是还是四啊? 好,那么显然中间,所以 m 也包括 i, 包括 j, 他们现在指向的元素跟我的代查找值还是不等,对吧?还是不等?那现在呢?我的呃, target 小于中间值,所以进入的是这个在左边这个条件接又等于 m 完了啊,那 j 等于 m, 它相当于 j 不会动啊,不会再向左移动了,因此呢,大家看它是不是又重复的进入了循环呀?哎,刚才的逻辑又会走一遍,这样就是陷入了一个死循环。 好,这是我们啊,当你把这个等于条件加上以后,他出现死循环的这个情况。 好,那讲到现在呢,希望大家能有这样一种认识,就是如果我们想更好地去掌握一种算法,那我们就必须对这个算法内的 一些变量啊,一些指针呀,他们背后的含义有一个更深入的理解,这样呢,才能帮我们更好地掌握,从理解的层面掌握这个算法,如果不这样做,那你可能只能靠死记硬背去记住这个算法了。 好,那在我们这个两个二分查找的例子中,基础版的二分查找它的 i 跟 j 含义呢?我们再说一遍 啊,已经说过好多次了, i 跟 j, 他不光是代表了我们一个搜索的边界,而且 i 跟 j 他们指向的元素最终也有可能去参与比较运算。 因此呢,我们可以把这种边界称之为一种啊,左臂右臂的边界啊,这是基础版。那对于我们的 改动版呢, i 的含义其实并没有改变啊,但是接的含义变了,接所指向的这个位置,我们其实并不希望他参与比较运算,因此呢,代码上才有了这一处的调整和这一处的调整 好,那么它这个边界呢,是一个左臂右开的边界,开意味着它将来不会参与运算啊,它只作为一个边界而已。好,这是我们这两个二分查找中 i 跟 j 指针的含义。 好,那有同学说,老师,你讲这么多有意义吗?有意义。那么我们后面这个改动版啊,他还会在二分查找的更多用途中用到他的这种写法 啊,包括我们的 left most 呀, right most 呀,哎,他的写法都是这样的啊,所以这两种版本我们都得掌握。

小伙伴们都嫌我啰嗦,阿帅直接就步入正题了哦, 好了,废话不多说,直接上代码,要多干脆就有多干脆,我直接用 h 一大标题和一段批标签的文本展示要变色的内容。今天如果你学会这个网页内容变色方法,就可以将任何网页文本内容进行变色了, 要多实用就有多实用,比如修改下现有的网页颜色文本风格。好了,废话说完了,代码也打完了, 保存文件,打开浏览器预览下初始的内容颜色吧,睁大你的眼睛看好了,全部是黑色,很酷! 接下来就要进行变色操作了,首先到颜色代码裤选色,这个颜色代码裤是阿帅为自己量身定制的,方便页面设计,当然大家也可以使用,点赞加关注,私信阿帅即可。 来吧,开始变色,把刚才那个复制的颜色变出来。我们需要使用 style 元素选择器,选择 collar, 后边加上我们的颜色代码。我了个去去,电脑有点卡,有点不该,稍等就好。 字体过大,来回反弹,下次阿帅一定调整代码字体,然后将我们选择的颜色代码复制进去,大功告成!点击保存,重新打开浏览器刷新下,看看新的颜色吧。 接着我们用同样的方法去修改批断落的文本颜色。我们进入颜色代码库,选择个鲜绿色的代码色吧,缓解下浮躁的心情。 同样使用 style 选择器来添加颜色。这里需要注意的是,一定要在内容标签内使用过,大范围使用会覆盖局内颜色。重新点击保存,打开浏览器刷新下, 看到没,直接变绿了,成功的绿了!后续阿帅会实战教大家表格变色、超链接变色等,请持续关注。

我给大家介绍一下由你靠的这个编码哈,由你靠在实际上历史上呢,出现了很多种这个编码的这个方式,但是呢最常见的就是 这个所谓的 utf 八,这是我们今天要重点给大家介绍的,除了之外呢,还有两个比较简单一点的啊,就分别是什么 utf 五十六 和 utf 三十二、三十二这两种。那么 unico 的这个文字符的编码方式呢?基本上就这三种啊,就这三种,我们分别给大家介绍一下他这个三种的这个特点啊, u t f 八呢,他的这个编码方式呢,实际上是跟那个阿斯科是接入的,也就是说你把阿斯科表示的这个字符啊和 u t f 八表示的中文呐 啊,这个日文呐啊,美文啊,藏文啊,放在一起的时候,他不会混淆啊,不会混淆。那他的这个特点呢,实际上呢,我们就可以说是跟那个 euc 啊,就是我们介绍个 euc 啊,那种东西实际上有点像啊,就是说 对于阿斯他是一个字节,然后呢其他的东西呢,就是可以用两个字节,三个字节,四个字节,五个字节这样来表示啊,那他最大的特点就是说阿斯兼容,还有一个特点呢,就是变长, 跟 ucjp 一样变长的啊,他的这个编码方式是变长,他最长呢可以有六个字写来表示,但是呢, 呃,用力靠的字符呢,他因为是那个只有幺零 f f f 那么多吗?所以呢用最长的四个字接就可以了。我们常见的中文,比如说是上海北京啊这样的,这个普通的这种 文字啊,普通的这种汉字,那他的这个 utf 吧,编码的长度是三啊, 大家一定要记住啊,但是有一些,有一些排的比较靠后的,那可能就是四了啊,那大部分汉字他的编码 utm 把编码上都是三个字写啊,这个一定要记住啊,不是两个字写, 现在再再把国标三样那个东西拿出来啊,说一个汉字用两个字节来表示那个时代已经过了,那个时代已经过了。好,再往下 你看,八十六三十二是吧,直接使什么呢?就是说他的一个基本单元是八位,就是一个字节,那他的基本单元什么?就是一个十六位的 十六位的一个长度的一个字啊,我们叫沃尔,对吧?啊,这是 bite, 这是沃尔三, 上面呢就是 w 双字,那也就是说 utf 十六的时候就是用一个十六倍的东西来表示一个什么呢?表示一个由你靠的字 在用力靠的三点零之前的时候。那会呢,他不是用力靠的只定义了六五五三四个啊,马妹吗?是吧?所以呢, utf 幺六可以干什么啊?可以用来表示所有的用力靠的, 对吧?但是后来不是变成了到了,大概到了七点零吧,人员到了七点零的时候,这个马路一下就扩展到了这个超过这个 十六位字母来来显示,所以呢,实际上用 tf 幺六呢,看也是什么也是变长的,只不过他这个变长呢,有两种,一种是两个字结,要么是四个字结, 一种是两臂,一种是四臂啊,那 utm 三十二呢?这个东西简单,为啥呢?因为三十二位基本上可以覆盖目前由于靠的所有的这个马位啊,所以呢,他就没有那么多,没有那么多大大,所以他是定场 就是四倍,四个字结搞定啊,每一个字母都是四个字结,当然了,很多人都会一下子就会想到说每个东西都是四个字结,那可多浪费啊,对吧?你说,你说,我表示一个什么? a b、 c、 d 是吧?阿斯玛, a b、 c、 d、 u t f 八四个字接就够了吧,对不对?然后 u t f 三二的时候呢,那就变成四乘四了啊,对吧?四乘四,那就用十六字接来表示,那不就是浪费了吗?对不对?那 u t f 幺六的时候呢,那最起码也是四乘二啊,八个字接, 对吧?啊?所以的话呢,实质上呢,这些东西啊,有一点幺六九点三十二这种东西呢,他为什么在在我们日常使用里面很少用到呢?就是因为 他比较浪费啊,他这是比较浪费。还有一个问题,就是我们在表示诊说的时候讲到的什么问题呢?就是大小头问题啊,大小头问题, 他既然是一个 word, 那那就有一个 l e 是吧?有一个 b e 的问题, deword 也有 l e b e 的问题,是吧? 就是里头 nd 和那个 bnd, 那也就是说实际上这俩编码真正的啊,他就是有两种,有 tf 幺六 l e, 比如 tf 幺六 b e 啊,然后这个东西呢,他也实际上是两种编码, 三十二到一, 对不对?所以说你想想,要是一个正常的人选择,你会用哪种东西来编码这优密 code 来,是不是就是 u p f 八是最好的,对吧?