粉丝24.8万获赞157.0万

今天来讲一下谷歌的浏览器怎么用手机模式来调试。首先比如说我们访问这个网址,他是一个 h 五的页面,在电脑上面显示是这个样子, 那我们怎么模拟手机模式的调试?直接在这个页面右键点这个 inspect 的,点完之后其实就是进入了这个调试模式,进入这个调试模式之后,进入这个调试模式之后, 找到这个图标,这个就是手机和电脑设备的切换的这个图标,可以看到这个提示是触发这个设备的工具栏,就是切换手机模式和电脑模式, 我们点击之后,然后选中了,再来看一下,这里就是变成了这个手机模式,跟这个手机看到的这个页面是一样的,我们点击点击这个就是手机页面的这个 h 五。

前两天这期排序的视频,好多小伙伴在问怎么找到的那个排序的代码,虽然我在评论区里回复了,但还有很多小伙伴在问哈我,首先呢,我们先确定找的需要是点击这个表头之后的代码, 所以呢,我们就需要进到这个 eltable 里边,那我们点进去,至于点进去这个插件哈,我之前分享过。然后呢我们往下找,因为我们看的是点击表头的代码,所以我们要进到这个 table high 的组件里边再点进去, 然后这里边呢,待会发现他用的是这种软点的方式去渲染的页面,所以呢,我们可以往下找,看有没有关于 salt 有关的东西, salt 大概他在这判断是不是骚特一宝可排序的。然后呢放这种小图标,然后呢点击之后走这个方法,然后我们再看这个方法 在这里,然后这些呢,他其实在做页面上的效果,最后呢,他会掉一个这个 comet, 一个这个方法,那这个方法在这个页面里是没有的,所以呢,我们用全文搜找一下这个, 但是这个注意啊,默认我们这个是关上的,我们要把这个开关打开,这样的话呢,他会搜索所有文件, 大概有这么多,是吧,我们要找这个方法的定义,我们可以加小括号,看看小括号就没有了,或者我们加冒号, 看冒号就这几个。这样的话呢,我们就找到这个方法了,这有一个 table 的 g s, 还有一个饿了么 u i 的 common, 我们先不管这个,我们尽量看这个 table g s 里面的。然后呢进来这有一个 execute query 方法,我们再找到这个方法, 大家看他有一个 excuse salt 方法,这就离成功不远了,我们再去找这个方法,打开在这里,然后呢他就调了 watcher salt data, 我们继续往里找, 找到这个方法,这个方法就好玩了哈,大家看他最终这样调用了一个方法,用 object 扩起来,然后呢找到 uto 数组里的 i, 但是呢他这有一个注视是奥德拜,那我们先不管他为什么这样扩起来哈,我们去找这个奥德拜的方法, 打开它在这这个也是那个 i, 然后 return 有 alt by, 说明 alt by 这里边是有方法的,大概就这个,然后呢这就是那关键方法了,大家看这个 get key, 我们把它收起来,然后这有 compare, 这都是用变量来存储了两个方法,然后呢最终它 return 和 reader map, 然后点 sort 排序,关键的在这里打开,然后呢我们就需要调试这个,对吧?所以呢我们去找到,把这个签名啊多选一点进来,把它复制一下,然后呢关键来了,我们去到页面里啊,打开这个 network, 然后选 gs, 我们刷新一下,这样的话呢,页面加载 gs 都有了,然后在这个地方呢,我们用 comen option 加 f, 在 windows 里应该是 ctrl shift 加 f, 然后呢我们把这个要搜索的粘到这搜一下, 好,大家看搜到这么几个地方,然后呢下边他有一个带参数的,和一个不带参数的,其实都一样的,我们随便选一个,嗯呢就是这个方法了,大家看我们就可以在这打断点了。

今天我们来讲一下谷歌浏览器这个调试模式的这个调试框下面这个调试框怎么用不同的方式显示,在不同的位置显示,我们打开这个调试模式之后,默认他是在这个页面的这个下面, 他把这个页面就稍微挡住了,我们想把这个调试框独立出来一个独立的窗口,那这个时候怎么设置呢?点三个点这里,这里就是可以看到不同的显示位置,这里的当前的显示的位置就是默认的他是在这个页面的这个下面, 这个是左边,这个是右边。第一个他就是独立的这个窗口和页面独立的分开的这个窗口,我们点一下,现在就是独立出来了,独立出来之后这个页面的话更方便调试了,更完整了。

首先咱们先运行一下这个程序,看看程序的功能, 输入一个用户名,一二三密码,一二三登录,哎,提示你用户名或密码错误,单击清除清除本块内容,然后输入 admin, 一二三登录,登录成功。然后呢测试完没有问题之后呢,咱们把这个文本框,这个呢要给改成密码,显示 运行 a d m i n 密码,一二三登录,登录成功, 点击开始打开 vb, 六点零 新建一个标准窗体, 添加标签, 添加两个文本框, 添加一个按钮, 再添加一个按钮, 好,下面咱们修改他们的属性, 第一个标签的 cap 分属性改成用户名, 第二个改成密码, 第一个按钮改成清除, 第二个改成 登录, 简单进行一个格式的调整, 拖动四周的这个蓝色的小点点就可以进行一个调整,对齐一下, 咱们来编写代码,这个清除功能的话呢是单机他,之后呢把文本框里边的内容进行一个清空,单机登录的话呢,咱们输入用户名和密码,弹出另外一个欢迎的窗口界面, 下面咱们在工程里面呢再添加一个窗口,这个呢是 fm 一,咱们再添加一个 fm 二,下面打开咱们这个工程自愿管理器, 可以按住快捷键 ctrl 加 r 打开,也可以从这个师徒菜单里面打开, 有机添加,添加窗体。 form 二,当登录成功的时候呢,咱们在 form 二上呢显示一段文字, 登录成功, 可以把字体稍微给他调整一下啊, 下面咱们来开始编写代码, 在放墨漏的时间里,咱们先把两个纹盆框的内容给它清空。 好,那咱们在 运行的时候,论文框里面内容就没有了,下面咱们双击这个清除按钮,这两个功能的话呢,实际上是一样的, 下面来编写这个登录按钮,登录按钮双击, 咱们呢首先要定义几个变量来接收文本框里面这个值, 进一个字形的变量, user 来接受用户名, 定一个 password 变量来接收密码, 然后用这两个变量来接受本框里边这个值。 下面就要用到咱们一个 f 结构来判断输入的这个用户名和密码是不是正确。正常情况下呢,咱们应该是用数据库读数据库的啊,咱们下面呢就为了简化一下 去你一个 f, 如果用户名等于 admin 按的,并且密码等于 一二三, 提示他登录成功,是不是啊?咱们就让 form 二出现 form 二点瘦,然后放么一隐藏, 如果输入的不是 这个用户名和密码,咱们给他提示信息 ales, 您输入的用户名 或者密码错误, 在写 nf 语的时候呢,一定要给他写完整啊,要不然容易爆错。好, 下面咱们来运行一下试, 那是不是一个错的啊, 哎,说您输入的用户名或密码错误,单击确定清除,再重新输入 admin, 再输一个一二三,单击登录,然后呢弹出 fom 二,显示登录成功。 为了好看啊,咱们还是把这个窗体的启动属性 都给他设成,从窗体中间显示 好,下面再运行一下,下面再运行一下 admia, 一二三。好, 这样一个简单的登录窗口呢,咱们就实现了。

好,接下来呢,咱们来带同学们去学习窟窿调试工具的相关内容,咱们的窟窿调试工具呢,它是咱们前端开发必备的一个基础工具, 通过他呢,怎么可以快速的定位到咱们的问题到底发生在哪,能够帮咱们查找并且调试很多的 bug。 那么咱们在库尔木调试工具这一章节中呢,目标就是让同学们能够认识库尔木调试工具的基础操作,能够使用库尔木调试工具来修改和调试页面中元素的样式。 那么为了达成这一目标呢,咱们的学习路径分成了四个步骤,首先第一步呢,咱们先会带同学们学会如何去打开咱们的 pro 调试工具,咱们打开了之后,我们还得带同学们去学会如何选择到咱们所需 要调试的页面元素,等选完了之后呢,咱们还要带同学们学会如何控制页面中元素的变化。那最后呢,咱们还会带同学们去学习一下咱们在调试工具中可能会遇到的一些特殊情况。 好,那么接下来呢,咱们就来带同学们去实际的操作一下咱们窟窿调出工具到底应该如何去使用到它。那么在这里呢,老师准备好了一个网页, 网页中呢放了一个 p 标签放在这,然后呢给他设置了一个标签选择器,两个样式卡了为 red 以及分了杠,赛字为三十 px。 那现在呢,咱们的想法就是,我想看一下当前 p 标签文字颜色变成蓝色的效果,咱们之前是 怎么做的呢?哎,那咱们之前呢,可能就直接在代码中把咱们的 red 改成咱们的不录, 改完了之后呢,还得按下 ctrl 加 s, 保存了之后页面中还得去刷新,才能看到咱们调完之后的效果,这样改载码的方式呢能做,但是步骤呢有一点麻烦, 那么在这里呢,咱们可以带着同学们通过调试工具来简化咱们的操作,让咱们调试元素的样式呢更加的方便一点。那么这里呢,咱们带同学们一步一步的实际的操作一下。 那首先第一步咱们想通过调试工具来进行调试呢,咱们首先需要学会如何去打开它,那打开调试工具呢也非常的方便,咱们只要直接在当前的网页中右击选择其中 的检查这么一个选项呢就可以了,咱们来点击一下,那么点击完了之后呢,同学们所看到的下面整个这一块部分,就是咱们所讲到的 come 调试工具的相关界面, 那么在这个界面中呢,他其实有很多的功能,那今天咱们先大概的认识其中的两个部分就可以了。首先咱们先来看左侧的这一块区域, 那这一块区域呢,是咱们当前 lmax 这个选项所展示的效果,那他所展示的具体内容呢,就是我们当前网页的主体 htm 表情,那 同学们会发现在咱们下方的窗口中给咱们展示了当前网页中所有的 htm 结构,那么比如说 p 标签呢,他就在这个位置,那左边 展示的是 htm 二结构,那咱们右边展示的是什么呢?哎,那咱们会发现右侧这一块呢,他所选中的选项是咱们的 stylex 是样式的意思,那 样式呢就跟咱们所学习的 css 是有关系的,那在下方的窗口中给咱们展示的就是当前所选中标签的 css 一样式了, 因为咱们当前选中的是 p 标签,那么因此呢,右边所展示的就是 p 标签身上的样式,那正好就是咱们代码中所书写的这一些部分。 好,那么知道了咱们如何去打开了之后,那接下来咱们还需要知道如何去选中我们所需要调试的元素,那么这里呢,老师来教同学们两种常见的方法。那首先第一种方法就是 是咱们可以直接在 a 类文字窗口中找到咱们所要调试的标签,比如说我想调试包对标签,我就点一下包对就可以了, 或者说咱们想调试 p 标签,咱们就点一下 p 标签就完事了,这是第一种操作。那除了第一种操作之外呢,咱们其实还有第二种比较常见的操作, 如果我们当前网易中的元素呢,非常非常多的时候,咱们在 htm 结构中去查找呢,会比较麻烦一点,那这个时候呢,咱们可以使用第二种操作来去实现。那 同学们可以首先第一步点击咱们左侧的这个按钮,把这个按钮选中完了之后呢,咱们当前的鼠标就会变成一个非常厉害的鼠标,我们想调试哪个元素,只要鼠标在谁身上摸一下就可以了, 就直接把它给摸到了,那摸到了之后,如果咱们想要选中他呢,只要鼠标直接一点击,咱们就能把它给选中了。好,那现在呢,咱们已经选中到了我们所要调试的批标签之后,那我们需要学会如何通过调试工具来控制我们当前的样式? 那这里呢,咱们会带同学们学会三个基本的操作,咱们先会带同学们学会修改属性值,还要学会添加属性值以及控制咱们的样式呢,到底是否要生效,那咱们一个个来看。首先第一个操作,修改属性值, 那现在呢,我们当前批标线的文字颜色是蓝色,我想看他颜色为绿色的效果,那咱们之前是直接改咱们的代码的,但现在咱们都在调试工具中 看到的他的样式,咱们就直接鼠标点击当前的属性值,然后想把它改成什么取值,咱们就直接写上咱们想要的取值,比如说改成 sorry 这么一个单词,一回车就可以了, 而且同学们会发现哦,我把咱们的取值改完了之后,页面中的效果呢会直接帮咱们展示出来,操作的结果呢会更加的直观一点。 并且还有一个小的技巧,就是针对于数字类型的取值呢,咱们可以直接鼠标点击一下他,咱们可以直接把它修改成四十 p x 是可以的,或者咱们可以鼠标滚轮直接往上 上滚动,会让咱们的数字呢不断增大,然后鼠标滚轮往下滚呢,让咱们的字不断减小,并且咱们还能按 像咱们键盘上的上键变大,键盘上的下键变小,都是能灵活的操作的,而且看起来呢非常的清晰,非常的直观。 好,那么说到这里呢,咱们试下同学们已经学会了控制样式的第一个操作,但是这边老师需要给同学们强调一个注意点,同学们需要小心一下的, 比如说现在呢,我们在调试工具中已经把我们的颜色和咱们的大小呢,调试的和我们所想要的结果是一样的,我想把这个样式呢永久的保留出来,下次打开的时候呢,还是长这样子的, 那同学们需要小心哦,如果你光是调完了之后什么都不管,那此时你下次再来一刷新,会恢复咱们原来的效果,因为咱们只是在调试工具中调试了对应的效果,在代码中呢并没有改变 出来,如果你代码中没有进行修改,咱们一刷新代码重新执行,还会恢复咱们的原来的样子。那同学们如果在咱们调试工具中已经把咱们所要的代码调试的和咱们想要的是一样的,那同学们一定要小心哦,调试工具中的代码想要永久保留, 一定要在咱们原码中把它给改对了才行,那最后呢,咱们需要在代码中把咱们所调好的取值呢,进行对应的更改,把它保留下来才可以哦,那, 那咱们在代码中改完了之后,此时我们再来去刷新,哎,他就把咱们的效果呢永久的保留下来了。好,学完了咱们如何修改属性值之后,接下来咱们来带同学们学习第二个小的操作,叫做添加属性。那现在呢,我们的想法是,我不光想要文字的颜 色和大小发生变化,我先给他加上一个文字加粗的样式,看他长成什么样子。那之前咱们在代码中直接敲就可以了,那咱们现在呢,也可以在调试工具中直接添加,也是可以的,咱们只需要在每一行代码分号的后面呢,点击一下,然后 后输入咱们的属性名和属性值即可,比如说加速的属性叫做风特杠,五位的属性取值呢,咱们叫做七百一回车, 咱们当前的样式就加上去了,并且咱们文字的效果呢,也立马展示了出来,当然还是刚才的注意点,同学们如果觉得这个样式非常 那不错,先把它给保留下来呢,记得把这行代码写在咱们的原码中去才可以哦,此时咱们再来去刷新,才能永久的保留下来。 好,最后呢,咱们还有一个小的操作,需要同学们大概认识一下的,叫做控制样式呢,是否去生效,那比如说现在我不想看他是绿色的效果,我想看他默认的文字颜色长什么样子的。那 那此时呢,咱们可以鼠标直接放在咱们卡了属性身上,属性前面会有一个类似于多选框的选项,咱们鼠标直接把多选框中的勾给去掉,那这个时候呢,就表示让这一行代码失效, 那么失效了之后,咱们会发现当前属性身上会多了一个删除线,也是想提示你当前属性呢已经被你控制成失效的状态了。那如果同学们同样的不想要下面的属性呢?想把谁去掉,直接鼠标在属性的前面把勾给去掉就可以了。好, 那说到这里呢,咱们就来同学们介绍了三种常见的控制样式的操作,同学们可以自己去调试一下。

当你写完代码后,如果有个工具能帮你自动跑完测试,那是不是爽翻了?来看一个谷歌官方开源的自动化测试工具,才出来没多久就已经收获接近十八 k star。 不 仅能将 ai 编码助手连接到 chrome 浏览器,实现自动化调试、性能分析和网页操作,并且在各大 m c b 工具中都可以使用。还能监控网络资源,分析请求和响应,通过模拟不同的条件来进行优化。 给大家看一下它的具体操作。复制这里的配置代码,选择新建 m c p 服务,然后粘贴代码即可完成配置。绿灯状态则表示能正常运行,然后你就可以让他帮你运行项目和截图,或者模拟点击检查网页性能的操作。

兄弟们,写代码调试的时候,是不是还有不少人在满屏地答看 solog 呀?这方法不仅速度慢,而且上线之前还得一个一个去删掉这些看 solog 要是删不干净, 那可就容易出大问题了。今天我就来给大家分享昆姆开发者工具第三个,超厉害但知道的人不多的隐藏技巧,学会这三招,你的调试效率绝对能大幅提升!第一招,开启上帝模式产品经理是不是总让你改改文案看看效果?或者你想测试一下强标题 会不会把页面布局撑破?要是按照以往去改代码,那可太麻烦了。现在你只需要在控制台输入 document design mode, 等于 on, 神奇的事情就发生了。这时候的网页就跟 word 一 样,你可以随心所欲地修改内容,改完之后直接截图发给产品经理, 三秒钟就能搞定,是不是特别爽?第二招,快速调试 d o m 当我们在 elements 面板里选中了一个嵌套很深的元素,要是想在 console 里对它进行操作,难道要费劲地写一大串 document quirry select 代码吗?完全不用这么麻烦,你直接输入零美元就能轻松搞定。零代表的就是你当前在 elements 面板里选中的那个元素。不管你是想触发它的点击事件,还是修改它的样式,查看它的属性,直接输入美元、零点、奎克括号等相应代码就行。 在调试 react 和 vo 项目的时候,这一招简直就是救星啊!第三招, api 快 速重放。要是后端接口报错了,你想再试一次,难道还要重新刷新页面、 重新填写表单、重新点击按钮吗?这样做太累人了。其实在 network 面板,你对着报错的请求右键,然后选择 replay xh, 二桥浏览器会直接帮你重新发送一次请求, 不用刷新页面,你想测试多少次都可以。这个方法专门用来复现那些偶尔才出现的 bug, 特别管用。其实 chrome 的 f 十二开发者工具就像是一个强大的集成开发环境 ide, 可惜啊,百分之九十的人只用它来看 log。 如果你还想了解更多 dev tools 的 高级调试技巧,向性能分析、内存泄露排查这些内容,就在评论区扣个调试。我是 aries code, 每天都会分享一个技术硬干货,赶紧关注我,别错过任何精彩内容!



各位小伙伴们大家好啊,欢迎收看刘金玉编程,本期刘金玉编程要为大家带来的是这个出错处理以及代码调试, 那么想到这样一个主题,主要还是因为,呃,我们,呃,实际上啊,在我们写程序的过程当中啊,因为 这个写程序毕竟是人在写啊,人在写的话呢,我们毕竟这个,呃出错啊,避免的啊,难免难免的啊,无法避免的,对吧?那么 嗯,针对于一些出错的处理啊,在程序当中也有他这么一块领域思想,那么我们来看一下今天我们主要讲到的这两点, ok, 那么第一个啊,叫做出错处理,对吧?出错处理,那么这个出错处理该如何去解决呢?如何去解决呢? 那么这个出错啊,爆错,也就说程序爆错,对吧?程序爆错,那么程序爆错,呃,给我们带来的一个情况,如果没有处理的话呢,我们这个程序肯定就自动就 啊就死掉了,对吧?就在这里就停了啊,就在这里就停了,那么我们来,嗯,看一下,比如说我举个例子 啊,我举个例子,举个例子,我们叫做让这个程序来进行死掉啊,死掉,看一下, 让程序死掉很简单,对吧?就,呃,让我们这个语法,语法问题或者是一些数学问题就可以了,嗯,出错处理, ok 啊,保存一下,每写一个程序必须要保存,这是老规矩,对吧?好 项目保存,嗯嗯,好的。那么我们来看到,比如说我写个按钮啊,写个按钮, 那么这个按钮当中是什么呢?嗯,我们来输出一个,嗯,输出一个。数学啊,数学,比如说一除以零,输出一除以零 被除,呃,这是被除数,这除数对吧?分母这个地方肯定是不可能为零的吗?如果为零肯定报错,对吧?是不就报错了?他说,呃,除以了零啊,这个问题,这个地方是有问题的,对吧?这地方是有问题的,一直是有问题,对吧? ok。 程序报错后 啊?程序报错,嗯。代码,嗯,如果在软件, 呃开发界面啊,代码会停止到相应的, 呃。错误,行啊,有时候啊,有时候不准去,对吧?有时候也有不准 去的不准确的时候啊。这个语法有点问题。哈哈,也是,那么我们把它比如说生成一下,看看能生成啊 啊?生成一下,生成到这不是这个之一,好,我们来把它看一下他会变成怎么样?生成之后的这个程序点 exe, 对吧?我们来双击他, ok, 完了我们点击他,你看直接报错,他说除数为零,运行是错误,直接这个程序就结束了,对吧?那么 呃,这么一个程序如果说我们写错了啊,写错了,但是呢,我们不想让他程序停止,怎么办呢?哎。我们这个词后就用到了一个非常有用的东西,叫做 on on 是什么意思? 当什么什么时候,对吧? on arrow, 那么就是当错报错的时候,对吧?当报错的时候 on arrow resume 啊。好像在上一节课也讲过这样一个知识点, on arrow resume next 啊,含义, 含义啊,但上节课的东西讲的不全,这节课我们会不全啊。含义。那么当 发生错误的时候,对吧?让什么?呃?让程序继续运行下一行运行, 运行下一行代码啊,下一行代码发生错误的时候让程序继续运行, 不要理他,对吧?那么我们来看到比如说这个地方发生错误了啊,比如说我们先现在暂时先。比如说,呃。没写那一条啊?没写那一条啊? ok, 我们来啊普瑞特一下啊普瑞特一下,不是说普瑞特 有金玉, ok 啊,你看到这里他就下不去了,对吧?就一直在这一直在这里了,当我们写了这一个,嗯 啊,反正我们写这里吧啊? arrow resume next。 当发生错误的时候继续下一行,我们来看一下。哎输出来了,对吧?输出来了啊,当发生错误的时候,错误发生在哪里啊?错误发生在这里, 不管他继续下一行代码,对吧?哎那就没有报错了啊,继续下一行代码啊,忽略报错, 忽略啊,爆粗啊。就有这么一个好处,这样子的话使得我们程序的话,比如说有一些有一些东西啊,我们可能会呃没有意识到的东西,你就可以避免这样子的一个错误了,对吧?就可以避免这样子的一个错误了啊? 啊?还有一种就是比如说你当你解决不了这个问题的时候,或者说是当你呃碰到一个错误啊,一下子不能解决,或者是 呃这种错误可以忽略他,我可以采用另外一种方式去当我发生这个错误的时候,我可以采用另外一种方式,去去去 补充他啊。去呃去干什么呢?反正比如说是去避免啊,那么呃我就是做后期补充吧啊?对吧?那么我们该怎么做呢? 啊?这是第一个,第一个,对吧?这第一个出售处理,那么第二个 啊,第二个,这个叫做 on arrow resume next, 继续进行到下一行,对吧?那么我们这里面,比如说这里输出刘金玉,对吧?那么我们这里这个地方,我们下面再讲一个关键字啊, 再讲一个关键字叫做勾吐 啊,勾土,勾土就是勾土,就是去到哪里啊?勾土,然后呢?是空格啊,标签名称, go to 语句,我们单独来一块吧,嗯,沟吐语句, ok, 单独来一块沟吐,然后是标签名称啊,沟吐,然后是标签名称,那就这么写,很简单,比如说是, 呃,那么我们待会一起定义好了啊, 单独的狗兔呢?我们也可以这么做,也可以这么做,比如说另外另起一个,另起一个这个地方我们叫做狗兔, ok, 当我运行这个构图的时候啊,比如说我这里啊输出一个啊,柳金玉,以及啊输出一个啊,柳金玉 了解一歪啊听。比如说说出这些 输出了两个啊,输出两个,正常情况下的话,我们肯定是能够正常让他输出,对吧?正常让他输出,那么我们这里面,呃,假设啊,我这个地方,我直接 在这个地方上面,我们,呃,我们定一下,定一下可以,呃,定一个,比如说 是,嗯,外本,对吧?然后呢我们在这上面呢,我们定一个 go to web 啊, go to web, 我这样不写这个可以吗? 看一下啊,直接就出来了啊,直接就出来了。如果说我写了解冒后呢? 不影响,哈哈,也就是这个冒号,其实他是加不加,不影响,加其他的东西你就影响了, 是吧?那么这个地方其实也不用,如果说你不需要加的是也也不影响,那那你就不加了,对吧?如果有影响的时候你再加,什么意思呢?大家看到我一开始点击的时候,我就勾土,勾土到,哪个标签?勾土到标,勾土到这个标签,对吧?完了 之后,这个标签下面啊,我就直接输出了他直接输出了他,那么这个地方我们叫做勾吐 狗土。标间名称啊,就是含义啊,直接使得使得 代码跳转到相应的标签横标签横代码, 忽略其他的,啊啊啊,直接跳转到那个 vivo j 啊,忽略了这个,对吧?直接跳转啊,这些就不管了啊,这些就不管了, ok, 那么我们如何来定义标签 呢?啊,对吧,我们刚看到了,如何来定义标签? 首先就是一个标签名称自己取啊,当然这个标签名称我们最好也要取的,取的稍微有点含义啊,不要说是很没有意义的,嗯,这种啊,标签名称, 然后冒号就可以了。定义方法,标签名称加冒号,对吧?标签名称加冒号完了之后换行,换行实际执行的代码 实际执行的代码,对吧? ok, 那么这是一个标签啊,这是一个标签,假设我们这个地方还有另外一个标签啊, vivo 二对啊,那么这样子他会读渠道吗?我们来看一下,比如说,是 啊,有两个,对吧对吧?我这个地方我是是,虽然是跳转到这里,对吧,但是我会说出我下面这个吗? 对吧?我们来看一下,哎,也是输出了,对吧?也是输出了啊,所以,呃,我们这个地方要明确一点是什么呢?标签的,定义的地方, 也就说啊,定义标签的地方我们其实是不用管,对吧? 定义标签的,呃,地方啊,定义标签的地,注意啊, 就 交易定义标签的地方,定义标签的地方啊的代码啊,仍然 仍然会被程序,对吧?仍然会被程序之心, 对吧?仍然会被程序执行,我们这这一条就已经可以测试到了啊,只要他运行到了这里,对吧?他只是把中间的给忽略掉了啊?沟通 vivo 到啊,到 vivo 表情啊, 我们就把中间的忽略掉了,然后,哎,这个标签我不管啊,我继续会咨询里面的内容,因为他反正到到这一行他就读到了嘛,对吧?就读到了继续读这个是他 只不过就是说从这个代码的上面我做了个标记,对吧?我做了个标记啊做了个标记,那这个标记我用不用到?我不管,反正我就是有个标记而已嘛,对吧?这个节点为标记啊,如果说我想忽略这些全部的,我就直接到下面, 对吧?直接塞了得有点 come ok, 那么这是我们要注意到的地方啊这是我们要注意到的地方。 如果说,呃呃,假设假设我们这个地方,那那么单纯的一个沟土啊单纯的一个沟土,我们其实啊也可以。 呃,这是单纯的沟通啊,比如说这是 vivo 二,对吧?难道我们这个地方到了 vivo 二之后啊,我们后面,比如说我们又来了一个到 vivo 到 y 本了,那么我就又输出他,又输出他的编程,对啊,比如说我下面读到 y 本啊之后,后面我继续执行了,然后我沟通 y 本啊,那我这样的结果会是什么呀?我就可能会死掉啊? poor went 我讲一条 啊,读一万次啊,这个这个大家先不要管啊。 fake 这个大家代码先不用管,我看看会不会死掉啊啊没没死对吧?没死啊,就是因为我们刚刚加了这样一条代码 啊,我这个是不支持这个属性或者方法。 print go to it。 嗯, ok, 好,那么我们看到他是没有死掉啊,看到他是没有死掉,也就是说,呃,你如果没有这条代码是要死掉的,是要死掉的,我不不执行了。嗯, 呃,我们来看到,因为你看到啊,这个逻辑很简单吗?当你这个点击这个按钮的时候,先跑到 vip 二,对吧?这个地方,哎,跑到 vip 二之后 我继续执行下去,又跑到了外边,对吧?完了之后跑到外边,我执行了到这个这个地方,然后继续要执行下去,又执行了这一条,执行到这一条我又跑到外边啊,如此循环,如此循环,对吧?所以执行到这先 执行这一条,然后执行这一条,完了之后又又执行到这一条,对吧?这个地方过程我们就已经应该来说讲的很明白了,所以也就是说可以使用沟吐去构造一个啊,构造一个什么循环?哎 啊?利用。但是呢这个地方我们不建议这么做啊,其实就是可以利用沟吐呃的思想, 这只我只是给大家提供一个编程思想,对吧?啊?可以构造一个,呃循环语句, 是不是可以构造一个循环语句啊?对吧?刚刚已经演示过了啊,但是我建议 使用勾吐构造循环, 也不建议过多使用沟通啊, 哎,这其实不建议这么多,过多,过多的去使用沟通,但是我们要会,对吧?我们偶尔用到一下,因为我们过多的去使用这个沟通的话,我们就一会看这个地方的标签,一会看那个地方的标签,你会使得这个程序的 呃就是一个可读性会比较长啊啊,因为会使得 程序可读性变差啊变差。当然你如果自己认为没有这个 可读性影响啊,随便你用,对吧?但实际上用的一多之后你会发现啊要要晕了要晕了,整个程序你都不知道在执行什么东西了,所以要尽量的减少使用啊。那么我们其实还可以沟通呢,跟我们的这个昂 arrow 联合使用 go to 鱼啊报错联合使用 怎么样联合使用呢?这就报错啊。如何报错的时候呢?出错处理 应该是报座处理,出座处理那就很简单了,我们刚刚之前用的是,嗯 arrow 对吧? next 那我们现在就不用 on arrow is so next, 而是用 on arrow go to 啊标记,比如说 go to a arrow e 啊啊 arrow, 比如说就一二二一啊,然后我们这个地方定一个一二二一啊,然后怎么去处理他,对吧?啊处理一句 哎,当我发生错误的时候我就前往这样一个标签去进行处理啊去进行处理。那么我们来看到啊,假设第三个按钮啊,第三个按钮 这个地方我们叫做昂哎肉构图, ok, 那么我们这个 iro go to 是怎么样子的 哎,还是一样还是一样。我们来输出一个不成功的语句啊,比如说是一除零,一除零, 一出零,他这个肯定是会爆错的,对吧?当我 on arrow e r r o r 当哎 on arrow go to, 比如说一二二一啊,那么这个地方比如说我下面继续再输啊,继续再输,有金鱼 ok 啊,然后呢我们再说一个角色,我这个地方有输出很多啊输出很多对吧?刚才输出了两条吗? 啊完了,我们这个地方我们有定一个 l 一啊, 那么我们做个提示好了啊, mac you box 啊除法叫做除法啊,分母不能为零, 请重新设置,对吧? 哎我们这个报错的处理就很很就相当于是很理性化了啊,很为客户体验了啊哈假设我们这个地方啊,嗯 arel。 你看分母不能为零啊,你看这个地方输出也没有输出,对吧?输出也没有输出。那如果说 我们没有啊假设我们这个地方啊,那我没有报错怎么办呢?那这个地方可能也会应该也会提示 你看我不能为零,但是你看到这个地方第一个我输出了零点五啊,第二个我输出了这两个,但但是到后面的时候我们说过了这个标签我们会,我们是不会管他到底有没有 啊,到底有没有这个这种情况,对吧?那我这个标签大家说我能不能写到外面呢,对吧? 我能不能写到外面呢?哎也没有报错,对啊,但是他他就会认为你这个地方就没有没有定义了,对吧?所以你这个地方是要一套的东西啊,就写到一起一套的地方就写到一起啊,那么我们这个 这里那我这里有没有报错我怎么知道呢?对吧? 啊那这种情况下我只有这样子, 我踩飞,哎怎么不能为零直接到这里啊?跳过了这个输出,对吧?刚刚我想到一个什么问题啊,就说是当我这个呃 没有报错的时候啊,当我没有报错的时候我们这个地方就不要让他进行输出 对啊我就不要让他进行输出啊,当我有爆错的时候呢,我们来看一下啊这个代码调试, 那么代码调试很简单啊,第一步啊,要看到啊,第一步下一个断点,对吧?我们来看到这个代码调试, 第一步下断点,第二步呢就直接直行,第三步我们直接按 f 八啊,直接按 f 八,那么这个地方程序自然而然也有一个 ron 的一个提示, ron 的一个 a, 呃这个地方好像没写 f 八呢, 第八个 f 八,看到没有 f 八啊? f 八好,我们到这里面之后我们第八个可以用第一个 f 八啊,第二个叫做 step over shift 加 f 八啊,就跳过 f 八呢,就是他如果有调用函数的话呢,他会进入到这个函数的啊,呃那么这个呢直接就跳出了,比如说有个函数就直接跳出了函数, 那么我们这这里来, ok, 下一行下一行,你看到这里我们就 啊分母不能为零,他就提示,对吧?哎所以我们这个 l 标签啊其实有也有一点点的问题,对吧?也有一点点的问题,是什么呢?哎 当我如果没有报错的时候,我这个地方,哎我就变成也在提醒,对吧?所以这个标签只是仅仅只是啊沟通的这个标签仅仅只是为了什么呢? 啊?为了啊,当我什么样的时候啊,当我什么样的时候我跑到这个地方,对吧?当我什么样的时候我跑到这个地方完了之后,哎,我这个地方你如果如果说想要写的更加的,呃 嗯,怎么说呢?哎抱错了,对吧? 有没有报错?那你比如说是然后再做提示啊,然后再做提示,当我有发生报错的时候,对吧?那我这里比如说我定义了一个变量啊,定义了一个变量点 a s 波尔类型那么 a 就变成了 q, 对吧?哎好像也会一样啊也好像也是会一样。那假设呢?这一条我放到上放到上面, 呃好像也是一样的好像也是一样的。那这个地方所以呃当我发生错误的时候跑到哪一行这个这个东西啊你只适用于个别的地方啊。 现在我我们只是根据实际的项目需要的时候啊再去看。但是实际的需要到哪里啊?微笑子啊也也也想不起来啊也想不起来能够给你用到哪里啊。 但是我们要有这个意识当我发生报错的时候我可以直接跳转到哪一行代码或者说我直接把这个报错给忽略掉,对吧?哎就两种处理方式啊两种出错的处理方式。第三种当然是啊。你直接把这个分母 做一个排排除排除法吗?你知道这个地方有问题对吧?那你就直接让分母不要为零,对吧?这是三种处理方法。三种处理方法。 ok, 那么嗯 好,那就 九九九看一下啊就这些 就这些吧就这些吧。 返回过来 恢复一下。 message box 出错了, ok 那么我们应该来说这节课啊这节课我们所涉及到的东西。呃主要是第一个 当出错的时候怎么办啊?出错处理对吧?第二个就是说是与沟吐与距连用当我出错的时候我跑到哪个标签这里去啊跑到哪个标签这里去。那么我们而且发 显得这个标签的话是不能啊,他是不能就是说是放在另外一个地方, 比如说这个地方如果说我统一放在外面,我看看可不可以啊,哎,也是不可以的啊,只能放在赛博当中,他提示了,对吧?你看到只能出现在 n 赛博之前以及方形, 也就是说我们只能出现在赛博以及方形的内部啊的内部, 我们来看到只能出现在这个,倒是在外面倒没关系啊,也就是 on arrow resume next 这个勾吐只能出现在 勾兔啊紧勾兔语句啊,这个地方标签 go to 标签只能出现在方可行于 suble 内部,对吧?或者 sub 或者 sub 的内部啊。好,那么我们这个是要注意的一个地方 注意的一个地方,那么 ok, 这节课我们最后来做一个总结啊,做一个总结,第一个主要是一个出错思路啊。啊,对了,上 面还有一个地方没有给大家讲啊,就是说是一个调试调试步骤,给大家补充一下啊。步骤 调试步骤,第一个是指,哎,下断点,下断点, 断点,那么断点意味着呢啊,程序运行到断点的位置会暂停, 他会暂停啊,而不会再继续运行下去啊。第二个我们使用 f 八 f 八按键, 对吧?可以进入到程序代码中啊。 呃,如果没有,如果,就是说如果说你的程序代码里面已经没有在没有方可选啊什么的,那你就不会 进入到方格讯里面去,哎,对吧,你就直接直接直接跳转到下一行了,所以这里面他其实有有好几个,第一个叫做 f 八,第二个叫做,呃, shift 加 f 八,我们常用到的呢,基本是用到 f 八就可以了啊,当你想要跳出某一个萨博或者方格讯也可以用, 哎,当,当然,你这里点一下也可以的,对吧?比如说你这个地方点一下,好,你这个地方直接我不按 f 八,我直接点也可以的啊, 对吧?直接点也可以的,当然我们比较习惯性的啊,直接用这个快捷键就可以了,对吧?那这几个,这几个 step over 应该说是一行一行的跳过 啊,可以进入到 function 或者或者 sub 中去调试 啊,所以 f 八其实是最有用的啊,只要学会一个 f 八就可以了,其他的其实也也也不需要,也不需要你这个去学会啊。完了之后我们再比如说那讲也给大家讲一下啊,就是 而我们这里有一个 shift 加 f 八, shift 加 f 八的话呢,这里就是一个 ob 一行一行啊,执行啊,九十九十 是指一行行一行行代码执行。 那如果说你的这一个方形,我们因为我们在调用的时候也是,呃,根据前面的知识点啊,我们也给大家讲过,调用方可选调用萨宝,对吧?如何调用?因为调用的时候也只有一一一行代码,对吧?所以如果用 shift 加一 f 八啊,他也会一行代码直接调用啊,那么还有一个叫做 stepo, 还有一个叫做 step out, 对吧? ctrl two 加 shift 再加 f 八,那么意味着 啊,意味着什么呢啊?可以直接跳出方形 或者扫把啊,如果你的方式或者扫把里面写的代码太多,然后呢,你的里面的代码已经调试的差不多了,那你就直接可以调出嘛,对吧?你就可以直接调出嘛。啊,那这里面我可以给你大家写一个简单的方形啊,比如说是计算啊, calculate a as integr, b as integr, 呃呃,我们这个地方就没有用 返回制好了啊,直接 and the fox 啊,这是一种没有返回制的写法,对吧?我们直接输出 a 加 b, ok, 那么这个地方我们就可以进行调试了,比如说我们调用它, 调用它 calculate 一二一三二,那么我们直接单独的调用的话,我们就用,靠,对吧?没有返回直,只用直接用,靠,好,我们下断顶, 如果这个时候我们用 f 八啊,他会进入到这个地方,哎 啊,是我唱 啊,多多写了一个, 好,我们来看一下 f 八,他会进入到这个扫把,你看 a 和 b, 对吧?一 三直接数出来啊,直接数出来,一加三等于四,对吧?后面,后面自顾自还是要还是在运行啊?自顾自还是在运行,那么我们这个地方就直接进去了啊,如果说我们不进去怎么办呢?能不能不进去呢,对吧?不进去我们来看到这里, ok, 那么这一次我们让他不进去啊,不进去我们看一下啊,就用我们这个 stap over 啊,再 staple over, 对吧?那是不是就没你没进到下面啊? ok 啊,也,也,也可以, 对吧?也可以,完了之后呢?比如说你进入到里面了,我,我想直接跳出来了,对吧?我就用 step out 给大家一个个在演示啊,对吧?这个代码的调试其实非常的重要啊, 好,下面我们比如说先是 stap in, 再再配音啊,我进去了,对吧?但是我不想,不想直接出来啊,他可能是运行到第一行还是会运行啊, step out 啊,直接就出来,对吧?直接就出来了啊, step out, 那就是指这个作用,就指就是就是指这个作用在里面的时候直接挑出来,对吧?直接挑出来好好。 第三个啊,我们就是,呃,调试时候啊,鼠标放到电量上面 啊,可以看到,可以看到结果啊,可以看到 变量的值,对吧?可以看到变量的值,当然我们还有一种啊,我就是说我之前给大家介绍的一个,呃,我想看到我的变量的结果啊, 嗯,比如说这地方我直接想要在窗口当中去看到我变量的输出的结果,怎么用呢? debug, debug demon print, debug demp print a 加 b 啊, a 加 b, 嗯, ok, 我在这里面,那也就说在这个一米顶层啊,及时输出当中也可以看到啊,这也是一种方法啊, 对吧?即使输出当中我们也看到了,对不对?哎,也输出了这个 a 加 b, 哎,也就说在第三种啊,我们就可以 第四个也可以,也可以通过啊,通过第八个 printer 方法,在及时 输出控制台中看到啊,看到调试的电量的结果,对吧?两种方式,对吧? 调试的时候不是调的时候,调试的时候好,呃, ok, 那就没有问题了啊,说那么多应该就没有问题了啊,调试。 那么最后我们来把课堂总结一下,第一个我们讲到是出错处理, 出错处理 on arrow, 对吧? on arrow 有两种方式,第一种是忽略一行到下一行,对吧? on arrow 我们后面后面不写下去了啊,如果说想要到下一行 resume next 啊,继续下一行,忽略这一行错误,第二个我们叫做是, 呃什么呢?第二个我们要做是直接勾吐到一个标签,对吧?勾吐语句 使用啊,沟通以及的使用也可以使用于连用对吧?于连用啊,连用啊,与按 arrow 连用对吧?这两种,第三个我们就是 代码啊,调试步骤与方式这两第一个而出色处理,这这个我们应该是要掌握的啊,掌握的沟通呢肯定也是要掌握的啊, 掌握的代码调试必须掌握,必须掌握啊,必须掌握, ok, 那么 主要这节课我们讲了这三大知识点啊,如果说您觉得还可以啊,希望您 能够把我们的教程分享给您和您的朋友们啊,与与与他们一起来进行学习,呃,当然,呃,如果说我讲述的这个过程当中啊,有可能不 不可避免的会出现一些小问题啊,当然也不影响全局,哈哈哈哈哈。呃, 这个也欢迎大家啊,对我的一些教程做出一些意见建议啊,那么对我的教学上面也是有莫大的帮助这是 那么第二个呢,大家呢能够比如说有些问题啊,可以在我们教程下面进行留言啊,我看到了我会给大家一些回复啊,一些比较复杂的一些的,一些 比较稍微复杂一些的,这个问题呢我们就直接通过视频方式来进行回复,呃,等等。嗯,好,我是刘金玉啊,欢迎您收看刘金玉编程,请记住这个牌子,刘金玉编程,哈哈,那那么这一个 最后我们来一起互喊口号吧,这个就是用编程创造城市, ok, 创造美丽的祖国,本期的教程就到这里,拜拜。

浏览器自动化黑科技,大模型也可以控制你的浏览器了。今天解锁一套神仙组合 cloud, 接管 chrome, 不 用手动刷网页,爬数据,调试代码,可以直接通过大模型连接谷歌的开发者工具,进行样式修改,数据抓取,性能优化,不用复杂的配置编程,还是办公效率直接拉满。请点点关注,点点赞继续收看, 我们需要做一些准备工作。这是 chrome 的 devtools 的 mcp, 只要是可以联通 mcp 的 大模型都可以使用这种方法。我们可以看到这是能够支持 a cloud called climb, 然后 cursor, 我 们市面上大部分的大模型都是可以支持的。接下来就安装一下,这就是我们安装 chrome devtools 的 mcp 的 命令,它已经安装好了。接下来我们进入 cloud 执行 mcp 命令。我们可以看到 manage mcp servers 里边已经有了 chrome devtools, 并且这里边的状态是 connected 的, 它支持的一些指令包括点击关闭、页面拖动以及执行一些特定的代码。接下来我们 来简单做个实验,帮助我检查这个页面的性能。浏览器已经打开了这个页面,它会检查 这个页面的 html, css, js 以及图片。这是 cloud 帮我分析出来的当前页面的一个 性能分析,整体的评分还是挺高的,它也能分析出来,有百度统计,网络依赖数交互,性能布局,最后也提供了一些优化建议。接下来我们看一下它能否打通控制台, 帮我看一下控制台的错误信息。好,他已经获取到了我们的控制台的错误信息,并且他可以进一步分析这些错误的来源。这套组合太棒了,开发页面必备啊!那接下来我们来看几个实战场景, 帮我生成一个 tailwind 工作室的页面。我们可以看到右边已经直接打开了一个新的 chrome 页面, 这是在以前不具备的一个特性。感觉 dm 四点七明显比四点六要智能的多啊。它生成的工作室的代码完全没有获得人工干预,帮我把工作室的名称改为小林奶茶。 很快 cloud 帮我改好了,而且其实也不需要你手动来刷新,这也太贴心了。那么我们再测试一下,直接在控制台修改内容,并且同步到代码中,每一杯都是小林为你更新调试的。检查页面,我修改的位置更新到 代码里,看他能不能做到。我在开发者工具里边调整的内容,直接更新到代码当中,他已经看到了, 太棒了,你要是不出现完美这两个字,我都忘了你是 d l m 的 大冒险了。好了,完美了,让我们刷新一下好吗? ok, 接下来的实战场景二,我给大家上点难度啊。大家知道电商的网站他是最怕别人抓取的,所以他的抓取难度是很高的,对于我们开发者来说是一个噩梦。那么有了这样的工具之后,我们难度就降低了。当我在某电商平台 查找 iphone 十七 pro max, 参加国补的他帮我打开了淘宝,接下来他会分析页面当中的收手框,通过收手框进入到了 iphone 十七 pro max 的 国补页面。我需要买一个五百一十二 g 的, 请帮我在百二 生成一个表格,包含标题、店名,价格,付款人数,包括价格任务已经完成,数据提取完成。然后表格的文件我们可以看到从淘宝汇总的 iphone 十七 pro max 五百一十二 g 的 一个限购指南 总结下,这套组合拳的核心是 cloud 和 chrome devtools 的 代码联动,提供完美的执行环境,开发者不用 手动敲代码,直接把自然语言变成可执行的代码,效率翻倍。既然你已经看到这里了,如果这段视频对你有小小的帮助,那不妨点赞关注评论,这也对我持续创作 ai 的 内容有很大的帮助,谢谢 peace。

大家好,今天给大家分享一个双 pc 配合采集卡使用的时候,来直播的时候,或者录制的时候,音频怎么来传导或者传输? 之前给大家说了 v b 的 软件,那个软件有些用户设置不来,或者是说在使用过程中会有一些音画不同步混响一些问题,因为那是国外的一个软件,我们这边了解的不多,有些问题处理不了,那今天就给大家说一个比较简单的一个问题,简单的一个方法, 我这边还是没有两台电脑,我都用一台电脑来给大家演示这个方法。你在游戏电脑上也需要开一个 obs, 那 我们把左边那个 obs, 你 就把它当成游戏电脑的 obs, 右边是推流电脑的 obs, 那 我们现在先来设置推流电脑这边的 obs。 我 们首先要添加一个视频采集设备, 先把采集卡的画面给添加出来,画面有了之后,就如果你的采集卡是 g c 五五幺或者是 g c 五七三这种需要装一个驱动才能使用的采集卡,那你设置到这里就可以结束了,就不用再再添加其他的东西。 那如果你的采集卡是 g c 的 g c 五五幺季度这种免区采集卡,那你还需要添加一个音频输入 采集选择采集卡,音频选好是免去采集卡选好之后要把 o b s 的 视频采集设备静音隐藏, 这推流电脑设置完之后,我们打开一个音频软件播放一下,它是不跳的,这里是不跳的,我们现在就开始设置这个 o b s 游戏电脑的 obs, 原理其实也很简单,你的采集卡被你游戏电脑识别到的因缘其实就是一个因缘输出,那就类似于你的接一个耳机,或者是你的显示器音频都是一样的一个因缘。 那么我们先在这里来源里面添加一个音频输出,采集音频输出,不要添加错啊,是音频输出采集添加完之后点确定, 在这个设备里面选择你游戏电脑的耳机设备,那这个是我自己的耳机设备,我就选这个游戏电脑的耳机设备,一定要记住游戏电脑的耳机设备选好之后点确定,完了之后,我们把 obs 的 设置打开 音频,把这里的所有音频全部禁用掉,往下翻有一个监听设备,我们把这个设备选择你的五五幺,我现在用了这个采集卡,选择你的采集卡的音频设备,选好之后点确定。 我们鼠标右击一下音频输出采集火云器,这里的音频输出采集高级音频属性,我们把这个设备随便选,监听音频输出都行,随便选,选好之后 我们再打开这个播放器来看,看到没,这声音就传过去了,原理其实很简单,你还看一下这两边都在跳,就说明是一个反倒过去的。 原理其实很简单,那也就是说你在你游戏电脑利用一个 obs 先采集一个你的耳机的声音, 再再把它监听给你的采集卡,因为你的在监听你的采集卡电脑的右下角,这里选择你的耳机设备就可以了,不像之前的 v b 了,还要选 v b 设备,这里直接选择你的耳机设备,在这种情况下,可以尽可能的保证你自己听到的声音是没有问题的,就跟你单机直播是一样的,你单机玩游戏也是一样的。 还有就是麦克风,你因为这个 v o b s 这个软件还要监听一个麦克风出去,你不能在这里再添加一个麦克风,设为不小,因为你要再监听,我怕我没试过,但是我害怕 o b s 同时监听两个音频会不会出现一些不兼容或者干扰, 那我们麦克风怎么办?游戏电脑右下角小喇叭,鼠标右击这个小喇叭,点一下声音,除了音频控制器出来之后,我们点一下录制 这里,比如说这是我自己的麦克风,你的电脑就你自己的麦克风鼠标这里鼠标右击。游戏电脑的麦克风设备有一个属性,点开真听, 把这个真听扣上,把下面这里选择你的采集卡的音频,那这样子就可以把你的喂喂喂喂,就可以把游戏电脑的麦克风监听给采集卡, 这是一个方法,从这里监听是一个方法。还有一个方法就是你可以在 obs 这边在这里添加一个你的麦克风设备出来了,把你这个麦克风设备 也给监听到推流电脑你看声音也是过去的,两种方法都可以试,但是用 obs 这边比较省事,在你的音频控制器就不需要设置了,大家可以先用这个 obs 传麦克风传声音试一下 啊,如果没有什么声音问题,那就这么用,如果传两个声音有问题,那另外一个声音,那你的麦克风声音就从这里设置,从这里监听是一样的。

好的,那么亲爱的同学们啊,那么我们今天哎,又见面了,现在的话,我们的时间是北京时间 二零一八年十月七号晚上十点钟,那么我们来加更一期这个 list 空间,那么顺便呢,我们来讲一个一个比较典型的问题,叫做求追值的这么一个问题, ok, 那么我们直接进入到正题了,废话不多说了,我们尽量节约时间。 首先我们来讲一下这个 list 空间的使用啊, list 空间,其实之前我已经有一节讲过了,他的一个正三改啊,正三改,那么我们今天呢,简短的来把这个空间基本 使用来讲一下,那么这个空键啊,往里面添加,我只稍微点几遍,添加一项啊,添加一项啊,我们使用的是什么呢? add item 函数啊,那么移除啊,移除一项, 移除一项啊,用的是 remove item 函数啊, okay, 添加移除有了,对吧?那么我们来获取啊,获取一项,我们使用的是 list 啊, list 括号,所以啊,所以中间是,所以, 那么这个锁引呢?锁引跟我们的数组是,这里是跟我们数组是一样的啊,也是从零开始 啊,零开始第一个,这里面的第一项代表啊,所以是零的这一项啊,所以是零的这一项。 ok, 掌握这么几项的话,那么我们基本上这个 list 就可以解决了啊,就可以解决了,那么我们来直接进行一个实战,这样一个 list 到底是一个什么样的东西啊?先来看这个 list, 那我们来做一个案例, 那一个案例的话呢,我们就先录录啊,先来录录一下啊,这样先做一个 list 的 list box 案例, 这是一个啊,录录录录数据啊,录录数据管理啊,录录数据管理。 ok, 我们马上来很快速的做一下,很快速的做一下,因为这个 list box 空间啊,使用起来相对来说也比较 简单啊,相对比我们那些烧脑的东西,那要简单的多了啊。好,我们来开始开始,首先第一步还是一样,保存,千万不要忘了啊,保存不要忘了,还是提醒一万遍啊,一万遍,不厌其烦的提醒,哈哈哈,好,我们来看到。 好,那么我们这个是数据管理啊,我们比如说是一个数据管理的这么一个东西,那么什么数据呢?好,左侧,我们之前用到了一个叫做这个啊,叫做这个 啊,这个叫做什么? free 空间,对吧?啊?数据区域啊,数据区域,那么我们把一些东西呢就放在这里作为一个简单的整理啊,好,我们这边呢就用到一个 list box, 就是哪一个呢?就是这个,看到没有?我鼠标放上去之后 出现的是这个啊,是这样一个东西啊,我们放过来啊,放过来,看到吗?我们是这一个东西叫做 list box 啊,我们来把 ppt 当中来加注一下,加注一下 list box 啊,这个东西就是一个 list box。 ok, 我们来怎么用啊?点击 list box 之后呢,我们直接在这个地方拖选就行了啊,拖选,拖选之后,我们大概比如说他是这么宽,那么这个里面的数据呢?其实是一项一项一项一项的啊, 一项一项一项一样的,我们来通过代码待会来添加一下啊,呃,比如说我们这是这样子吧,这样子吧,啊啊,这样子。然后我们待会来录录数据啊,来录录数据, ok, 我们下面 来录录数据,比如说我们怎么录录呢?就这样子录录啊,比如说这个是我们的数据,对吧?啊? 这个是,比如说是输入啊,输入啊,我们来简单的做一个,快速的完成,做一个,那么输入,比如说我们默认不要有啊,然后呢,我们点击 ok, 对吧?啊?点击这个按钮之后呢?我们就录录录录, ok, 那么录录呢?我们这样子,刚刚我们用到了一个叫做什么呢? add item, 对吧?是不是 add item? 好,我们来 直接双击这个进去啊,双击这个进去,我们把东西直接录录进去,怎么来录录啊?首先它这个叫做 list 一啊,名字叫做 list 一, 那么怎么录入进去呢? list 一的的 add item 嘛,对不对?它有一个 add item 这样一个项,然后呢我们直接空格啊,空格,空格啊,空格空格就可以直接输入它的参数了啊,那么如果按照这里呢,这样子应该来说也是可以的,比如说我们输入, 那么输入的是什么呢?是,是不是这个?是不是这个啊? text 一, text 一里面的东西啊? text 一里面的 text, 是不是?好,我们来看一下 会不会有效果?比如输入一二三进去了,对吧?一二三一第二项,哎,每一次也就相当于是每一次 add item 啊,我就会添加一项,对吧?我就会添加一项,那么我们如何来啊?呃,如何来 那个移除指定的项呢啊?如何来移除指定的项呢?我们旁边比如说,呃,再加一个,再加一个啊,再加一个按钮,比如说是删除,对吧?好, 移除,那就移除啊,移除,那么移除呢?我们应该是要移除我们指定的一项,对吧?指定的一项 啊,我们待会移除他,我们刚刚刚说过了啊,移除我们用的是 list 一啊,我们先把它代码写好啊, list 一的 remove item, 对吧?比如说我们移除第一项,第一项我们是零。 list 一 啊,第一项我们是零,比如是一,二三啊,好,四五, ok, 我们来移除第一项。移除是不是就是移除了前一项啊?移除了 第一项啊,移除了第一项,那么我们这个就是一个移除的功能啊,就这就移完了吗?他就没了,对吧?这就报错了啊,所以我们这一个地方我们就叫做移除,移除, ok, 我们 那么如何来移除指定的项呢?那首先我们得知道啊,我们当前选中的是哪一个项,对吧?啊?呃,那么, 哎,我们来检测一下,对吧?检测一下,检测一下什么呢?当前我选中的是哪一项?我们来看一下啊, 当前当前选中项啊,当前选中项是哪一项?好,当前选中项,应该来说是获取啊,就是当前选中项,所以,所以 是哪一个,对吧?缩影是哪一个?好,我们来点击它的时候呢?我们待会来获取啊,那么这一个我们没有在我们之前的一个地方给提过,我们直接先来获取一下。之前没有提到啊,其实它是什么呢? list index? list index, 我们来把它 message box 一下啊, message box 一下, 呃,这个好像我们还没学到,哈哈,那么这个我们补充一下吧。补充一下,那么我们补充 啊,补充一下,补充一个函数叫做什么呢?提示函数。 message box 啊,叫做什么?信息提示函数啊,那么 用来啊,用来提醒我们啊,我们当前的 指定的信息,指定的信息,那么使用方法是什么呢?使用方法就是 message box, 然后呢是我们文本,文本就可以了啊,最基本的使用方法。最基本的使用方法, 方法就是啊, message box 啊, message box, 然后呢是双引号支付串 字符串,那么这是最基本的使用方法。 ok, 那么我们其实还有更加多的使用方法,我们这里就暂时休息,暂时先不提了,暂时先不提了,这些先学会我们一个基本的使用方法就可以了, ok, 我们来录录一下啊, 一二三一二三四一二三四五, ok, 我们选中这里的话,我们应该是返回的是一了,对不对?哎,这是一对的,那么我们选中这里应该是零,哎,这是零,那么我们选中这里之后应该是什么?二,对吧?零,一二,那么我们 就知道了,这个是我们,就相当于是我们当前选中的是第几项啊?选中的是第几项,那么我们来把它放到这里之后会是什么样子呢? 哎,我们把之前这个零改掉,对吧?零改掉,那么我们就可以想要移除哪一项就是移除哪一项,对吧?一二三四一二三四五,一二三四五六,一二三四五六七, ok, 那么比如说我们想要移除一二三四 五,对吧?点击移除就可以了,是吧?我们因为把这个改成了当前选中项啊,所以我们把这个 listing dex 给它加上去啊,加上去刚刚漏掉了, ok, 那么我们加上去 list index, 这个也是我们需要知道的啊, list index 是什么呢?是指获取当前选中项 的缩影啊,获取当前选中项的缩影,这个就非常的有用了,对吧?这个就非常的有用了,当前选中第几项我就知道了啊,好,那么我们,呃,在此之际啊,在此之际,我们来求最大值,最小值啊,最大值,最小值, ok, 我们比如说这个地方我们来放最大值,对吧?啊?最大值啊,然后呢我们再来一个地方,我们叫做最小值, 最小值,那么我们最大值呢?我们显示在这个位置,然后最小值就显示在这个位置, ok, 我们最大值,最小值默认情况下是没有的,对吧?默认情况下是没有的,那么 我们来下面来直接点击获取啊, ok, 我们这边叫做获取追值啊,获取追值,一旦点击获取追值按钮之后呢,我们我们就让这样一个 呃,程序啊去判断,从这里面去进行判断,判断我们 list 当中的一些数值,它里面的最大数值是哪一个?最小数值是哪一个啊?这个可能就相对来说稍微 小小的烧一点点脑啊,那么但是呢,我们掌握了前面的,前面我们应该已经学过了,放语句啊,已经学过了,呃,数组,那么这这样子呢,我们掌握了之前的几期的一个基础之后,那么我 我们来做这样一期,应该来说问题也不算太大,只是一个思维逻辑的过程啊,思维逻辑的过程, ok, 我们这里面呢首先要知道的就是什么呢? list, 点 list 对吧? list 一点 list 啊,首先我们来往里面录录数据,录完之后呢,我们来把它来进行输出,首先我们来做一个输出吧,最为简单的来做个输出,比如说 怎么做输出呢?啊?点到这个锥子里面啊,锥子里面获取,锥子里面我们先不获取锥子,我们先做一个输出。怎么输出啊?怎么一个输出法? ok, 我们来 把 list 一里面所有的值给输出来,好,我们首先声明一个变量 i, 对吧?声明一个变量 i, 我们要用 for 语句来来输出出来啊。 ok, 我们, 呃 list i integr 好了, integr 好,那么我们来继续用 for 一句 for 一句什么呢? i 等于零初始化,对吧?然后 two 什么呢? list 一的啊? list list 一的 list count 啊,他就有多少项,那么这一个我们要需要补充一下,这一项我们叫做 获取啊。呃,获取一共啊,一共有多少项啊?我们用的是这个使用 list account 啊,使用啊 list account, 对吧?使用 list account 这样一个。呃,属性 啊,使用 list count 这样一个属性啊,我们来看到啊,一共有多少项?我们来直接用个按钮好了一个呢?一共 直接用个按钮, 我们来直接写一下啊,有几项啊?有几项?几项? 有几项?我们点击这个按钮之后呢?显示有几项啊?有几项啊?好,我们来直接 message, 哎,我们直接来写啊,有几项? message box, 对吧?然后 list 一的 list count 啊,里面有几项,我们来看一下啊, 好,输入第一项,一项两项,三项四项,应该一共有四项,对吧?点一下有四项,对吧?是不是有四项? ok 的啊?没有问题,那么我们就是这样子的一个东西啊,有就是 好,那么这个就是有几项,对吧?就是有几项,那么我们有几项?知道了之后呢?我们直接来来,比如说获取第二项啊,获取第二项,我们来之前讲过的一个叫做 list, 对吧? list, 我们来再做一个叫做啊,我们比如说是获取第二项啊,获取第二 想啊的值啊,获取第二项的值,假设那获取第二项的值的话,我们这里面应该写的是什么呢?我们知道获取第几项的值,我们来看一下啊,这里面 获取一项的值,对吧?我们使用的是获取一项的值,应该是啊,我们使用 使用 list 方法啊, list 括号当中有一个缩影啊,第二项我们来看一下,数组当中的第二项实际上就是我们的第几个零一,是不是就是第一个啊?实际上是第一个啊,第一个就是这里面的第二项啊, ok, 时间就是 list 一的 list 括号一,对吧,这就是获取第二项的指 message box, 我们让他来显示一下啊, message box 空格,然后是我们直接一个文文本或者数字都可以啊,就直接字不串 啊,如果其他的东西是会转为字符串的啊,我们我们这边写了啊,其他的如果说我们是数字啊什么的也会被转回转,转换成字符串,所以让会让他显示出来,虽然我们这里看不出来是 字符串双引号的形式啊,但是这个东西最终这个结果也会被转换成字符串的形式被显示出来。好,那么我们来直接获取第二项啊,如果说默认没有的话,我们肯定没法获取啊,我们首先先输入一下啊,一二三四,一二三四五,一二三四五六七, 好,获取第二项应该是一二三四了,对不对?我们点击一下是不是一二三四, ok, 没有问题啊,说明这个测试是成功的,那么我们直接获取第几项我们也知道了,那么我们每一项其实是不是就都能获取啊?我们来接下去利用这一项,这个叫做每一项都能获取的这一个啊,我们来来求追值, 好,我们通过一个循环来把这里面每一项都能够获取出来,对吧?每一项都能获取出来啊? list step 一啊,那么这一个应该来说是到今到今天我们应该要要能 写的比较六了啊。 next i, next i, 那么到这一步之后啊,我们实际上这里面做的是什么呢? i 从零开始,所以就是从零开始,我们来进行获取 list 一的 list, 对吧?括号 i 的话呢,我们这个时候就获取当中的每一项了。 i 等于零的时候,我们获取的是这里面的第一项。 i 等于一的时候获取这里面的第二项。 i 等于三的时候获取这里面的 加,哈哈哈。哎,谁三的时候获取这里面的第四项了啊?应该是因为我们这个每一项是,所以是从零开始的,对吧?是从零开始的,所以我们的这个数组啊,同学们一定要记住数组的,所以是从零开始的, 默认是从零开始的啊,默认, ok, 那么我们继续来,比如说获取里面的某每一项,那么获 去里面的每一项呢?我们通过这样一个东西来获取啊,是吧?获取出来之后,我们来之前讲过一个,哎,函数的一个转换,那这个是什么东西?这个是一个值得转换,对吧?值得转就相当于是这里面是一个支付串,然后呢,我们把支付串转换成一个一个什么数值 v a l 函数啊,转化的结果就是一个数值,那么这个数值,对吧?这个数值我们是 是需要去进行比较的,然后因为我们为什么进行比较?我们求最大值、最小值,我们就是要进行比较嘛,对吧?是不是就是要进行比较? ok, 那么我们, 呃,比如说我们来声明两个变量,一个变量叫做最大值,一个变量叫做最小值点, max as in tiger 啊,这是 是最大值点 mean s integr, 这是最小值,对吧?那么这是最大值,这是最小值。那么如何来用这个最大值、最小值呢?其实就比较简单了,就是通过一个 if 语句判断就可以了啊? if 语句判断怎么来判断啊?我们讲我们这里面声明之后 啊,我们这里面声明之后,这个我们默认情况下,我们给他一个值,最大值或者最小值,他是就给他第一项,比如说假设,我们啊假设,嗯,我们把这个逻辑写一下啊, 锥值的逻辑案例分析,求锥值,对吧?呃,求锥值,那么我们求锥值的逻辑写一下,求锥值啊,呃 呃,我们来求追值的逻辑分析,我们来写一下啊,那么首先就是要啊,第一步要循,就是说循环便利, 对吧?循环便利,比如说数组啊,循环便利一个数组,对吧?就相当于这个类似的,其实就是一个数组啊,其实就是一个数,缩阴是从零开始的,对不对?好,那么循环便利一个数组啊,这是第一步,第二步啊,是什么呢?啊? 啊?我们这个应该是第二步啊,第二步啊,我们第一步是什么呢?第一步应该是,哎,第一步的这个逻辑应该是啊,默认啊, 默认声明最大值、最小值啊,都假设为第一项啊,我们假都假设第一项,他是最大值和 最大值和最小值啊,然后呢?我们开始循环便利,循环便利,那循环便利的过程当中我们要需要进行一个判断,假设我们便利到的这一项啊, 便利道的下一项比我们这个最大值要还要大,那么我们这个最大值就是什么呀?当前便利道的这一项就是就是我们需要找到的最大值,是不是啊?那么我们就是呃,判断,判断便利道的当前 前。笑啊,是否大于或小于啊?我们就一一个个来吧,是否大于,是否大于? 这个怎么是否大于默认的最大值啊?如果是,那就怎么样?那就说明当前项为 需要找的的最大值,对吧?啊?然后一直,继续, 继续下一次的便利啊,继续进。什么叫便利啊?便利就 是循环到下一次,对吧?就是把这个数组全部给他循环完成啊,然后继续下一次的这个便利,那么继续下一次的这个便利, 然后继续判断啊,继续判断啊,继续判断是否是,是否是最大值,对吧?是否是最大值?直到啊,直到,直到 便利完成,直到便利完成。找到啊,找到 需要找的最大值啊,就这个意思啊,就是,那么这是我们找最大值,那么如果要找啊,找最小值怎么样 啊?过程是是类似的啊,只不过判断啊,判断的时候什么样?只不过判断的时候就是呃,判断啊,比 默认的最小值还小的,对不对?还小的值是否存在,对吧?如果还比默认值还小的值还能还是存在的情况下,那么我们当前便利到的这个值就是 最小值,对吧?是不是这样子一个意思, ok, 那么我们来啊,啊,那么最后一步嘛,就是把啊找出的追值数 输出啊,输出即可啊,最后就输出来嘛,对吧?啊,好,那么我们来看到,首先我们来,比如说球啊,我来注个视啊,注个视, 求最大值啊比如说我们来求最大值,那么求最大值怎么求呢? if, 判断一下 if, 那我们先先第一步,我们是要默认就给个值啊, max 等于 list 一的 list 括号零, 对不对啊? minimum 也也默认让它作为是第一项作为最小值啊,好了,那么最大值最小值我们都有了,对吧?都有了,我们把它转换成数值啊,把它转换成数值也要函数转换一下,那么这样子我们确保不会有错啊不会有,确保不会有错了, 对吧?这个肯定是数值类型的,我也要转换完成之后,那么这些我们都是,呃本节课所有学到学的知识点啊。嗯 啊,我们之前所有的期数都是讲过的,如果说看的时候啊,同学们啊,有同学存在着疑问的话,请你翻看前面的几期翻看前面的几期, ok, 那么我们继续 vivo 函数我们来。呃,获取到当前这一项之后啊,对吧?我们比较一下当前这一项是否要比我的最大值默认的最大值还要大, 对吧?如果比我默认的最大值还要大怎么办?我们就做一个什么负值啊,就做一个负值,因为这个值就是我们的最大值,是吧?那么我们就做一个负值,把它负值 直过来复制过来, ok, 那么这是求最大值,是吧?那么求最小值是什么啊?是不是类似的道理啊?求最小值,求最小值,那么我们就是把这个反过来就可以了,对吧?反过来就可以了。 if 啊,我们直接写了啊,类似的一的 list 括号,我们当前的这个值如果是小于我的最小值,比我最小值还要小,那么我们就说明这个最小值就是我当前的这一个值,对吧?是不是这样子好, 写完啊,打完收工,打完收工, ok, 我们最后来输出这个最大值和最小值啊,最大值我们放在哪里呢?是不放在这个 label 四,最小值放在 label 五,那么我们就是 label 四,哎, label 四的 caption 等于最大值, label 五的这个开发讯就等于最小值,是不是? ok, 那么我们这样子就解决了,这是 label 五,这是 label 四嘛,对吧?好,我们来看一下啊,来看这里面,比如说随便输入几串数字啊,露露,这是十二,然后是 三千多啊,四四四五五五,然后呢是二三二,呃,二二四,然后是 五,然后呢是六六六六啊?随便录, ok, 录完,那么这一串数字当中我们哪一个是最大值呢?应该是这个,对吧? 六六六,应该是最大值啊,然后呢,我们这个十二应该是最小值,我们来获取看一下,哎,最小值有点问题,最大值是对的,对吧?最大值是对的啊,那么最小值的问题在哪里呢?我们需要可能需要检查一下啊,需要检查一下。他为什么会显示出来是个零, 对吧?哦,为什么会显示出来是个零呢?啊?当这说明,这说明我们这里面在进行复制的时候,我们这里面某一项肯定是零嘛,对吧?肯定是零。 ok, 我们来仔细检查一下,仔细检查一下, 这是第一项,第二项、第三项、第四项,怎么去检查?怎么去检查?我们其实也是有技巧的,我们直接用调试的方法去进行检查,那么其实 之前我有一项啊,有一有一期我是讲,呃,哦,应该来说是之前的一个案例分析大杂会当中我们有一个叫做呃调试,那么这里面呢?我之前有也有讲过简单的一个调试方法啊,对吧?也就也有讲过简单的调试方法, 嗯,我们先直接看看啊,直观能不能看出来,看不出来的时候我们就直接用调试的方法就可以了,这个我们默认情况下是最小值,对吧?这是最小值。然后呢我们这里 来判断最大值,如果最小值比这个值还要小,那就是最小值,就是当前这一个好像来说,感觉好像没有什么问题, 对吧?好像感觉没什么问题,那么我们直接一点啊,直接一点,直接来 调试一下,一步步看下去好了啊,我们来看到, ok, 首先来录录录,录一个值啊,这是十二,然后随便录一点,嗯, 好,随便录一点,六五五六六六六。 ok, 那么就这些吧,就这些吧,我们来求追直,问题啊,求追直。 ok, 我们来看到啊,求追直, 求锥值,这个时候我们直接来看我们的这样一个代码啊, 好,我们来看这个代码,那么这个代码当中我们一步一步看下去啊,一步一步看下去啊,好, 呃,这个时候我们来便利其中的每一项,对吧?便利其中的每一项。这个一共是五啊,这个一共 是五,这里面我们有五项,一二三四五。那五有五项的话,我们最后一项要不要便利呢?一二三四五嘛,一共有五项嘛,对吧?一共有五项,我们这里面所引用五,对吗?那肯定是不对了嘛,对不对啊?所以我们这里面应该是要怎么样呢?哎,结果就来了啊, 结果就是什么?哎,这个地方应该要减一,是不是?我们最后面这一项应该是四嘛,对不对?我们来再看一下啊,十二露,露一下啊,二三二,然后是四三四,然后是 就说是再录一个啊,五五五六六六六六六六。 ok, 我们录录完成,点击获取追值。好,没有问题了,对吧?没有问题了,最大值为六六六六,最小值为十二, 小智为师啊,刚刚为什么会有这个一个问题呢?因为我们我们 list 五的时候,他其实没有的,没有他就默认置为零了,所以他认为这里面有个零,对不对?那么我们这里有几项其实是清楚的,应该是获取的时候应该是总共的 list 减去一,作为他的缩影,因为他的最大缩影值是总共的项数,减去一对不对? ok, 那么我们今天的话啊,就做了这么一个数据管理,求锥值的啊,并且我们来求了一个锥值,这么一个问题啊,这么一个问题,这个问题呢,应该来说也是非常的, 怎么说呢?非常的,呃,重要啊,非常的重要的一个问题啊,求追值。好,我们再来看到有没有比如说这里复习复习一下,你这个案例有能不能 会录录呢?录录之后我们主要是要做一个啊,添加移除啊,对吧?添加移除, 最后总结一下吧,总结一下吧啊,课堂总结,课堂总结,看看你有没有学会啊。第一个啊,就是掌握 啊,需要我们掌握的掌握 list 啊, list box 空键的啊,增加啊,用 add item 函数,对吧?删除啊,移除,应该来说删除其实就移除啊,删除 remove item, 对吧?然后是, 哎,获取,对吧?获取啊, ok, 获取其中的某一项是不是?哎,好,第二个呢就是求, 呃,应该来说是应该,第二个应该是就是比如说便利啊,便利 list box 空间啊,如何来便利,对不对?这是我们第二项要掌握的,第三项我们要掌握的就是说是求 追值,求最值问题,求最值问题啊,我们是如何来求?首先第一步我们要默认一个默认第一项作为最大值或者最小值,然后呢把我们每一项 都跟我们这个默认的第一项去进行比较,如果比我们默认的第一项还要更大,对吧?那我们就是 便利到这一项就是最大值,如果更小呢,就是便利到的这一项,是哎,是是最小值,并且我们是最小值之后或者最大值之后呢?我们要把 便利大的这一项要把它复直复给我们的最大值和最小值,那么以便于我们下一次在便利的时候呢,我们去跟最新的这个最大值和最小值进行比较,对吧? ok, 那么 我们本堂课的主要的内容啊,我不知道你听的啊,是否啊?怎么说呢?是否是否啊?哈,效果如何啊?效果如何我不知道啊啊, 你得给我留言,这样子我才能够清楚到底啊。您,您对我的这个这个这个吸收的效果啊?课堂吸收的一个效果。呃,好,那么 感谢您的关注啊,感谢您的关注。好,那么我是刘金玉啊,刘金玉编程,编程创造城市,你也可以在百度当中找到我。好,那么我们,呃,就就这节课啊,就到这里啊,就到这里,拜拜。