粉丝984获赞3044

piffin 每日学一个小知识,今日学习 excel 函数。 excel 函数的作用是执行字串形式的 piffin 表达式,返回表达式的计算结果,可将字串转换为对应数据类型或执行简单运算。 使用语法固定写法 excel expression globals 核心参数 expression 为合法的 piffin 表达式字符串。注意要点是,一禁止处理不可信输入,存在代码注入风险。二 仅能执行表达式,无法执行复杂语句,如 for 循环。下面将十秒案例展示,稍后提问。 提问执行一 well 十二三会返回什么结果?知道答案的小伙伴把答案打在评论区。

你知道这样的操作是怎么实现的吗?今天带大家解锁 python 中一个功能特殊的内置函数 excel 函数,它的核心功能是将字幅串当做有效的 python 表达式进行解析并执行。简单来说就是把原本是文本的代码变成真正能跑的代码函数。语法包含三个参数,其中 expression 必选参数表示需要执行的字幅串表达式 可访问的局部变量。 locos 可选参数指定局部作用域限制表达式可访问的局部变量优先级高于 globos。 举个简单的例子,正常情况下,一加四用引号括起来就是一个字串,打印出来也只是文本。但通过 evo 函数,它会被当做 python 表达式执行并得到结果。五、 需要注意的是, evo 函数仅能执行单个 python 表达式,无法直接运行代码块。虽然 evo 函数功能强大,但也存在较高的风险。如果执行的字串来自不可信来源,可能被注入恶意代码。因此,日常开发务必通过 colorbox 参数和 locos 参数来严格限制可访问的变量和函数。

part 既然这么简单, time 时间模块在 part 中, time 可以 实现让程序等待、计算、运行时间等功能。它是 part 中的一个模块,生活中的倒计时秒表有些冷却时间都是用它做的。 视频最后小张会带大家制作一个倒计时炸弹答题计时器当我们需要使用时间模块时,则需要使用 input 的 导入 time。 而时间模块中又有许多的功能,计时、倒计时、读秒等等。先用 print 打印开始这里我们需要使用 sleep 功能,它的意思是等待 这个时候,程序就会先打印开始,然后等待两秒再打印结束。那如果说你想计算一段代码跑了多长时间,比如循环一百万次需要几秒, 这个时候我们还用 sleep 就 不行了,需要换一个 time 中的功能, time 点 time, 我 们先写 stop, 后面跟上 time 点 time, 它会返回从某个时间点到现在经过的描述, 我们叫它时间错 summing 一 百万是一段 python 代码,它的作用是计算从零加到九百九十九,九百九十九的总和。可以最后我们再写上 end time, end time 结束计时,这里就会从 start 开始到 end 结束, 最后用 print 结束时间,减去开始的时间,就能得到耗时时间了。 sleep 和弹幕的区别就在于, sleep 是 让程序等一会,而弹幕是看表 返回当前时刻的描述。弹幕模块里还有一个功能叫 log 弹,它可以把描述转成我们能看懂的年月日时分秒。 比如你想知道当前是几点几分,就可以用这个运行,得到的结果就是现在的时间。接下来我们讲实操案例, 题目一,让程序倒计时五秒,每秒打印一个数字。题目二,只做一个答题计时器,用户输入答案,如果超过三秒没输入,就提示超时。 首先我们做第一个,先用 import time 导入随机模块,用 for 循环三秒倒计时从三开始,然后用 print 打印出导数的数字,再用 time sleep 每打印一次,等一秒钟循环结束后打印出轰 fire in the hole, 运行之后代码就会开始倒计时,最后打印出内容。 接着我们制作一个答题计时器,这里不能用史蒂普直接做,因为 input 会卡住,等待用户输入,没办法同时计时,我们可以用另一种方式记录开始时间,用户输入后计算耗时,如果超过三秒就提示超时。写好了以后 我们点击运行,如果你超过三秒才输入,就会提示超时。超级简单,几行代码就搞定了。作业来了,请你写一个十秒倒计时,然后打印游戏开始的代码,记得交作业下课。

大家好,从今天这条视频开始,我将带大家从零起步,系统学派档,同时还会详细讲解各类编程语言知识, a x c 创作工具用法。这套内容我整整筹备制作了三个月,总时长超三百分钟,全程干货无废话, 不管你是纯零基础小白,还是想查漏补缺、巩固基础,都能轻松跟上。学习过程中,但凡你有任何派脏相关疑问、操作难题,或是想深入钻研某个知识点,都可以直接在评论区留言,咱们一起探讨,共同进步。现在派脏已经是超级热门的编程语言,应用场景极其广泛,办公自动化、数据爬取、数据分析几乎覆盖所有使用场景。 很多同学都好奇,这些高价值派脏项目到底是怎么实现的?从这条视频开始,我会一步步带大家落地,从派脏基础环境搭建,到需求分析,再到调试运行技巧, 最后完成完整项目。实战视频里用到的所有学习工具、实战案例,圆满五百练习完整学习路线。还有派藏热门方向、自动化、数据分析查重等的配套资料,我都统一整理好了。有需要的留言在评论区敲三个七,或者来我的公众号公开群,可以直接进群免费领取。今天要讲的内容是派藏文件基本操作全面了解 好,那么具体文件是什么呢?文件的概念是什么呢?那像我们接触电脑比较多的同学,他会知道我们 windows 加字母一这个快捷键是可以快速去打开文件资源管理器的,你们可以去试一下,就是可以打开这个窗口。这个窗口是什么呢?它可以定位到你当前计算机,当前的电脑,所有资料,所有文件所存在存储的位置。 c 盘, d 盘, e 盘、 f 盘,对吧?一般运行内存,你看这个运行内存,它上面有个 windows 的 logo, 说明他是个运行运行盘符。其他的这个盘符的话,是啊,程序在运行的时候不会去调用的, 只会调 c 盘的空间啊,只会去调 c 盘的空间,那有时候就是我们在打游戏的时候出现,突然就出现啊。运行内存不足,其实就是 c 盘。 c 盘啊,爆满了啊,已经爆红了,出现了一个情况啊, ok, 那么 windows 加二打开的这个弹窗呢?你随便点一个盘符进去,或者你随便去点一个文件夹,我去点个文件夹啊,我,我随便找一个,我去找个桌面里面的这个文件夹叫软件包。然后进去之后呢,你可以看到很多很多的文件, 你可以看一下,我这里的这个文件类型就比较杂啊。文件呢?首先它是有后缀的, 它由两个部分组成,文件名和文件后缀。看见没有文件名和文件后缀,文件名就讲这个文件叫什么名字,那比如说 python 笨记手册, python 常用单词,那这个就是它的名字。文件的名字后缀,那比如说这个点 e x e 啊,再点 pdf 点叉 l x x, 对 吧? 还有这个点叉,妹的,但这个都是属于后缀。文件名是决定了这个文件叫什么名字,文件的一个后缀格式决定了这个文件的类型是什么。那如果说是 p n g 的 话,说明它是个图片文件啊,你看一下,你看一下它是不是有个悬停的,这个解析告诉你 项目类型是 p n g 图片文件,对不对?还有就是这个 ex 一 ex 一 呢?没有解析啊, 好,有些有去进解析,这个 g p g 的 话也是图片文件, pdf 的 话它是属于文本文档啊, wps 的 pdf 文档里面是用来去存放,就像一些啊文字内容的啊, 这个是表格,这个是表格啊, x l s x 的 一个工作工作表啊,通过 excel 去打开的一个表格,表格数据好,可以看到,可以看到对于文件的一个解读 是怎样的呢?文件,首先他不会不会像我们这个呃程序当中的一个数据一样,他没有那么单薄,他会将数据,他会将数据存储在一个载体当中, 文件他是数据的文件,它里面都是用来去存储数据的,只是说数据不一样而已,对吧? 你比如说这个批发文件,它里面就是写代码的吗?是不是它也是有文件名和文件后缀,那它是数据,是我们写的代码的一个载体存放的一个单位,一个单位概念。好,那它呢,是由 文件 名和文件后缀组成,这个后缀是这么读的啊,后缀这两个字啊,比如说你像哎这个 python 点 p y, 那 么 python 就是 文件名啊,点 p y 呢?它是后缀,是后缀啊,决定了决定 咱们这一个文件的类型,点 p y, 那 就是 p y 文件啊,只能通过拍叉我们去打开的,那像一些表格就只能通过它 wps 或者 excel 去打开就是好。然后呢,再讲一个同学们不知道的这文件 的类型,文件和非二禁制的文件。 什么叫二禁制的文件呢?和非二禁制的文件,二禁制文件它是看不到数据的,文本数据,非二禁制文件,我们是能够去看到文本数据。 举个例子,你像我们这个 p y 文件,是吧?双击打开之后,里面是有哪些代码,哪些中文解析词啊?啊?我们是可以用眼睛看到的,那这个就是 非二禁制文件,能够去看到文本数据内容的。再比如说,哎,这个 markdown, 这个点, md, 这个 markdown, 老师写课间的一个文件,那它打开也能够去看到一些文字啊,在里面,那它也是属于非二禁制文件。再比如说 txt, 对 吧?双击打开, 老师经常布置作业的一个文件格式啊,也能够去看到内容啊,对不对?还有啥呢?还有啥?还有 pdf, word 文档、 excel 表格,那都是能够去看到文本数据的,通通是非二禁止文件,那二禁止文件呢?看不到文本数据。 如果能够理解的话,帮老师举个例子,比如呢?比如二禁止文件它是什么? 什么样的文件,他打开看不到文本数据。对,你像一些视频,我们打开之后,你能看到看到一些文本吗?你看不到,你看到的是一段 音频,听到的是一段音频,看到的是一段视频,对不对?他是一个录像在里面,对吧?他没有文本数据,那这一类的视频音频,还有图片,图片啊, 还有那种安装包啊什么的,通通称之为二进置的文件。二进置文件啊,这里呢,将文件类型分成二进置文件和非二进置文件,是因为如果类型不同的话,之后我们的文件操作那肯定就不太一样了, 所以老师先给你们去区分一下啊,大家就是先做一下笔记啊,这里分成二进置和非二进置的啊, 文件类型好,那么但如果说对于文件有了基本认识之后呢,我们就可以接着往后面去看一下文件的基本操作了。基本操作步骤好, 在 python 当中,文件基本操作指的就是文件读取以及文件写入,那如果老师,那你就那如果大家有这样的写法啊,不,有这样的想法,就是老师我不想去读,我也不想去写,我想,我想去改,我打开一个文件之后,我想去改里面的内容,这是不行的啊, 在 python 里面,文件读写操作只包含读取和写入两个操作啊,当然你要去改的话,能改吗?是可以去改的,不同文件它改的这个操作不同,你啊可以通过后续的你像 那个那个 c s v 的 一个文件操作去改,这个没有问题啊。 ok, 好, 只有读和写 啊。那么文件读写呢?是一个非常基础且关键的操作,它通过读取文件里面的数据内容,或者说像文件当中写入内容,可以去实现数据持久化存储在磁盘当中去进行读取操作。 那文件呢?它是存储在磁盘里面的数据,可以是文本文件,也可以是二禁制文件,包括图片、视频、音频等各种类型的二禁制文件,那么当然文本文件它是非二禁制的,大家注意一下。 好,那么紧接着我们就看一下咱们的文件基本操作。文件基本操作是非常简单的, 咱们就把这个过程给它步骤化。第一是需要打开某个文件,你如果说要去对某个文件进行读取或者写入数据进去,你首先你得打开这个文件你才行,对吧?第二, 第二,打开之后,你去读取或者去写落都行,顺序 好。第三,那关闭文件就这么简单?关闭文件,咱们这节课呢,就学这三行代码,你学好这三行代码,其他的都不重要了。 ok, 关闭文件,打开文件读取及写入,分别指代的是几个函数操作,几个内置函数操作。像打开文件,它就是用 open 这个函数。 open 是 啥意思?翻译过来就是打开的意思,它里面放个文件名, 文件名是什么?打开的就是哪个文件,就这么简单。好,第一步,你打开这个文件之后呢,你肯定想要去对他去读,或者说去写。你这两个操作你只能选一个啊, 你要么去读,你要么去写,你不能说既要又要,对吧?我又要去读,要去写这个不行,只能去读,或者只能去写。如果你去读的话,你去用锐的函数,翻译过来是读取的意思, 调用一下数据就全出来了。你要去写的话,你就用 white 这个函数,这个函数呢,小框里面放的数据是什么?那就是写入到文件里面的数据就是什么。 好,最后一个叫 close 函数,翻译过来是关闭的意思啊,谁去调用这个函数,哪个文件就会关闭,就这么简单,就这四个函数,咱们学好了这节课就差不多了,能懂 来看吧,怎么用,当然没有老师讲的那么简单,对吧?那肯定还是有一点点难度在里面的,注意听啊,注意听。那首先我们要打开某个文件,对这个文件进行操作,那 现在我们是否得去知道我们要操作的,我们要去打开的这个文件对象他是什么? 对啊,你比如说我现在凭空想象一个文件出来,比比笔记点 t x t。 哎,我凭空想象一个文件名出来,然后我要打开它,行不行?大家觉得行不行? 肯定不行呐,你文件都没有,你要打开它,那,那行, 反正现在是不可以啊,反正现在老师在讲的,现在是不可以的。那怎么办呢?我又没有这个文件,我又没有这个文件,我怎么打开它来? 老师,我确实没有这个文件,但是我在本地盘符啊,我在这个本地盘符 f 盘里面呢,有这个文件, 那我现在直接把名字写进去,能够打开吗?注意,这个绝对是不能的, 咱们拍叉母,它作为一个在计算机上面去安装的第三方软件,它是没有权限去访问你本地磁盘里面的任何数据,任何文件的。没有权限啊,老师,我给他加个权限, 加权限你加加什么权限都没用,就是访问不了任何第三方软件,都访问不了本地盘符的文件,包括咱们有时候经常会去用到的一些什么微信啊、 qq 啊,都不行,那怎么办呢? 那怎么办呢?哎,咱们得把这个文件叫笔记点踢 x t 的 这个文件, 你给他粘贴复制到当前的目录拍叉目录之下,那就有了。那就行了,在本地盘符当中不能去访问获取的文件,我给他复制粘贴到当前目录之下。 注意老师的操作,先在本地盘符选中这个文件, ctrl 加 c, 你想要放到哪个文件夹之下? a, 选中它, ctrl 加 v 就 进来了,点击进来, ok, 是 不就有了?那当前目录之下,你能看到这个文件的前提 a, 我 们就可以打开它了。 所以同学们注意一下,这个过程在强调什么呢?啊?你不能使用拍叉母任意的去打开来自你本地盘符的文件,你也不要问老师为什么打不开,那确实是不行的,这个操作他就是不成立的一个操作不合理啊。 ok, 你 得把这个文件复制进来才可以。好,那么现在有了文件,有了,我要打开它,我就把 open 这个函数用一下。 open 这个函数我还没写完,它就提示了,时餐要给时餐啊,要 给,那肯定是必然的,那要给什么呢?哪些是必须要去给的呢?第一个就是这个 f 二, 这样是文件的意思,哎,就是你要打开哪个文件名,你得告诉他通过食材的方式。第二个呢是 mode, 这个 mode 是 模式的意思,翻译过来是模式的意思,打开这个文件, 对吧?你要通过怎样的模式打开?如果你想要去对于该文件进行读取,则是读取模式,你想要去写入数据,到这个文件则是写入模式,不同的对该文件的操作。那 第二个时餐的这个参数是不同的啊,就是模式不同,能懂?第三个 encode, 这个 encode 呢,是用来去设置编码格式的, 这个 encode 翻译过来就是编码格式的问题啊,意思好,那他是指定这个文件需要 使用到的编码方式,那比如说我们有一些啊,有一些文本文件里面的这个文本 内容是中文,那中文很大程度上他可能会出现乱码的情况,在读取或者写入数据的时候会出现乱码的情况,那这个时候你就得去设置一下 encoding 这个时差,设置它的编码格式为 a, s, c, l, l, 或者说 unico 的, 或者说 g, b, k 啊,去确保它不会乱码。 那么当然,这么多编码方式,我到底用哪个? a 用 utf, 杠八用这个编码格式呢?它是一个万能编码,你不管你是什么样的中文,我都能保证你的这个字母啊, 文本呢?不乱码,那我就用它。是不是因为其他的这个编码方式呢?他或多或少他所去进行编码的范围呢?有限 有限,你看他只能表示一百二十八个字母,或者说他只支持六千多个汉字,那其他的就不支持了,我就不编码了吗?那肯定不行,对不对?好,那么意思就是讲在使用 open 这个函数的时候呢,给三个参数,第一个参数, 第一个参数是文件名的意思啊,我通过引号里面给到文件的名字,是不就是笔记点 t x t, 注意,这是一个完整的文件名,文件名带后缀啊,后缀一定要带上,不然他不知道他是什么类型,那肯定就操作不了他了。一定要带上后缀啊,一定要带上后缀笔记点 tst 啊,并且用引号引起来。第二个呢,就是 model 指定传餐传入他的读取模式,就他的这个访问模式打开该文件的模式呢?啊,我去,我看一下, 他里面没有内容啊,我给点内容吧。哎,我是麦芽 二二二。好,我就随便给点内容了,现在是不是有了,有了之后呢?哎,我就想去读,我就想去用 read 去读取数据。那注意这里,他的这个模式就是 r 模式。 r 是 什么模式? read 单词首字母,那就是读的意思。好,第三个参数是 encoding 编码格式, 去指定它是个什么呢? u t f 杠八的编码格式,这里的这个单词是红色的,正常啊,并不是报错的意思,它表达是什么呢?这个是关键字传餐的方式,和其他的不一样的意思啊。 好,那么这里就是打开了一个什么呢?打开了一个名字叫笔记点 t s t 的 文件,打开的模式是读取模式,编码格式, 格式设置为 utf 杠八,因为它是一个文本数据,所以我们要设置中文的编编码,你才能保证它不乱码。 ok, 然后, 然后注意了,注意了,咱们打开了之后, open 这个函数使用了之后,它会有一个返回值,这个返回值我们用一个变量 f 去保存一下。为什么要去保存? open 函数?打开了这个文件打开之后,后续是不是还需要去编辑这个文件,把内容读取出来,或者说把这个文件关闭?所以我们必然是需要保存一个,通过一个变量保存出来这一个 这个文件到 f 里面去,这个 f 就 相当于是该文件的载体啊。后续想要对于该文件进行操作,你就拿着这个 f 去调用,去调用就可以了,懂吗? f 是 打开的这个文件的在内,后续,哎,我想要去读取笔记里面的内容,我就 f 点 read 就 行了。这个函数呢,直接调用即可, 打印就可以去得到来自于文件里面所有的内容。哎,就是刚刚所去编辑进去的一一,我是麦芽五个二,是不是? ok, 那 么最终最后一个关闭文件,还是用这个 f 去调用 close 关闭, ok, 好, 运行好。那么有同学纳闷了,这个 close 到底是起到了怎样的作用? 我有他没他好像代码都可以去运行呀,是不是?是不是?那我可不可以把这个格式省掉呢?可以不?不行,答案肯定是不行的,那不然为什么要加上这么一行代码呢?是不是?那为什么不行呢? 关闭文件,打开文件。首先打开文件,如果说我们自己在本地盘符当中,你想要去打开一个笔记点 txt, 我 直接是双击打开了,是不是? 好,那么程序当中他没有办法帮你去双击呀,那只能干嘛呢?他只能去用一些函数来表达这个操作好, 那第四行执行完了之后,就表示这个文件就一直打开着,你把里面的内容读出来之后呢,他还是打开着有个窗口,如果你不去调用 close, 不 去点击这个叉,那他就一直打开着。如果这个文件他比较小, 倒也无所谓,对吧?如果他这个文件是几个 g 的 这种占用内存占用空间的话, 则你的这个内存肯定是顶不住的,所以一定要去打点调用 close, 将这个文件关闭掉,去释放该文件在打开时或者读取写入过程中所去占用的运行内存。你虽然看的这个 close 好 像没什么 碍作用,对吧?但是实质上它是在程序运行中帮你去完成了文件的关闭, 它是用来去释放对释放文件运行中所去占用的内存资源啊。文件读写的基本操作就是三个步骤,第一,打开文件,第二,你去读或者去写。 你要去读或者去写的话,这取决于它的模式,它的模式是 r 模式还是 w 模式,因为像这个 m o m o d e 这个指定传餐时,它的这个打开模式是由三种的, 第一就是 r 可以 去读取文件,而且只能去读你打开之后的这个文件,只能去读取。那第二呢,就是 w, 它也是只能去写,只能去写,那就不能去读明白。 第三呢就是 a, a 是 追加啊,它本质上呢和 w 是 一样的,同样是一种写入数据的方式,那具体有何不同?之后老师再给你们去介绍。好,那么这个是 open 里面的文件名以及啊这个 打开模式参数。另外呢,还有一个编码格式,这个 encoding 设置为 utf 杠八的。这个编码格式呢,专门是针对于你的这个文件里面有中文,你才会去设置的啊,如果说有中文,那你就把它带上 啊,如果你是一个非二禁制文件,能够去看到文本数据,你就把它带上,你要对中文去进行编码,那如果说你是个二禁制的,你是个视频,哪来的中文呢?对不对?那你就不需要把它带上, 能懂?就这个参数其实是要根据文件类型咱们去选用的啊。好,那么就是打开文件的 open open 这个函数, open 这个函数会有一个返回值啊,保存一下,保存出来这个变量,它就是你打开的该文件。 老师,我看不出来这个 f 和这个有什么关系,它是来自于 open 这个函数的嘛,对吧? open 打开的这个文件,它必然后需要用的嘛?那如果说我们后面要去用用没有一个变量去保存的话, 那是不是这个过程是不是会比较麻烦?哎,所以呢, f 保存一下,然后第二个步骤,你去读,你就打点到 read 去读,你去写,你就打点到 white 去写就行了。第三步关闭啊,是必然要关的好,那么这个呢, 是咱们文件基本操作的步骤。接下来呢,老师要给你们去介绍一个拓展式的用法,也可以理解成咱们上上面的这三行代码的升级版本的,升级版的 语法。什么叫升级版的语法呢?咱们这三行代码实践基本操作绝对是 ok 的。 但是呢,有一点点问题啊,你像我们之前所去学习到的,不管是 if 判断呀,还是循环呀,还是函数啊,他都是有他的这个缩进的语法结构,对吧?那有了这个语法结构呢,他是更好的能够去管理代码的逻辑, 那咱们的这个文件读写,他就没有这种,没有这种格式,对不对?那其实他是 ok 的, 他也能够去有这种格式,需要升级一下语法啊,但是整体的逻辑那肯定是一模一样的啊。咱们来看一下, 如果说你要有语法格式的话,他要用到位子这个单词,位子他是关于关于的意思,那关于 open 这个函数, 他所去打开的文件,我就把这个三个参数粘贴过来了,然后我不想去读了啊, 嗯,我们去写吧,我们改成 w 模式去写啊,去写好关于 open 打开的这个文件呢,我们通过 ice 这个关键字保存在 f f 这个变量当中,这句话是这么去读的, is, 首先它是保存的意思,保存的意思,另存为的意思。好,关于 open 打开的这个文件 笔记 txt 给它另存于 ff 这个变量里面。好,这个逻辑完成之后,冒号回车,它会有一个缩进,在这个缩进就可以去啊,对于 打开文件进行读写操作了,那这里就是会有一个结构式缩进的结构式语句。 好,那该文件被保存在 ff 这个变量这个载体当中。好,我就用 ff 去打点调用 w 模式就只能去写。用啊,我就只能去调用 y 这个函数,你像我去调用 read 是 会报错的啊, w 他 只能去,他就是固定了你的这个模式是写写的模式。好,你在用这个函数的时候呢,和 read 不 太一样,你要写入什么数据,你得放到 小框当中告诉他啊,然后注意他这个数据一定是字母串类型的数据,以引号的方式写进去。那原本是怎样的数据啊?啊,原本是长这样子的对不对?那我就把那个 今天是周六啊这一句话给它写入进去。 o 不? ok, 好, 那咱们的升级版的语法就这两行代码, 第一,第一,它可以让我们的这三行代码具有具有缩进结构,具有这个啊,逻辑结构在里面,更好的去管理下方的代码。 a, 它是位子 open 当中的。第二,同学们有没有发现 咱们没有去调动 close 了哎,咱们 with open 这个语法,它是可以让咱们这个关闭文件操作哦,你自己写一下吧。 你自己写一下啊,第一,第一,让语法更有 层逻辑结构。好,然后第二,第二,咱们这个 with open 的 一个语句呢,它可以自动地去关闭文件,不需要我们再手动去调用 close 了,不需要我们去手动调用 close, ok, 可以 自动 关闭。哎,这个文件无需显示调用啊。 ok, 好, 所以老师在后续用这个 vs open 语句呢,可能会用得更多一点,因为你像这三行代码太散了,零零散散的散落在这个 p i 文件当中,那如果说是这两行代码是不是更具有啊?更具有咱们这个语法结构一点,对不对? 对,而且不需要我们手动去关闭了啊?好,那么这个就是 vs open 缩进的话是直接 table, 就是 直接 table, table 按一下,按一下就行了啊。好,然后呢,我们将这两行代码呢去运行一下 啊,运行之后它是没有结果的,因为它是对于这个笔记文文件的操作,所以我们直接点开去看,里面是不是把今天是周六给它写进去了,对不对啊?就是把今天是周六给它写进去了。 ok, 所以 同学们进一下关于 with open 这个语法啊, with open 这个语法 啊,咱们就差的太多了啊,差的太多,好,那么这节课咱们的一个核心内容就在这三行代码和这两行代码当中。

今天直接讲三种从外部文件读取测试数据的主流方法, c s v, open p i x l 和 pandas 相关的资料呢,我都已经整理好,有需要的呢可以直接找我要。第一种 c s v 文件, 这是最轻量的方式,适合结构简单的测试数据,使用 python 内置的 c s v 模块就能处理。核心操作是用 with open 打开文件,通过 c s v 点 reader 逐行读取数据,会以列表形式返回。 c s v 的 优点呢是通用性强,任何文本编辑器都能打开编辑,但缺点呢是不支持复杂格式和多个工作表。这个呢,就是我们 c s v 读取的一个具体的案例代码。我们这里呢,是读取这个 c s v 文件里面的数据,将它作为接口自动化的请求参数, 通过负循环便利。我们里面有三条数据,让我们来请求一下它就会将不同的数据读出来,之后进行请求,都能够正常的登录成功。 这是第一个 csv 函数化。那第二种呢,是通过 open pi 叉 l 来进行参数化的一个提取,这个是专门处理 excel 的, 能精细地控制单元格。提取数据的基本流程是用 load workbook 加载工作簿,通过选择工作表,然后用点 excel 行号列号,点 value 提取具体的单元格的值。更高效的方式呢,是使用点 item rows 按行叠代。 open pi 叉 l 的 优势呢,是完全保留 excel 的 格式公式和多个工作表结构,适合需要直接使用现成 excel 测试用力的场景。我们来看一下具体的一个代码。 我们先是加载这个工作簿,加载完了之后选择对应的工作表就是 sheet 机,如果你命名的是中文的话,就在这里选择对应的中文名字就可以了,只要和 sheet 的 表的表明一致就可以。 第三步呢就是获取我们的这个表头,因为我们一般第一行呢,就是我们的表头,表头呢他不是作为参数化数据的,所以我们读取数据行的时候,就从第二行开始,通过负循环来进行读取, 这样的话就可以把我们想要的这些数据读出来,读出来之后也是一样,作为参数化数据传到我们这个接口请求里面去,这样的话我们就可以进行多个账号的一个登录,这里呢我们就进行了多账号的一个登录请求,这个是我们 open q i 叉也有。那第三种呢?我们用 pandas 来进行读取, pandas 呢,它是一个数据分析库,这是处理结构化的一个数据最强大的工具。读取 excel 只需要一行代码, 就是 pd 点 read 的 excel 就是 我们这里数据呢,它会自动加载成一个 data frame 的 一个对象,你可以用类似数据库的方式操作数据,比如说 d f 用户名获取整列,然后 d f 点 i look 获取。第几行 excel 呢?特别适合测试数据量大,需要复杂筛选或者计算的场景,例如要从上节条数据中随机选定特定条件的测试用力,虽然库本身稍重,但处理效率很高。我们来看一下具体一个代码,我们通过 p d 点 real excel 直接读取这个文件,这个文件呢,我们也可以去选择对应的 sheet 表, 这个通过缩影来取的零呢,就代表第一个系统,然后我们再通过具体的取值 menu 的 这个方式把内容取出来,取出来之后呢,我们来处理刚刚读取这个系统一的这个数据, 我们跳过前面的这个标题,然后来取对应的这个值,那取出来之后呢,也是将它作为一个参数化的一个数据传递到我们这个请求里面去,这样的话就可以实现多用户的 登录。总结来说,实际应用的时候建议简单,小数据呢就用 c s v, 需要操作单元格格式的就用 open pr 叉六,涉及复杂的数据处理和分析,就用 pandas 读取后的数据呢,通常与 prs 的 点 mark 点 per meter 装置器结合,实现真正的数据驱动测试,让同一套测试逻辑能运行多种数据。那么你在使用读取文件的时候遇到过哪些奇葩的问题呢?欢迎一起来聊聊你的经验。

盲目自学只会毁了你!这才是抖音最系统的拍损教程,存下吧,全六百分钟真的很难找,全了拿走吧,这还学不会,我退出 it 界!警告,一口气带你学会拍损核心内容,本系列视频耗时三个月制作,制作时长三百五十分钟,从零陪你系统的学习拍损,这应该是抖音目前最良心的 入门到进阶的拍损保姆级教程了,哪怕你是零基础也能学会。为一名从业九年的资深拍损程序员,我想告诉你的是,网上成千上万零散的拍损教程,没有一个完整的体系,看的越多,你越会感到迷茫、痛苦, 甚至想要放弃,时间消耗了却没有得到收获,这也是不少网友的真实处境。我想告诉你的是,拍摄小白如果不打好基础,东拼西凑,盲目挑战高难度的项目, 基础没打牢却急于求成,你的 id 生涯将会走的无比艰难。我想告诉你的是,本期专门针对零基础的小伙伴带来了一整套拍摄系列教程正式的讲解之前大家在评论区六六六教程都免费分享给大家。 哈喽大家好,接下来呢,我们一起来看到第五章节,也就是关于 python 的 一个组合系列类型。我们首先来看一下本章节,它的一个目标是什么呢?本章节的目标的话,首先我们要了解一下序列与所以它们之间的一些相关的概念啊, 你都知道他什么意思,什么叫序列?什么叫缩影?知道不?然后第二个呢,我们要去掌握序列的一些相关操作呀。第三个就是还要去掌握列表、原组字典与集合他们之间的一些相关操作 要去要会熟练的去运用它们。好,那我们接下来往后面走。首先我们来看到第一个就是序列与所以的一个概数,你像这一个序列的话,它就是用于存储多个值的一个连续空间,而我们每一个值呢,它都有对应的一个 整数的一个编号称为,所以那这个就是我们的一个所以了。你像组合训练类型的话,它分为很多类,像列表、原组、字典、集合呀,它都是支持这个训练的一个通用操作的,他们都属于这一个组合训练的一个类型。 然后训练的话他这个锁影呢,我们分为正锁影和负锁影,锁影的话他就是从零开始能够快速的去访问那些元素正,所以从零开始负锁影的话就是从右往左就负,一开始依次就开始去递减。那接下来我们一起来操作一下, 打开我们这个拍叉姆,那我们首先在这里呢,我们去新建一个章节,叫做第五章, 把这个叉掉。那第五张呢?我们来新建一个 python 的 一个 py 文件,我们第一个叫什么呢?我们这个的话就叫做组,就叫做序列吧,序列和锁影, 序列和锁影的相关概念。操作好回车。那我们首先呢我们来看一下它的这一个正,所以的话 正向,所以的话它是怎么样去递增的呢?正向,所以递增。我们首先来定义一个变量,比如说我定义一个 s 一 s 一 的话,它会等于我们的这一个 hello world, 定义了一个 s 一 等于我们的 hello world。 然后呢我们是不是要把它们每一个都给它求出来,比如说我可以用一个 for 循环来把这一个字母串里面的所有的内容我都给它去求出来。那么这个 range 函数里面的话,它是不是从零开始呀? 然后我要取的是不是我这一个字母串的一个长度?那我是不是可以写个楞 s 楞那个字母串,然后我再去打印一下我的这一个变量 i, 比如说我要取哪一个?我是不是要从这个字母串里面通过这一个缩影的方式来去取出来它的每一个的一个大位置呀?这里的话我们可以用一个换行符,就是不让它换行,那么这里的话我们可以用两个杠 t 来写,就是不换行, 这里的话是 s 一 啊, 不换行之后呢?我们是不是来运行看一下? 我们在这里打印一个东西,方便我们更好的去看他有没有换行。比如说我打印一个杠,然后去乘以我们的这个四十,就打印四十遍嘛,然后鼠标右击运行看看。你看我们运行之后呢?是不是这里可以看到这里要加一个杠 n 啊? 那我们还是写那个换行吧,因为这样子会更好区分一点。比如说我写一个杠 n, 然后后面写一堆杠杠杠杠,然后鼠标右击运行一下, 看到没有?那这里的话我们是不是给它取出来了?所以为零的是字母 h, 所以 为一依次类推,所以为九的话就是字母 d, 对 不对?那么这个就是我们正向所以的一个递增。那接下来我们来看一下反向,就是负向,所以反向,所以就是从负一开始取,对不对? 反向,所以的话怎么去取呢?同样的我们用这个负循环来把它们取出来,负 i 引上我们的这一个 range, range 是 我们的一个函数,那这里的话我们是从哪里开始呢? 比如说你要从零开始去取的话,是不是到负十结束呀?负零对不对?那我们这里的话就写一个负十,然后零, 因为他是不包含最后面那一个缩影的,所以说我们要多取一位,然后我再去打印一下他的这一个 变量,以及他这个长度,对不对?同样的我们用一个这一个不让他换行,然后我们鼠标右击一下, 是不是我们用这一个负,所以去取的话,同样的也是可以给它取出来的,因为这个 range 它的一个函数的一个范围嘛?然后负,所以的话就是从负一开始,从右到左,依次递减到负十结束。 这里的话本来是要写负一的,但是它那个是取不到的,所以说我们就要是往右边加一个就是零,对不对?那么这个的话就是关于我们序列的一个基本的一个讲解。那接下来我们来看它的一个切片, 那接切片的话是什么呢?我们一起来看到它这个切片的一个操作。 首先这个切片的话它的一个基本语法是什么?就是有序列对不对?然后有一个 start, 然后一个 end, 一个 step, 就是 开始缩影,比上我们的结束缩影,再比上我们的这个不长来实现的就是它的一个切片的一个语法。 start 的 话是我们的开始缩影,然后 end 是 我们的一个结束缩影,而这个 step 就是 我们的一个不长,我们这里的话也可以看到它的一个语法,就是我刚刚说的开始缩影是包含的,而这个 end 就 结束,所以它是不包含的。而 step 是 我们的不长,这里的话也有一个, 比如说我要去打印我们这一个 hello world, 那 么这一个就是所以从零开始,然后到五结束,但它不包含五,所以说它取到的就是前面这一个 hello, 然后这里有一个它的不长为二,那是不是隔两个取一个,所以说取出来是 h l o, 就是这么个意思。那接下来我们一起到这一个 python 中来给它操作一下,首先我们把上面的内容给它注视一下, 那我们接下来就是我同样的,我去定义一个我的那个字母串,等于我的这一个 hello world, 然后接下来呢?我是不是我要去求,我要去求我刚刚那个图中的那个 s 一, 它等于等于什么?零比五比二,就是开始,所以开始,所以比上我的这个结束,所以再比上我这一个不长。 那这个他是什么意思呢?他是不是代表的其实就是我们的这一个开始,所以从零,所以从零开始, 所以从零开始到五结束到五结束,但是它是不包含五的,不包含五,然后不长为二,不长为二。那接下来我们来打印一下我们的这一个 s 一, 这个冒号的话,我们一定是要在那个英文状态下, 这里它为什么会爆红呢?是因为我们切片的话,你肯定是要从哪个字母串中,你要去求谁,对不对?那我们这里的话就是从这个 s 的 这个字母串中,我要去求出来这个它切到的是什么呢? 我们运行来看一下,它是不是取到的就是我们这一个 h、 l、 o, 跟我们刚刚那个 b、 b、 d 里面是一样的呀?这个就是关于它这个,所以从零开始到五结束,不包含五,然后不长为二的这一个讲解。那 那我这么去写是什么意思呢?比如说我写一个 print, print 里面我写一个我的这一个 s, 是 我的这一个字母串,对不对?那我直接写一个冒号五,然后再冒号五比一,那是什么意思呢? 它的意思是不是代表我们的这一个,所以它的那个省略了开始,省略了开始的一个位置,对不对?省略了我们开始的一个位置,然后我们的这一个 start 的 话,它是默认从零开始, 所以说我们这个的话,它其实就是相当于,所以默认从零开始,然后到五结束,不包含五,然后不长尾。我们可以运行来看一下,那么这个取出来就是我们的这一个 hello, 那 么接着往后面写,比如说我写一个我的这一个 print, print 什么呢?比如说 print 我 的这个 s, 然后 我冒号五比上五,我再比上一个我,后面我不写了,那这个是什么意思呢?这个的话他其实就是代表我们这个,他省略了开始的位置,然后还省略了一个不长,是不是? 后面不是没有写吗?所以说他把开始的位置还有我们的这一个不长都给省略了,然后我们来右击运行一下, 同样的它也取到的是一个 hello, 那 还有什么呢?比如说我再写一个,我写一个 print, print 什么呢? print 我 的这个 s, 然后中括号里面取的话,我比如前面写两个冒号,然后我再比上我借一个 e, 那 它是代表什么意思呢?这个的话它其实就是省, 就是开始开始,所以比上我们的结束,所以然后再比上我们的这一个不长,对不对?那这里的话就相当于我们这一个,所以是不是从零开始,然后到 到什么结束,对不对?这里的话它其实就是省略了我们的这一个结束位置,是不是省略了我们的这一个结束位置,然后我们的这一个 stop 的 话就是结束。所所以呢它是 默认到默认到最后一个元素,默认到最后一个元素的话, 它是包含了最后一个元素的,它的不长为一,就是从零开始,一直取到最后面,然后它也是包含了最后面这一个元素。我们来运行一下这里的话,可以看到它取到了完整的一个 hello world, 是 不是? 那还有什么呢?比如说我再写几个,我写一个 print, 我 的这一个 s 是 我的一个字母串,字母串里面的话,我这里写一个五,然后写两个冒号,这个的话它是不是代表着什么?代表代表我省略了, 省略了结束,所以结束位置和不长,是不是?这个没有问题吧?结束位置和不长,那还有一种写法是什么呢?也就是说我们写一个 print, 然后写上了这个 s, 我从五开始,我写一个冒号也是一样的,就省略了我们的这个布长结束位置和布长,我们来运行一下,我们可以看到二十行跟二十一行他们取到的都是一个 word, 那 如果说我要去更改一下我的这一个布长呢?比如说我写一个更改我的布长,把它改成二,我们来打印一下, 改成二之后,他取得的就是 h、 l、 o 是 不是不长?改成二的话,是不是从零开始去零一二三四五六嘛?这样子去,所以是这样子去举的。然后二的话就是隔两个取一个, 那接下来我们来再写一些,比如说我写一个 print, print 我 的这个 s 的 话,然后呢我这里我写个什么呢?我写两个冒号,我再写一个二,那么这个它什么意思呢?它的意思其实就是说我去 我省省略了开始和结束,对不对?不长为二, 那么这个就是他一个意思,那么你不长为二的话,那你他那他会分别取到哪里的元素呢?分别获取到所以零二、四、六八位置上的一个元素, 这个有问题吗?我们来打印一下, 来鼠标右击运行,那么它这里的话就是从我们所以为零零一二三四,所以说是 h、 l、 o、 o、 l 就是 这样子去取的。 我们可以再来写一个,大家一起看一下,比如说我写一个我们这一个 print, print 什么呢? print 我 的这一个列表, 比如我的这个字母串是 s, 那 我这里写两个冒号,我再写一个负一,那他代表什么意思呢?他是不是代表我们的这一个不长,他是一个负数呀?不长为负数了,对不对? 那我这个不长为负数,我还可以用什么方法去写呢?我是不是可以用那一个列我的这个字母串这个,所以他是不是从负一开始, 然后到负十一结束?不长为负一,因为你到负十一的话,他是不包含这个负十一的,他就是取到负一到负十从右往左,那就是从这一个 d 开始取,然后取到我们的这一个 h, 然后不长为负一,我们来鼠标右击一下, 同样的是不是 h e l l o w r l d 是 不是反着取的?那么这个的话就是关于我们这一个它的一个切片的一个操作。 那么以上呢,就是关于我们这个序列和所有的一些相关概念以及它的一个操作。接下来呢我们一起来看到的是序列的一些相关操作。首先我们来看到序列的一个相加与相乘的一个操作,序列的相加操作的话,其实就相当于拼接, 把两个这种字母串你给它拼接起来的话,比如说 s 一 等于 hello, s 二等于 word, 你 拼接起来是不是变成了一个 hello? word 相乘操作的话跟这个拼接其实是差不多的,我们可以在这个 piq 当中一起来看一下, 同样的我们在这里的话去给它去新建一个 python file 的 一个文件,那这里的话我们叫什么?叫序列的一个相关操作,序列的相关操作, 首先我们看到的是这一个字母串的一个拼接,也就是相加的一个操作。 首先我知道我的这个 s 一 等于我们的这一个 hello, 然后我的这一个 s 二等于我的这一个 word, 那 么我现在的话,我是不是要去打印一下我的这一个 s 一, 拼接一下我的这个 s 二就相加的一个操作,对不对?我们来鼠标右击 是不是直接就拼接好了?就是 hello world, 他 这一个相加的操作就相当于我们这个拼接的操作。那接下来我们一起来看一下他的这一个相城。相城的话,比如说我要去打印一个什么呢?我要去打印我的这一个, 打印我的这一个 s 二,那我相乘的话,比如说我这里乘以三,就打印三遍我这一个 s 二相乘的一个操作。那这里是不是可以看到 word, word, word, 那 么这个的话就是关于我们这一个序列的一个相乘的一个操作。 那接下来我们来看一下它还有什么其他的一些函数啊,以及它的操作,比如它序列的其他操作还有什么呢? s x in s, 就 比如说如果 x 是 s 的 一个元素的话,返回 true, 如果它没有那个元素,它就返回 false。 还有这个 not in, not in 的 话, 一样的,如果它不是它的一个元素,就返回 true。 还有愣啊,就长度 max, 最大元素 mean, 最小元素 index, 就是 去查它第一次出现的那个位置,所以啊, count 的 话就是计算它出现的一个次数。 同样的我们还是在这一个 python 中来写一下。我们这里的话,同样我们来定一个,比如说我的这一个 s 会等于我的这一个 hello world, 这个比较好操作, s 等于我们的这一个 hello world。 然后我是不是首先要看它是不是在我们的这一个元素中存不存在?那我是不是要打印一下 print, 我 的这一个比什么呢?我这个 e, e 在 我们这个 hello world 中吗? e 在 hello world 中存在吗?我是不是要问它在不在?那这里的话用到的是什么呢?用到的是我们那一个 in, 对 不对?这里要写一个括号,就是我们这个字母 e 在 不在我的这一个 元素中,就是在我的这个字母串 s 中,对不对?那么这里的话,它其实就是用到了我们的这一个 in 的 一个使用,这个就是我们 in 的 一个使用。 这里要注意一下,我们这个 e 的 话,它是一个字母串,是不是?那我这里要给它打一个引号,它在不在我们这个里面呢?我们来右击运行一下, e 在 hello world 中存在吗?存在的话就是 to, 是 不是返回的就是一个 to? 那 我们再写一个, 比如说我把这个 e 改成我们的这一个 a, a 在 我们这一个 hello world 中存在吗?我们鼠标右击一下, 是不是返回的是一个 false, 那 就说明我们的这一个 a 不 在我们的这个 hello world 中存在。那接下来我们一起来看一下我们这一个 lotter in 的 一个用法,我们刚刚看到的是一个 in 的 一个用法, lotter in 的 一个用法。同样的我们来打印一下 print, 我 们的这一个其实跟刚刚的那个是差不多的,我们把这一行复制一下, 就是说 e 在 hello world 中不存在吗?我们把那个存在改为不存在,然后再把这一个 e 的 话,我们改它改成一个 a, 然后我们再鼠标右击运行一下 note, e 的 一个用法的话, e 是 不是在我们的这个 hello world 中? 所以说我们这里也可以看到它返回的是一个什么呢?我们这里的话要用到是一个 lot 音啊,我就说怎么返回的是一样的呢?原来是我没有加 lot 呀, 那这里大家就可以看到一下。好,我们再运行一下,看到没有? e 是 不是在我们的这一个 hello world 中,所以说它返回的是 force, 而我们的 a 不 在我们的 hello world 中,所以说它返回的是一个 to, 那 么这个就是关于我们这一个 lot in 的 一个用法,那接下来还有什么呢?还有我们的一些类值函数的用法, 什么叫内值函数呢?就是我们一起来看一下内值函数用法,比如说我们先看一下它的这个长度, print 它的长度,那个单词是什么呢?是不是楞啊?楞的话就是它的一个长度, 我要看它的这个长度的话,我要怎么去写呢?是不是直接楞上我们的这一个字母串就好了,对不对?然后比如说我还要看它的这一个最大值啊?最大值我怎么写呢? max, 是 不是我也可以用中文?我前面写一个引号嘛,最大值,最大值我怎么去写?是不是我的这一个 max? max 里面放的也是我们这个字母串里面,他会自己去进行一个判断,同样的我们这一个最小值的话,也是一样的最小值。他在我们这个内置函数中用的是什么?是不是我们这一个命方法? 那么这里可以给他写一下注是这个是最小啊,这里不用写,我前面的话已经给他写了注是对不对?我们把这个给他写一下,这个楞的话就是他的一个长度。好,那接下来我们是不是来鼠标右击运行一下? 运行中我们可以看到它的这一个 hello world 的 一个长度为十,然后最大值是 w, 最小值是我们这一个 d, 那 么这个就是关于它那个内置方法的一个用内置函数的一些用法,然后接下来还有什么呢?是不是还有我们的这个序列对象的方法呀? 序列对象的方法的话,我们是不是要去使用这一个使用我们这一个序列的名称啊?使用我们这一个序列的名称的话,那我接下来我,我怎么去?我给大家举些例子,名称名,序列的一个名称, 比如说我要去查一下我的这个 print, 我 是不是去查找一下它那一个方法。你看我们这个 ppt 里面也是有的, 你看 index 的 话,它是返回序列 s 中第一次出现元素 x 的 一个位置,那我们这里的话是不是可以写它的这个 s 引号?首先是引号,然后 s 点上我们这一个 index, 然后括号,这是代表它我们要用的那一个方法, 这是我们要用的那一个 index 的 一个方法,然后逗号,逗号里面我们这个方法怎么用的?是不是 s 点上我们的这一个 index, 比如说我要查看这一个 o, 这个 o 它在不在序列中第一次出现的一个位置,那么这个的话就是说 指的就是我们的这一个字母 o o, 在 我们的这一个序列 o 在 我们的这一个序列中第一次出现,第一次出现什么?出现缩影位置 位,所以位置是什么呢?是几啊? hello world, h e l l 零一二三四,是不是四啊?我们这里可以打印出来看一下它是不是第一次出现的话是这一个四。然后还有一个就是我们这一个 count 方法, count 的 话也是一样的, 是判断你在它这里面出现了几个,出现了几次,那 count 的 话是不是 c、 o、 u、 n、 t, 然后 count, 这是它前面的一个方法,我们给它打印出来就是可以更直观的去看到,然后 s 点 count, o, 是 不是?那么这一个它就是 统计去统计我这一个 o 是 不是 o, 在 我这一个字母串 统计我这个 o 在 我的这一个字母串中出现的一个次数,出现的次数,那我们可以看到它出现了几次呢?我们运行一下,运行之后你是不是可以看到出现了两次 hello world 是 不是有两个 o, 对 不对?所以说这个就是关于它的这一个, 就是关于序列的一些其他操作,我们首先知道了他的这一个相加以及他相乘的一个操作,然后知道了序列的一个其他操作, 那么这个就是关于我们序列的相关操作,然后大家可以再去练习。接下来我们一起来看到的就是序列的那个操作中,序列他不是有很多类型吗?我们首先来看到第一个就是关于他的这一个列表类型, 列表它是什么呢?列表的话它其实就是我们 python 当中的一个内置的一个可变系列列表,它是可变的, 它一般是用中文的那个英文的一个中括号,就是这样子的一个括号来定义的。元素之间呢?用英文逗号来隔开, 你像我们这一个元素的一个数据类型啊,列表中的元素你可以放什么呢?你可以放任意的一个数据类型,比如说你放字母串,放整数啊、放浮点数啊,你都是可以的。你那个列表创建列表里面的话,你都可以放这些元素。列表的一个核心特点就它这个可变性, 他是一个可变系列的,也就是说你列表创建后呢,你是可以对里面的元素,他是可以去进行一个真删改查的一个操作的,原组的话就是没有这些操作,就是与原组的一个主要的一个区别。那我们为什么要需要用到列表呢? 就比如说如果你一个班上有一百个同学,然后每个同学的那个姓名,你都要给他去存到那个里面去,那你应该如何去书写程序呢?申明一百个变量吗?肯定不是的,对不对?我们使用列表就可以了,因为列表的话他一次是不是可以存储多个数据呀? 那就在 python 中,我们这种类型的话就称为列表。在其他的那个编程语言中,比如像 java、 php、 go 语言的话,它是被称为宿主的, 那就是关于列表的一个定义及它的一个特点啊,可以存放的一个数据类型。那现在我们来看到的就是说列表它的一个创建方式是怎么创建的呢?有两种。 第一种呢,就是我们直接去创建它的一个语法结构,就是这个列表明的话,它会等于我们的这个中括号,英文的中括号,然后第一个元素,第二个元素,第三个元素依次类推等等等等,它可以存很多很多的一个元素类型, 这里有一个视力。然后第二个方法的话,就是说我们直接使用类值函数 list, 然后小括号来创建 语法结构呢,就是我们这个列表名等于我们这个 list, 然后一个序列,然后我们接下来我们一起来创建一下这一个元素,创建一下我们的这一个列表类型,同样的我们在这里的话去新建一个 python file 的 文件夹叫做列表, 我们叫列表。好了,首先我们来看到的就是我们这一个列表的创建, 我们刚刚是不是说列表它创建有两种方式,一种就直接创建,比如说我写一个 list 一 list 一 会等于我们这个列表列表里面的元素是不是可以是字母串,也可以是整数,也可以是浮点数?那我一样写一点,比如说我写一个 a b, 然后我写一个 c a b c, 之后我写一个一二三三点三三三点三三吧,它是不是有很多很多,有很多很多的一种数据类型。然后接下来呢我们来打印一下它的这一个列表,比如说 print list 一, 然后我们鼠标右击运行一下, 他是不是把我们所创建的这一个元素类型都存放在这个 list 一 这一个列表里面了?那么这个的话就是我们直接就是来创建这一个列表,就是用这个中括号。那我们是不是还有一个方法,就是使用这一个内置函数这一个 list 来创建,对不对? 使用内置函数 list 来创建同样的,那我在这里的话,我去定一个 list 二,就是我的变量名嘛,我变量名随便取的一个 list 二会等于我们这个 list 的 话,然后 中那个小括号里面就写我们这一个序列类型,是不是你要放什么东西?比如说我放一个 abc, abc 之后,然后呢我是不是 可以给它打印一下我这一个二,打印一下我的这一个列表的这个二,就打印一下我这个变量的 list 二,是不是这个是直接通过内置函数来创建的?同样你可以发,你发现没有, 它同样的就是把我们这个列表存放这个 abc 这个元素,它是不是放到了这个列表里面给打印出来了,对不对?那比如说我写一个列表里面给打印出来了,对不对?那比如说我写一个 list 三, list 三的话,它等于什么呢?等于我们的这一个, 比如说我这里面我写一个什么,写一个 range 函数, range 函数的话就是所以从一开始,然后到时结束,它是不包含时的,然后不长为二,那么它这一个取出来是什么呢?我们来打印一下 print p、 r、 n、 t, print 我 们的这一个 list 三, 右击运行一下,它打印出来就是一个 range, 然后一,所以从一开始到十结束不长为二,这个的话是不是 也是可以给它,就是给它取出来?因为这一个圆列表的话,它是里面这个数据类型,它是可以是任意的,它都会给你取出来。 所以说列表它这个创建大家学会了吗?一种就是直接创建英文的中括号,然后里面写我们的元素类型,中间用逗号隔开。然后第二种就是直接使用这个类似函数 list 来创建, 因为我们这个列表的话,它其实也是序列的一种嘛,我们对序列的这个操作,它同样都是可以去用的。比如说我们来写一个什么呢?我写一个 print, print 我 的什么,我们来用一下它的这一个相加的一个操作,比如说我写一下我们这一个 print 的 一个 list 一, list 一 去加上我的这一个 list 二,我们来鼠标右击一下,运行中你是不是可以看到它把我的 list 一 跟我 list 二它的一个值都给它加进来了呀?是不是同样的,我们也可以做一个相乘的一个操作,比如说我 print 我 的这一个 list 二,去乘以我们的这一个三,然后右击运行,运行之后我们可以看到我们这个 abc 是 不是打印了三次 abc, abc, abc 是 不是这个就是它其实是适用于我们刚刚前面所讲的这一个序列,所以它之间的一个相关,就是刚刚的这一个 序列的一些相关操作,对于列表的话它同样是适用的,那么我们一起来看一下它的这一个 列表的一个删除,那么你创建好的列表你要怎么去删呢?我们用到的是这个 d o、 d e l, 比如说我要把我的这一个 list 三,我给它删一下,那我们直接写一个 d o list 三,然后我们来鼠标右击运行一下, 删完之后呢,我们怎么去查呢?比如说我再去打印一下我的这个 list 三, print 的 list 三,然后我们再运行,看一下运行之后你会不会发现它报错了,它说没有 list 三被定义,那也就是我们这个 list 三它其实就是被删掉了。 那么这个呢?就是关于我们这一个列表的创建,就是有两种方式,一种是直接创建,一种是通过这个类似函数例子来创建,然后删除的话,就是用的这一个 d o, 然后这一个列表的话,他对于序列的一些其他的一些相关操作,他在列表当中同样也是适用的。 接下来我们一起来看到的就是列表类型的一些其他的一些操作,常用的就是这一个真三改查的这个操作。比如说我们这个增加数据,我们会用到这一个 app 的 方法,就在列表末尾去添加一个元素,然后 insert 的 话就是在指定的一个位置添加元素, 删除的话有 remove 方法呀,还有 delete 的 这一个删除查找就用这个 index 方法,统计元素出现的一个次数的话,就用它 count, 修改的话,这是它的一个真删改查。那我们可以在我们这个 python 当中,我们可以一起来给它去写一下, 那我们首先还是打开我们的这一个拍叉幕,我们在这里呢去新建一个 python file 的 一个文件夹,那么这里的话就是叫做我们这一个 list 的 一个相关操作。好回车, 回车之后呢,我们首先我们首先来看到的是什么?我首先我是不是要去添加,我们首先要看到的是什么? 是不是我们这个添加方法?添加方法知道第一个就是我们的这一个 append 方法, a p p a p p n d, 对 不对? append, 那 么这个 append 的 方法它的作用是什么?它指的是不是在我们的这一个在列表的一个末尾去添加一个元素, 在列表末我去添加一个元素,比如说我定一个 my list, 我 定一个我的列表,等于什么呢?等于我的这一个一二三, 然后呢我是不是要去添加一个元素,比如说我去添加一个四的元素,比如说那就是 my list, 对 不对?点上我们的这一个 open 这个方法,然后我在这个里面我要添加一个四,那我直接在这里写一个四,然后我们再来打印一下我的这一个列表名, print my list, 然后我们鼠标右击运行一下,运行之后大家可以看到它输出的是什么?它是不是输出的就是我们的这一个, 输出的就是我们的这一个一二三四呀?是不是?我们来看一下它的这个第二种方法添加的第二种方法,我们刚刚是不是有说就是我们的这一个 insert? insert 这个方法的话,它是不是指的是什么?在指定位置, 在我们这一个指定位置你去插入一个元素,那同样的我们还是用我们的这一个 my list, 等于我们的这一个一二三。 my my list, 我 这个代码补全套,老是给我自己补啊,有点恼火。 my list 等于我们这一个一二三,然后呢?我这里是不是 我可以去指定在指定的位置去插入一个元素,比如说我要在这一个之间我们去插入一个元素,我要怎么去插呢?就是我要在这个一的后面,我去插入一个四,我怎么去插? 那我是不是直接用到了这一个 insert 的 方法呀?那我们这里是不是 my list? my list 什么呢? my list 点上我们的这一个 insert 这一个方法,然后 首先要写入你要在谁的后面去插入,你先把前面那个位置写上,然后插入一个什么数据呢?比如说插入一个四,然后我再去打印一下我的这一个 my list, 去打印一下我这一个列表,然后我们来鼠标右击运行, 看到没有它这个的话,就直接就是在我们这一个一的后面去插入了一个四,对不对?这个就是在指定位置去插入我们的这一个 元素啊?我们来那么它这里的话就是输出我们的这个一四二三,我们把注是给它写进来, 输出我们的这个一四二三,这个就是在指定位置去插入元素。然后接下来我们一起来看到的是什么呢?我们来看到的是这一个删除数据,删除数据的话,首先第一种是什么? 第一种是不是我们的这一个 remove remove 方法,那 remove 方法的话它是什么意思呢?它就是指的就是我们去移除,移除我们列表中列表中第一个匹配的元素,第一个匹配的元素, 同样的我们来用我们的这一个我来定一个 my, 我 的这一个列表 my list 的 话,它会等于什么呢?比如说我这里写一个一二三,然后再写一个三四, 那我现在我要去移除我的这一个方法,那我是不是有用我的这一个 mylist 的 这个列表名字呀?列表名字点上我们的这一个 remove 方法,比如说我要去移除三,我要去移除我的这一个三,然后我再去打印一下我的这一个 my list, 来鼠标右击运行一下,它打印出来是不是也是这个一二三四啊?我们的这一个三的话,它被移除掉了,因为 remove 它的这一个方法的话,就是移除第一个移除我们第一个匹配的 匹配的三元素三,所以说 remove 方法的话就是你要移除谁呢?你就给他写进去,他匹配移除的就是列表中第一个匹配的元素,用我们这个三的话,他也是重复了一下,对不对? 所以说这就是关于他的这一个 remove 方法,去删除我们的这个数据。然后我们是不是还有第二种方法呀?第二种方法就是我们的这一个 do do 语句去删除的话, do 语句你去删除的话是什么呢?它就是删除我们这一个列表中, 删除我们这一个列表中指定位置的一个元素,指定位置的元素我们来写一下,同样的我们还是用我们的这一个变量,就是我们这一个 mylist, my list 的 话,它会等于我们这个一二三一二三四, my list 等于一二三四。那我现在我要去删除我这一个 my list 当中的第一个元素, 也就是它是什么意思呢?它是去删除我们这一个所以为一的删除所以为一的一个元素, 删除所有唯一的一个元素。那我们来打印一下所有唯一的一个元素是什么呢?是不是要删掉那一个二啊?我们来运行一下,是不是变成了一三四? 看到没有?他删除了所以唯一的一个元素,那么他就是变成了一三四,因为,所以是从零开始嘛?所以是零一一二三删除,所以唯一的就把这个二删掉了,那么这个就是关于他的这一个列表当中的一个删除数据。接下来我们一起来看到他的一个查找数据。 真三改查嘛?我们现在来看到的就它的一个查找数据。查找数据呢?我们首先来看到第一个就是我们的这一个 index, index 这一个方法的话, 它是用它的作用是什么?它是不是去返回我们这一个列表当中某个元素的一个缩影位置啊,某个元素的一个缩影位置。 同样的我们这里定义了一个 mylist, 我 的这个列表它是会等于这一个一二三四五吧?一二三四五,对不对? 一二三四五的话,然后呢我的这一个查找的话,我是不是这个 index, 我 定义了一个 index 这个变量,我定个 index 一 吧, index 一 的话,它会等于 我们把上面的先注视一下啊,不然有点混淆了,等一下直接快捷键 ctrl 斜杠就快速注视。那我这一个 index 一 这一个变量的话,它是不是会等于我这一个 mylist 的 这一个列表列表名, 然后呢我的这一个 index, 它是不是返回某个元素的一个所以位置?那这个它就是,那么它这一行,它这个代码的意思就是返回所以为三的一个元素,对不对?所以为三的一个元素位置,所以位置吗? 那么我们来打印一下我们的这一个 index 一 这一个变量,我们来数一下零一二三,那么它这个打印出来是什么呢?我们来右击运行一下,是不是 返回缩影,返回缩影三的返回元素三的一个缩影位置。 哦,这里的话,我这里注视,我写错了,他这个是返回元素三啊,也就是说他这个三的一个缩影位置是什么?是二,对不对?返回元素三的一个缩影位置,这里的话是不是零一二三的一个缩影的位置,是不是二呀?所以说他返回的是一个 二,这是他的一个查找的一个方法。那接下来我们是不是还有一个方法是什么呢?就是统计, 就是统计我们的这一个元素出现的一个次数,那么同样的我定义了一个 my list, 我 定义了我定一个我的这个列表,列表一吧,我这个列表一等于这些一二三四, 等于我的这个一二三。比如说我随便写一二三,然后有一些重复的数据,一二三四,然后二三四,我这么写可以吧?一二三四,然后二三四,是不是一二三四? 我再写一些,写一些重复的数据吧,然后他等一下会统计我出现的一个次数,比如说我多写几个二, 我现在是一二三四,二五二三,然后再写一个二,那么我这一个 count 的 话,我头我是不是我定一个变量,比如说我定一个 count 一, count 一, 它是不是会等于我的这一个 my list, 然后 去 count, 我 要去统计一下我这个二出现的一个次数呀?那么它这个的意思是什么呢?就是统计我们的这一个元素二它所出现的一个次数,然后我们再来打印一下我的这个 count 一, 然后我们鼠标右击运行一下 元素二,他所出现的次数是四次,是不是我们看到这个列表一个、两个、三个、四个,对不对?那么他这一个就是列表当中的一个查找数据,然后以及去统计他出现次数的一个写法,我们把这些给他注视一下。 那接下来我们一起来看到他的这一个列表当中的一个修改数据,我怎么去修改呢? 首先我们先定一个列表,我是不是要先去写我这一个修改指定位置的一个数据啊?修改指定位置的一个数据,就是你修改前你的数据长什么样子啊?同样的我们定一个 my list, 我 的这一个列表的话,它会等于什么呢?比如说我等于语数,语数音 chinese, 然后 math english, 我 的这个列表是不是等于这三个等于这个语数音这三个字串啊?那我现在要将所有唯一的这个元素去修改一下,那是不是 my list, 然后中括号,中括号、中括号,这里写一,这个就是将我们所引为一的这一个掐例子,我们给它改成什么呢?我们给就给它改成 pass 嘛?然后呢这个我们来写一下注是,那么它这个就是将所引为一的 将所以为一的这一个 math, 对 不对?改成 python, 这个有问题吗?我们再来打印一下我们的这一个 my list, 鼠标右击运行, 大家可以看到我们本来这一个是不是 math 是 数学,现在改成了一个 python, 对 不对?那么这个的话它就是关于我们的这一个列表当中的一个 修改操作,就所以唯一的这个 max 被改了,改成了这一个 pass。 那 接下来我们来看一下一些其他的一个扩展操作,我们把上面这些内容给他注视一下。首先呢我们先来看他的这一个,嗯,我们这里写一下扩展 扩展操作。首先呢我们这里首先我们是不是要来获取,比如说我要去获取他的这一个长度啊?怎么去写呢?是不是用的嫩啊?获取列表长度, 同样的我们还是用来用这一个我的这个列表,我的这个列表写什么呢?比如说我写个一二三四五, 我定义了一个列表是一二三四五,然后我现在我是不是要去获取我列表的一个长度啊?比如说我再去定义一个变量叫嫩斯一,他会等于我们的这个嫩用到的是嫩方法,嫩上我们这一个列表的这个名字,然后我再去, 我再去打印一下我这一个 num 十一,然后我们来鼠标右击运行一下,运行中可以看到它的这个列表的名字,列表的长度是五,对不对?那么这一个 num 的 话, num 是 不是 获取列表长度啊?这个方法对不对?获取列表长度,那么这个就是关于它的这一个嫩的一个操作。然后呢我们再来看到一个什么操作呢?就是关于它的这一个排序操作, 列表当中的一个排序操作。首先我们来看到的是我们这一个 sort 方法, sort 方法的话,它其实就是 对我们的这一个列表对列,对我们的这个列表去进行一个排序,去对列表去进行一个排序,默认的话就是声序默认声序 默认默认声序排序,那我们来定一个,首先还要一次我们来定一个我的这个列表 my list, 等于这个 一二三四,我这里的列表我可以打乱去写,比如说我写一个什么呢?嗯,五二 五二九一五六,我随便写七。然后呢我是不是要对他去进行一个顺序排序,列表明点上我们的这一个 sort, 因为这个 sort 方法的话,他就是去对他去进行一个顺序排序,然后呢我们来打印一下我的这一个列表名, print my list, 好, 我们来鼠标右击运行一下一二五六七九,它是不是给它去进行了一个升序的排序啊?那如果说我想给它从大到小呢?我给它降序排序,我怎么去写呢? 同样的就是我们的这一个列表名,然后点上我们这个 sort 方法,在 sort 方法里面你写一个 reverse 等于 true, 那 么这个呢?它就代表的是我们的这一个降序排序, 降序排序,然后我们再来打印一下我们的这一个列表,鼠标右击运行,那这里可以看到它是不是从九七六五五二一了,也就是它对它去进行了一个降序的一个排序。 那么以上呢,就是关于我们这一个列表它其他的一些相关操作呀,比如说你像这一个增删改查,增加的话可以用 open 方法 insert 方法,然后删除的话就 remove 跟 delete, 以及这个查找就用 index 统计次数是 count。 然后这一个修改的话就是指定位置去修改啊,包括说我们还扩展了,就是怎么样去获取它的一个长度啊?怎么样去对它去进行一个升序和降序的一个排序啊?那么这一些呢,就是关于我们这个列表的一些操作,相关操作。

解包拍算中一项强大且实用的特性,它能直接将容器类型中的元素拆解为独立的变量或者参数使用,从而简化代码并提高可读性。根据使用对象和场景,解包主要被分为三大类,一系列解包专门用于可迭代对象,能按顺序把元素分配给多个变量。需要注意的是,变量数量必须与元素数量一致,否则会报错。 在这个基础上,拍算还提供了两种更灵活的扩展解包,可以自动接收剩余的所有元素并封装为列表,不用再严格限制变量个数。 另一种是下划线站位解包,下划线作为约定俗成的站位符,解包时可以用它忽略单个或多个无关元素,只保留需要的值。 二、字典解包字典有两套解包方式,功能完全不同。单星号加字典默认拆解出自典里的所有键,双星号加字典能拆解出完整的键值,对直接作为关键字参数使用。有意思的是,通过双星号解包还能快速实现字典合并。 三、函数参数解包解包在函数中堪称神器。信号 i x c 和双信号宽 x c 是 拍摄函数的经典组合,分别接收任意数量的位置参数和关键字参数,两者搭配使用能让函数完美适配任意形式的传餐。

本期内容我们来讲一下 python 的 变量与数据。在 python 编程的世界中,一切操作的源头都离不开两样东西,数据与存放数据的容器,它们之间关系就像标签与物品。如果把程序做一个处理信息的工厂,那么数据就是流动在其中的原材料,这也是一个数字 变文字或是真与假的判断,而变量则是贴在这些材料上的标签,或者说是临时的储物盒,通过变量我们才能轻松的找到、修改并附用这些 数据。 python 的 特点是动态同一个变量可以先存整数,再存字幕串,非常灵活,掌握变量和数据,你就掌握了让程序记住和操作信息的能力,相当于拿到了驾驭程序逻辑的第一个要素。所以这节课同学们会去学习到很多的一些函数单词啊。 好,那么我们从课间还是从课间入手,先来看一下在内容的。在课间当中呢,也是分好了啊,就是字母串的下标,字母串的切片以及字母串的一些函数操作啊,包括类啊, send index 和啊 replace 这一些函数等等的。 好,那么可以看到这节课还是以字母串这一类数据为主为主啊好,那么同学们可能会有一点疑惑,这个字母串老师我之前第一节课我就学过了,为什么今天还要拿出来单独作为一个章节去讲,为什么 来看?在前面两节课当中,其实我们学习到的字母串对吧?它这种类型 我们在认识他的时候,你就能够去感受到,他这种类型较为特殊,他比我们学的这个布尔类型, 数值类型都不一样,他所含盖的这个内容是非常宽泛的,那其中他的引号里面是不是可以去包含 数字字母、下划线啊,特殊符号啊?什么问号、肩胛号,对吧?啊?什么感叹号、爱字符号,只要是个字母,甚至说是空格都可以包含在引号当中,它的内容非常的宽泛,它可能只带的是 某某网站的一个网址,它可能还可以是某某小说里面的一整个 章节文本,他这一整个长一整个啊章节的内容都可以作为一个制服串去进行存储。甚至说 我们之后在爬虫当中,你去爬取的一整个网页数据,他可能 就是一个巨大的字幕串,一整个网页数据是一一个大的字幕串, 我们如果说要从这个网页当中去提取我们要爬的那个目标数据,那么就需要从这个大的字幕串当中,哎,我去查找, 我去替换,我去拆分,我去合并,就是涉及到很多很多的一些制服算相关操作,所以呢, 制服算非常重要使使就是使用场景非常多啊,他的可操作空间非常强。好,那么接着往后面看 啊,字母串,顾名思义啊,就从从这个字面上的意思,你可以知道它其实就是一连串的字母 放在了一起,你像这个字母串,它其实就是字母 h、 字母 e、 字母 l、 l、 o 这五个字母放在一起串在一起,就称之为字母串 啊。那么像制服串呢?他的操作空间是非常大的,在制服串当中的每一个字母或者数字都是作为制服串的 制服而存在,包括一个中文啊,一个中文也是一个制服存在,包括空格也是同样如此。那么今天我们将全面去了解一下制服串他这一类数据的 操作,这这幅串数据的操作学了之后,后面你要去做这个 python 的 数据清洗呀。 哎,用的就是这一章节的内容啊,就看你基础有没有打好了,来继续往后面看。首先呢,就是最基础的这个这幅串定义创建操作,哎, 我们可以通过单引号,可以通过双引号限制三对引号去定义创建四福串顺序。哎,老师,三对引号也 ok 吗?也 ok, 那 老师看起来跟那个注是多行注是一模一样,是不是?你就区分一下嘛?你像,你像,如果说这三对引号前面是没有变量的话,那么他去就是个注式, 如果他有去将他作为数据保存的话,哎,那他就是个字母串,你就看前面这一段有还是没有,就近区分了。那老师要告诉你的是,三对引号也是引号,所以那他也是个字母串。 好,那么老师不做过多的陈述,简单带一嘴啊,这个就是字母串的定义 创建,直接去运行啊,运行成功,那么说明存储成功,存储到 s 二成功,存储到 s 三也成功了, 步骤过多,讲解直接来再往进一步去看一下。那么制服上的第一个操作就是之前跟你去讲的拼结合并操作很熟了,对不对? 来,比如说前面有个 s 一,下面有个 s 二,现在我就用加号把它拼在一起,没问题吧? 我就用加号给他拼在一起,哎,其实这就是我们学过的第一个关于字母串的操作,叫拼结合并操作,右键去运行,哎,这就拼好了 啊,这就拼好了,是不是?你像我们之后,我,我简单给你去讲一个场景啊,我们之后你去 打开一个表格文件,表格数据它,那它里面的数据是不是有很多很多列,我们要将第一列数据和第二列数据合在一起,那就是这么一个制服算拼结合并操作啦, 是不是?好,那么他这两个数据是紧紧挨在一起的啊,我们可以在中间呢,以字母串类型, 再给他加一点隔开的一个符号啊,加个逗号,加个空格都行啊,那么这就相当于一二三三个字母串通过两个加号合并在一起的结果,哎,就是他 是不是好,那么这个啊,不多说啊,这个加法合并操作,哎,咱们已经是接触过蛮多次了,是不是? 好,那么直接上第二个吧,也就是我们今天要学的第一个新的知识点,关于下标和切片的操作。切片的操作啊,好, 首先下标和切片他们是一家人,他们是一起的啊,下标呢,是个简单版本的, 在字母串当中去获取其中的一个字母的操作,而切片是个升级版本的, 他可以在这个字母串当中去获取多个字母,那其实就是一个字母和多个字母的区别,分别是下标和切片的操作。那么总就是总结一下,总结他们两个都是用于什么呢? 是字母串中去获取里面的字母的 操作,你可以理解成查找某个字母获取某个字母获 取操作,查询操作嘛,是不是?好,来,直接看吧,先看查询啊,不,先看下标,先看下标来,首先呢,我们是学习去认识一下下标这个概念,在 python 里面呢,我们知道字母算是由一系列字母组成的一个训练。 什么是训练?他是讲啊,就说一系列字母在这个引号当中按照顺序排好的队列 啊,就是把它称之为训练了。哎,所以就是说啊,这个字母串呢,就是一系列字母组成的一个有顺序的队列, 剧烈啊,那么每个字母因为他有顺序的排列在这个地方,从左到右去排列在了引号当中,所以每个字母在引号里面呢,你一旦把队排好, 那么他都会有一个唯一的位置在这个地方,这个唯一的位置就可以被理解成下标。下标什么意思呢?你说下标,你可能听不太懂 编号,同学们能不能听懂编号?再比如说座位号, 座位号能不能听懂编号?我们打篮球啊,我不打啊,但是我还是喜欢看的,打篮球的时候,是不是每个球员那衣服后面是不是都有一个编号? 座位号,我们去坐火车,每个车厢每个座位都会有个座位号,这些座位啊,他都是按照顺序排列好了,然后给到他一个编号。好,那么我们是不是 要根据这个编号去找到你的位置在哪里? ok, 那 么在字母算当中,他也是一样的,每一个字母他默认,注意,是默认的啊,不要问老师这个编号从哪里来的,是默认 是这个数据存储到变量之后,他就自带的编号。那么注意, 我是说他们每个字母都有编号,那么他的编号是多少?他的下标是多少? 哎,注意,他的下标默认是从左到右,从零开始计数,即字母串当中第一个字母的下标就是零,第二个字母的下标就是一,以此类推。那么老师就数了啊, h 就是 零,一就是一, l 就是 二, l 是 三, o 是 四, 然后这个逗号也算啊,他算个五,这里又遇到一个空格,空格也算,算个六, w 就是 七,彼此去数,我就没数完了啊。 ok, 那 么这个零一二三四五六七就是所谓的下标,他的存在就是为了方便我们通过这种编号的方式去获取到来自字母串里面的 一个字母,可能是他,也可能是他,我们直接通过他所去对上的这个编号 去进行获取,因为下标他是允许你通过这个下标值也编号值吗?去拿到字母串当中的这个字母的。那这就是拍摄里面关于字母串操作的。 呃,一套方式,一套规则,也就是下标这一套规则。来,我们来试一下他怎么去操作的吧。 ok, hello, word 存储在变量当中。好,我直接把这个变量写过来,后面跟一对中括号, 不要问老师,为什么要是中括号,能不能来个小括号或者来个大括号行不行?不行,那人家就是这样的固定写法,不能改的啊,那么小,那么这个中括号里面呢?给到哪个编号就把哪个字母从这个队列当中喊出来, 那我给个零,是把这个 h 喊出来了,我给个四是把这个 o 喊出来了。零一二三四嘛,是不是给个七, w 就 出来了? ok, 来试一下吧。下标和切片,先讲下标,一句话,下标是什么?下标就是编号 啊,就叫的专业一点,你就叫他下标,你再专业一点,你也可以叫他,所以啊,反正称呼有蛮多指的。这个啊,东西是同一个的啊。 也是,所以也是。所以啊,那么他是,他是可以获取,他是可以什么?可以通过 哎,这个自带的编号去获取制服的方式来看一下吧。具体的这个方式,这个语法是什么?就固定的写法是什么? 是不是先把字算写好,后面跟个中国号,一定得是中国号啊,把编号放进去就行了。举个例子,四川一里面存个 hello world 啊,我再加个逗号吧。 ok, 这个编号啊,你可能要问老师了,能不能老师你告诉我这个编号是多少?这个没有办法,就是自己去数啊,就从左边,从左边到右边,他是从零开始自己去数的,你数错了,那就是 那你拿到这个数据就是错的,明白,这没有办法的。好,那么这个的话给他标记一下,哎,给给段距离啊。 ok, 好, 那么来直接来看吧, 我比如说想要去获取这个字母 h, 从字母在当中获取的话,直接 字母上的名字先写下来,把这个词串 e 写过来。一定是词串 e 吗?不一定,你把这个 hello word 写过来也行, 但是 hello word 已经存变量了嘛,所以还是拿变量过来。是不是后面中国号把编号跟上跟个零, ok, h 是 不是拿出来了?拿出来之后,哎,我要看一下输出的结果,加个 print 有没有 h 是 不是出来了,是不是? ok, 那 么再试一下,老师我要把这个 w 拿出来 w 你 往下一看,我已经数出来了,编号是七,是不是你来一个 print 先写字母串啊, 字母算你直接把他的这个字母算跟过来都行。来对中国号编号给个七来并行。哎,这个就是 w, 这个 w 能够通过数字编号七取出来,那么说明空格他确实是算作是一个编号的,包括逗号,一些句号啊,这些符号都是算的,算一个 算一个啊,算一个还包括什么呢?嗯,我这个地方给一个。 嗯,张三, ok, 来我这里想要去获取张三的姓, 就那个张这个字是不是四川一,给个几,给个几。来,告诉老师,他给个几。这中文他是算一个字母还是算两个?对, 给个几。 o 是 四吗?张三是几?六还是五?试一下吧,可能有的同学现在正在敲键盘在试啊,那老师的速度要比你快一点。 边他的这个下标值是不是五,再给个六看一下是不是三,所以中文他是算什么呢? 中文他是算一个字母的啊。好,那么我们这个地方直接写在这里吧,注意注意,空格和字和中文都是算一个字母, 为什么用 string 一? 因为这个字母串这个数据被存储在变量 string 一 当中,所以你要从字母串当中去通过编号取数据, 你的这个中框前面你可以写个 string 一 来表示字母串数据,你也可以直接把这个数据跟过来,两种方式都可以啊,这里只给你们演示一下, ok 不? 那下标 的常用操作就是编号认识一下编号就行,然后有一个有一个点要给你们去讲一下啊, 你们看一下我在这里写的编号是不是都是正整数,有没有负的,咱们猜一下。 正编号就是正下标吗?有没有负的你们猜一下。那老师你这么讲的肯定有了,是不是 有?有是有,但是用的不多啊,就通常我们是用正下标去获取制服,就是我们同学们正常的逻辑去思考。我肯定也是用个正数吗?那负数 我都觉得有点难数,是不是?那负数的话,负数,注意他这套负下标是从右边到左边, 从负一开始,然后字母 d 是 负一,字母 a 是 负二,以此去令推负三,负四, 负五, ok, 那 么其他的我也不数了,怎么一看就会觉得,哎,老师,我还是用正下标好一点啊,是不是这个就是负下标, 能不能去取数据呢?能不能去取下标呢?那肯定是能的,只说用的不多,你比如说我现在我觉得数到最后一个字母我很累啊,我万一数错了咋整?哎,有个好办法, 直接四寸一中框里面接个负一负一直接定位到也不是没有好处,是不是?看没有?看没有也不是没有好处。好,那么下标就讲到这里啊,下标就讲到这里了,那么这里呢?啊?负一 获取最后一个支付, ok。

每日学习一点 python 知识,今天要学习的是 python 加爬虫介绍,接下来的几分钟我们来学习 python 基础和爬虫基础。 python 的 实用性极强,几乎包含了所有编程领域,无论是开发爬虫、数据分析、人工智能还是自动化运维, 嗨党都能够胜任。在互联网信息时代,谁能挖掘到更多信息,谁就能获取到更多价值,这就不得不提到我们即将要学习的爬虫。网络爬虫又称网络蜘蛛、网络机器人。所谓的爬虫就是按照一定规则从互联网中获取网页内容的程序。 搜索引擎就是最常见的爬虫程序,比如百度搜狗、三六零、浏览器搜索等等。咱们举个例子,打开百度的一个搜索引擎,我们在里面呢 输入一定的这个关键字内容,它会给我们很多相关鲜花。关键字的数据像什么图片啊,商品链接啊,文字啊,然后还有视频啊等等。那么像这整个过程呢,就是使用百度搜索引擎搜索关键字时,百度蜘蛛就会根据你输入的关键字 去互联网中自由抓取相应的页面,最终呈现到用户面前。那爬虫它的一个需求量是非常大的,目前许多公司专门设立了拍蛋的爬虫岗位, 我们可以去到一个招聘网看一下,在这个招聘网当中,我们输入关于爬虫的一个内容,然后就会可以看到有非常多相关爬虫的岗位。那为什么爬虫的需求量这么大呢?它工作内容是什么呢?爬虫的工作职责就是为公司的业务拓展提供数据支持, 比如及时获取市场动态、产品信息等等。除此之外呢,网络爬虫也给我们的生活带来了便利,我们可以去编写一些对于字及有用的程序,比如抢购火车票 商品等等。在这边我将展示一个爬虫的小案例,让大家体验一下爬虫的乐趣。可以看到整段代码,整个项目,它的功能就是爬取某音乐网站上面的音乐,并且把它下载到我们电脑当中,我们会下载到这一个文件夹里面,目前是空的,因为现在还没有开始去 pass, 我们将运行这一个程序。好,那么他就会帮助我们大量的去抓取音乐,出现一首音乐的歌名呢,就代表着他爬了一首。我们可以看到本来空空如也的一个文件夹,现在出现了很多的内容, 他一直在更新,一直在增多,这个就是爬虫。那我们先暂停来听一首音乐,随机的挑首一首这个优美的音乐来听一下, 是不是可以通过这个爬虫我们就能够随意的去听歌呢?这个就是爬虫它的一个效果。那么我相信很多同学都开始期待着来学习我们的这个爬虫内容了, 那么咱们本套课程呢,适合从零开始学习爬虫的同学们讲解拍档基础内容和基础爬虫内容,没有任何编程基础的同学都可以学习。 为了降低初学者的学习门槛,本课程采用了知识点理论讲解加爬虫实战分析结合的方式讲解课程内容,那么我们就要开始去学习啦,本篇就给大家讲到这,下期我们去讲爬虫工具安装。

pi 森从零起步一次学会第三章三点四常量。好嘞,各位,那这一小节呢,我们来说一下常量,哎,非常的简单啊,就三句话来,先看第一句话,什么是常量?哎,所谓的常量呢,就是一旦被赋值就不希望被修改的量, 所以你看啊,从这个定义上,常量就是区别于变量而存在的,你变量不是可以改吗?哎,那么常量就是不希望被改。 那第二句话呢,就是 python 中一般约定使用全大写的变量名来表示敞亮。哎,如果说涉及到多个单词的话,那就用下划线呢,去做分割。哎,就是我们之前说的那个蛇形写法。 好,那我们回到代码中来实际操作一下,文件呢,已经提前建立好了啊,叫零四常量。那我先写一个啊,比如说呢,我写一个大写的 abc, 然后让它的值呢,是十六,那这段代码咱得说没有语法上的错误,对吧?你看我常量的名呢,也大写了,等号也有,对吧, 但是从含义上来讲呢,是不太好的,因为你这个 abc 呢,它没有任何的含义。哎,那我换一下,比如说呢,我写一个 a 值等于十八, 那由于 a 值呢,是小写的,所以此时的 a 值不是常量,而是变量,那你想让它变成长量呢,就得把 a 值大写,那有两种办法去把它大写。那第一种呢,很简单,就是删掉这个小写的 a 值,然后我们自己呢,去写一个大写的,但是这种呢,不推荐,因为很麻烦,对吧,你还得自己手敲。 那第二种呢,就是我选中这个 age, 然后呢摁一下 ctrl 加 shift 加 u 这一组快捷键去切换大小写。哎,那比如说呢,我摁一下,哎,你会发现小写的单词呢,变成大写了,那我再摁一下,哎,又变成小写了,对吧?那我现在想写的是常量哎,所以呢,我再把它切换回大写。 那如果说我想表达的不是一个单纯的年龄,哎,比如说呢,是一个法定的成人年龄,那这个时候我就可以在前边加上一个词儿,哎,叫做 adult, 意思呢,就是成人,哎,然后后边呢,别忘了再来一个下划线,做好两个单词之间的分隔。 那其实类似的呢,还有很多,我再给大家举几个例子啊,那你比如说呢,我写一个 months in year, 哎,就是一年有多少个月,哎,那很明显是十二个月。你比如说呢,我再写一个叫做 max users, 哎,值呢?让它是一千,那它的含义呢?就是最大同时在线人数,哎,比如说你设计了一个什么网上课堂之类的,哎,那同时线上听课的人数上限呢?就可以用这个 max users 去表示 啊。那再比如说,我写一个 passing score, 等于六十,哎,含义呢?就是及格的分数线,好,那我写一个 print 去打印一下它们,哎,写完了之后呢,我摁一下, ctrl 加 alt 加 l, 哎,就是格式化一下,然后呢右键运行, ok, 是 没问题的。 好,然后呢,我们再来验证一下,就是长量不能修改这事,哎,比如说呢,我的系统升级了,我要把 max users 给它调整为一千二,哎,那我能不能改呢?来试一下啊, 我右键运行,哎,你会发现居然改成了,哎,说,老师这是咋回事呢?哎,这里大家一定要注意,它说的不希望被改啊,指的不是这种改, 它指的是你定义好一个常量之后,在后续的代码中,你去对这个常量所进行的修改。哎,就比如说我在这一行我再写一个 max users, 这回呢,让它等于一千三。 好,那此时就是你第三行的代码是在定义一个常量 max users, 然后你的第五行呢,就是在修改这个常量,那所以说第五行是 python 不 希望我们去做的, 但目前看来呢,他也没有啥报错和警告。所以呢,我们来测试一下啊,我右键运行,哎,你发现很神奇,居然改成功了,说,老师,这咋回事啊?都说了不希望被修改,那他咋还让你改成了呢? 哎,那这就得聊到关于常量的第三句话了,就是 python 中其实并没有一个强制的常量机制。 哎, python 中所谓的常量呢,其实本质还是变量,只不过 python 程序员一看到大写,哎,那就明白了,这是一种谁都不去修改的一种约定,哎,简单说就是 python 中的常量不能改这事,它只是一种软限制,哎,或者你说这是一种君子协议, 哎,如果说有一天你真的去改了,他也能让你改成,但是在一些其他语言中,常亮不能改这事,那可是一个强硬的限制。哎,就是说,如果你敢改常亮,那我就报错给你看。 所以大家发现没,我在说第一句话的时候,我说的是不希望被修改,我可没说无法更改,对吧?哎,所以说,当有一天你在代码中看到别人定义了一个大写的常亮时,哎,你要注意不要去修改它。 ok, 关于常亮就这么点事,好,那这小节呢,我们停。

如果把 python 比作一个话痨又傲娇的老板,那 input 的 括号就是他唯一愿意闭嘴,乖乖听你说话的瞬间。平时 python 总在自顾自的运算报错咆哮,恨不得一秒输出八百行,但只要喊出 input 的 这三个字母,他立刻向被摁下暂停键,嘴巴闭上,眼神 投过来,老老实实等你投喂,你不敲回车,他就憋着不动,哪怕等到地老天荒。更有意思的是,不管你为他什么,是他,是那个红色的他都统一理解成一串字,你明明对了数字,他偏当文字说,想让他算数得额外念句 咒语, in 等括号,不然他会一脸无辜的拿着十八当一八用。总结, input 是 python 唯一肯当听众的时刻,只不过这位听众有点耳背。我们回到正题, ok, 长和宽可不可以在一行同时输入?可以的,但是我们,嗯没有去学那个制服串的一个分割操作,如果说我们是一起去输入的话,那么那么我们输入的这个数据 他可能就是这样子,他把这样的一个数据作为一个制服串,那么我们是需要去利用那个什么拆分啊,分割的一个操作,将这个制服串处理处理成长度和宽度, 然后再去相乘,所以能,但现在的支点不足够去实现。最后再讲啊,浮点型可以包含整形吗?可以包含可以包含可以包含的啊,他可以包含去转换整形数据的。 如果是原型涉及到啊,你说那个是需要去引入,引入 max 麦子这个模块当中的一个 pi, 你 看这个 pi 这个变量 模块当中的一个变量,在输出的时候,它就是那个圆周率的一个值,三点一四一五九二六,这个圆周率的值,如果说要去计算,计算圆形的话,哎,需要把它拿进去进行一个相乘啊, 去进行相册,但是现在还没有去学,我们不去纠结了,那老师写出来又要去详细解释一下模块是什么,对吧?那自己就没有去详细解析了啊,你如果说有其他的疑问,就这一方面的问题的话,下课跟老师去私聊一下好吗?就是看一下这道题有没有看懂,有没有听懂, 可以不? ok, 那 么就过了啊,我们重新再去新建,重新再去新建一个文件三,第三个板块是需要去学习格式化输出操作的。 ok, 好, 把其他都关闭一下啊, 好,格式化的一个输出操作。来,直接把课间打开看一下,输出学过了,就是 print 这个函数啊,函数小框里面, print 这个小框里面给什么数据,那么就输出怎样的数据,这是最基本的, 对不对?是不是啊?那么比如说在这个思维当中,它是通过 普通的一个变量输出操作和一个嵌入式的变量输出操作,对比了一下格式化输出它的重要性,来看一下吧。那么首先呢, 它都是对于这个数据的输出,它是怎么去输出的呢?哎 啊,简单的,简单的,这个拼接式的啊输出和啊嵌入式的输出 两种,对比一下。什么叫拼接式的输出呢?就是在输出的时候呢,这个是一个 面积值,是一个面积值,一百二十三点四五六,这个面积 数据。好,我想要去再输出的时候呢,不仅仅是将这个数据直接进行输出,而是想要用一些中文解释一下这个数据它是一个怎样的数据? 比如说在输出时,前面我去加一个四福串类型的数据,对这个 啊面积值去进行解析,它其实是一个矩形的面积 面积数据是是什么呢?是后面这个输出的内容。那么右键运行的时候你对比一下嘛?直接输出一个一百二十三点四五六,还是解释一下这个一百二十三点四五六,那种方式 对于用户来说更友好一点,那肯定是第二种,那用户看到这个数据他就会知道,哎,这是个面积值,那看到这个数据他就猜一下, 这是个高度呢?还是个长度呢?还是个面积值呢?还是谁的年龄呢?是不是?那这还还会去猜一下,是吧?那这就不用猜了, ok, 那 么像这种拼接式的,他其实已经蛮好了,但他还有一点缺点, 他有点缺点,他的缺陷是什么呢?他他和就是这个数据和这个解析词,他必须是一个先,一个后,中间用逗号去隔开两个数据吗?一个先,一个后,那如果说我想要把这个数据放在 这个中文的中间呢?比如放在这个地方输出呢?他就不行了,那我想输出的格式长这样矩形的 面积数据,数据是,哎,多少多少平方,哎,我就把这个数据放在中间显示它的同时还给他大个带个单位,前面好 还是后面好?那肯定是后面的了,对吧?这种嵌嵌入式的一个输出方式更好,是不是?那他怎么去将他去进行输出呢?你直接去运行,你发现 他是把他这个变量进行输出了,那我要的是变量里面存储的数据呀,咋整?哎,他在这个字符串 一整个字母上的前面加个 f, 再用一个大括号去将这个变量扩起来, 哎,这就是一种格式化的输出方式,叫 f 格式化输出,它可以让我们输出的这个数据更加的直观,更加 美观一点,带有格式嵌入式的一个格式,来改写一下,前面加个 f 变量,用大括号扩起来, ok 去进行输出,这是第一种,这是第二种,哎,就第二种好看一点了, 是不是?好。那么像这种格式化的输出,常见的场景有很多啊,有很多, 你像你,像我们有时候在进行这个 qq 注册的时候,对吧?他会让你去填写他那个什么呃,用户名啊,密码呀,啊,我们填完了之后呢?点击立即注册的时候 啊,你填写的这个格式是规范的,那可能就注册成功了。那如果说不规范呢?比如说你这个密码 你是少于六位数的,那么他就会提示你来个弹框,提示你,提示用户某某某密码少于六位数,注册失败, 就这样子。那这个就是一个输出的一个数据,输出的一个数据,这个输出的数据非常详细,告诉你 哪个密码错了,错在哪里。那么就类似于我们这个 print 输出,非常详细的解析了这个数据,它是什么数据,包括它的单位。所以这种嵌入式的数据,我也是给你们去讲了一个 应用的场景,我们带入一下去理解这种嵌入式的输出方式。那么接下来我们进一步跟去介绍一下,关于这种嵌入式的输出方式,除了 f 格式化还有哪些呢? 格式化输出是将数据按照指定的格式转换成字母串,并且输出的过程。那么在 python 里面呢,是提供了多种格式化输出的方法,比如说刚刚所去讲到的 f 格式化, 再比如说百分号格式化输出, ok, 那 么我们先讲百分号啊,我们先讲格式化输出吧,我们先讲这个 f 格式化输出吧。大括号怎么打的?那个大括号呢?是和中括号是一样的啊,在一个按键上 shift 加上这个中括号,这个按键就出来了。大括号是在字母 p 的 右边,看到没有,字母 p 的 右边, shift 加上这个按键。有了啊,试一下。 好,有两种方式啊,百分号和 f 格式化,先讲 f 格式化,他用的会多一点 f 格式化输出,然后第二种呢,这个是百分号 格式化输出, ok, 来看一下吧,这两个方式同学们会写就行了啊,会写就行了,来,首先是 f 格式化输出,他的语法 固定的写法同学们已经感受过了,对不对?就是在我们写的这个字母串,在输出的这个字母串 在前面加个 f, 如果自辅传的内容当中要去输出 变量的话,变量放在大括号当中,那这个就是 f 格式化输出的固定写法,它的规则遵循它的规则。我们来做这么一个操作, 首先内幕当中存储一个数据,麦芽,好,然后 age 存储一个年龄数据啊,十八,好,就两组吧,不多 好,那么现在我的需求是什么呢?我想要在输出年龄和性别这两组数据的时候, 详细去解释一下。麦芽他是个年龄数啊,名字数据,十八是一个年龄数据,所以我想要说出我的名字是麦芽, 麦芽,哎,年龄是十八啊,再加个单位岁, ok, 你 普通拿个,你直接拿个 print, 你 能做到吗?做不到。好, 那么用一下 f 格式化它的这个切入式的输出方式,我直接来对引号,把这一组要输出的内容给它扩展到引号中,以字母串类型的数据将 这个文本进行输出,那么其中这个数据和这个数据 它已经被存到了 name 和 age 中,想要切入这两个变量去进行输出,那么前面这个引号的前面加个 f, 要去输出的这个变量的位置来对大括号,再把变量放进去,来对大括号,再把变量放进去, ok, 这个就是输出的结果。好,有的人讲了,老师你直接把这一句话去进行输出,这不就好了吗? 搞这么多对不对?那如果说我们这两组数据不是直接固定的麦芽和十八呢?而是来自于上个小节所去讲的这个 input 输入所去获取的数据呢? 那现在你能保证一定是十八,一定是麦芽吗?所以就讲了这种格式化的输出,它在契合变量的同时,它能去保证 变量存储的数据不同,输出的结果是不同的,所以它既美观又便捷。 ok, 这个是 f 格式化输出,讲到这里就这么简单不难吧,就这个语法,大家需要去在写 print 输出的时候去熟练一下, 那再讲个百分号吧,基本上我们后续的学习过程中有 f 格式化够用了。但是有些场景之下,比如说我们后续在写 my socket 数据库的 socket 命令的时候 啊,你会发现 f 格式化怎么写,怎么报错,那怎么办呢?那没办法了,得用百分号格式化说出去,替代掉这个 f 格式化,也就是说 f, f 格式化不行的时候,再用百分号去做个替补,对吧? 好,那么现在来讲一下,这个百分号格式化,他其实很麻烦,他还需要同学们去记,记几个单,就记几个字母, 第一个字母呢是百分号 s, 第二个字母呢是百分号 d, 第三个呢是百分号 f, 分 别用于去输出,你像 s 用于去输出字母串类型的数据, d 用于去输出整整数类型的, f 是 浮点型的,这个其实也好记啦, 这个 float 是 不是取前面的这个 f 首字母 string 取前面的这个首字母,那 d 的 话啊,这个我们直接死记硬背吧。好吧。 啊,就三个百分号字母,大家记一下,你记到了之后呢?哎,他的语法会复杂一些,他是干什么呢?还是这个名字变量?还是这个年龄数据? ok, 你 在进行输出的时候, 他的这个写法是把输出的内容分成两个部分,这是第一个部分,哎,就是那个字母串内容,这是第二个部分。就变量你要放哪里? ok, 中间用一个百分号作为中轴线,这个百分号作为中轴线,百分号左边呢,就是你要输出的字母串,它里面是不是要嵌入式输出变量? 当你嵌入的这个变量是字母串类型的时候,哎,你就用百分号 s, 当它是整数类型年龄,你就用百分号 d。 ok, 这相当于是在这个文本当中 挖了两个坑,这是第一个,这是第二个。好,那萝卜在哪呢?不是讲一个萝卜一个坑吗?萝坑已经有了,萝卜是不就讲到这个变量, 还是以这个看,没有这根中轴线,这个百分号作为中轴线。右边就是萝卜了啊,小胯扩上 一二两个萝卜。那就把 name 和 age 放到小框当中,都好隔开啊。那么 name 就是 放到第一个 数据, age 放到第二个,这是按照位置和顺序去填充的。好,那么就这样子,之后输出的这个结果就是姓名 tom, 年龄三十,相对来说会复杂一点啊。复杂一点,但是 也没有太大的难度,但是记一下,记下什么呢?记一下摆放 s, 再重述一下,摆放 s 干什么呢?它是用来去标记的,是用来去标记这个这个 坑的位置的。那标记什么呢?标记字母串数据的位置好,对应的还有 d 和 f, 那 么分别用来去标记整数 数据的位置和浮点数据的位置好,标记完了之后,把 他的这个标记的位置和啊这个变量的位置对应上就行,还是这个需求。那么在写 print 输出,用百分号格式去输出的话,他是这么来的啊。 哎,还是加一对零号,他是这么来的啊。先把这个数据呢删掉,删掉好,前面呢,这个制服串是 第一部分,在后面用个百分号去连接第二个部分,第一个部分呢是标记坑的位置,第二个部分呢是萝卜,中间用百分号连接 好,开始标记名字是字母类型的百分号, d 去标记, 标记好了之后开始填萝卜进去。那第一个是字母串,我就把内幕放进去,第二个呢是 age 年龄,我就把 age 放进去。好,现在去运行一下,结果是一样的啊, 只说这两种写法不太一样,还是那句话,方式呢?方法提供给你们去了,这两种 f 格式化和百符号格式化,到时候具体要用的时候选用即可。那你喜欢第一种还是第二种呢?那老师的话就是喜欢第一种多一点啊,这个确实又方便又快捷, 还好去理解,对吧?他 f 格式化吗?你少个 f 不 行的啊,他的固定格式是要加个 f 在 前面的。 去去去,用这种格式,这种固定写法达到欠入式输出的结果。明白明白, ok, 好, 那么格式化输出就差不多了,最后 耽误大家一点时间,给你们去讲一个随堂练习吧,好不好?讲个随堂练习啊,把刚刚我们所去讲的内容补充一下把,给大家巩固一下,巩固一下。好,那么现在他的需求是什么呢? 需求要求我们去格式化输出的内容是今年是多少多少年,多少多少月,多少多少号,包括它的时间,对吧? 好,那么已知的数据如下,年月日,这个是多少多少时?他的一个时间,具体的时间对吧?那现在是三十三,九点三十三,改一下,二零二五,呃,五月 二十七。 ok, 好 了。哎,那么我们这里输输出的这个格式遵守上面这个就行了啊,具体的数据呢?稍微改了一下。好,那么第一种咱们去用格式化 f 格式化去做输出 会吗?先写个 print, 然后引号当中把这个内容写进来, 前面加个 f。 f 格式化吗?用 f 这个字母去标记一下它是个 f 格式化啊。那么具体要输出的数据呢? 大括号把变量扩进来,大括号把变量扩进来,大括号把变量扩进来, 对不对?还有最后这个时间也是同样如此,把变量扩进来,好,那么这个就是今天是多少时多少分多少秒 啊?多少年多少月多少号,是吧?这第一种,第二种,百分号格式化输出 粘贴,这里再给你们重述一下语法,它的语法两个部分,第一, 先是一个字母串,再来个百分号,百分号后面呢加小括号,百分号是中轴线, 百分号前面是输出的文本内容,后面是线路的变量所去对应的变量。那么在这个文本内容里面呢,你会去放百分号 s, 百分号 d, 百分号 f, 用于去固定你要输出的数字类型,一定要填,对啊,你输出的类型是什么?你这里选用的百分号字母就是什么,好,然后这里呢去放变量一,变量二, 二啊,变量三, ok, 好, 根据这个语法 还是这个需求,把它作为一个文本,作为语法当中的第一个部分,后面用百分号括过来,第二个部分 分别分别去把变量呢依次填充在小括号当中。日时间, ok, 好, 前面这里的话就用 摆放 s 或者 d 或者 f 去填充,那像这个二零二四,他是一个整形嘛?那肯定是 d, 那 十一也是整形,那就 d, 八也是整形,那就 d 啊,时间呢?是一个什么字母串类型,那就是 s, 一定得把它对应的类型写进来好,那么最终输出的结果就这样子的, ok, ok, 有 没有?呃,百分号 s、 d、 f, 有 没有函数的作用?没有,他,没有,他就是他,就是只有在百分号格式化输出当中才会去存在的一种写法。 对对,有的同学说有的同学说这个 d 可以 换成 s, 确实是的啊, 那我稍微大一嘴,就这个摆放 s, 它的兼容性很强,它可以兼容掉百分号 d 和百分号 f, 那 你像 f 格式化里面根本就不需要去注意数字类型,所以同学们可能会更加想要选择第一种方式,因为第二种是需要的吗?那如果说你实在不想要去注意 a, 你 就全部用 百分号 s 是 ok 的, 因为它可以兼容掉 d 和 f, 那 么此时你也不需要去思考了,我到底要用哪个,全部用 s 也 ok, 你 看这里是不是也是有结果的 是不是?嗯,好,那么就差不多了啊,我,我还想给你们去讲一个就是保留小数,问小数位数的一个问题还想给你们去讲一个就是保留小数位数的一个问题啊,保留小数位数的一个问题。嗯, 就是我们在上面这个输出的数据呢,他是没有浮点型的对不对?就是如果说你输出的数据他是长, 来个 f 一 吧,他长这样子的,九点九。好,我们来一个 f 格式化 或者百分号格式化也行啊,两种都可以,就想要保留他的小数位数,我来个九点九九九这样子吧,三个九好吧。嗯,百分号这里相当于是拓展的内容给你去讲的啊。 啊,那么这个呢,是 f 一 填过来,好,然后这里我们肯定是用百分号, 百分号那个 f 去输出福点型的数据,对不对? ok, 好 啊,这个是一个数据的话就不需要去用括号了,一个数据就不需要去用括号了。 嗯啊, sorry, 他 是一个浮点型的啊咱们不对对对对他是一个浮点型的不需要去带引号不然就是字不串类型了是不是来我们去运行一下吧你看他这个地方会默认去保留两位小数看见没有 他默认去保留一二三四五六六位小数。 小数啊还是个九点九九九零零零吗是不是好那有的东西就想哎我就有三位我就想保留三位。那你就 ctrl 加 d 百分 f 中间先打个小数点小数点后面你想保留几位你就写个几我写个三那就是三位还没有。那我就想一位的话我就写个一 他默认是六位啊然后我们再进行保留位数的时候 a 他 这里的话会有一个 四舍五入的操作啊四舍五入的一个操作是包含在保留小数位数的啊这个过程当中的 ok, 好, 那么我们这里还是写写一个点三 把它的结果就这样子的好 然后把这个呢写过来表示 中的点三表示小数点后面保留三位好,那么没问题了啊 三位小数 ok 对 就这样子好那么这个是拓展内容实际上我们就看前面就可以了大家就是确实有去遇到这个问题所以我稍微给你们去带一嘴啊 好,那么这一课就到这里了这一课就到这里了啊。四舍五入怎样去解决呢四舍五入我们可以用那个 让的也会四舍五入吗?会的会的四舍五入的话它是一个默认自带的 如果说如果说你不想四舍五入的话你可以去用一些函数用一些函数去解决。对比如说呃 int 这个函数再比如说向下去取整,向上去取整啊,这些函数最后再讲吧,这次就不讲太多了。好吧, 好,那么这个就到这里了,没问题,来,给老师扣一个二,咱们就下课了,这课下课之后呢,依然会给你们去发这个作业啊。好,那么下节课内容呢,我们是会去学习到关于字母串的一些啊,拆分啊,合并啊, 以及替换查找的一些自辅串常用操作。这个操作是非常非常关键的啊,就是非常,就是取决于后面同学们在进行数据分析当中的数据清洗时会去用到的啊。还有就是爬取数据时呢啊,这个 啊,爬取的一个数据需要去进行二次处理的时候,也会去用到的啊,稍微会有一点点枯燥,但其实还是 非常关键,非常关键的一个知识点啊。同学们认真听可以先去预习一下啊,可以先去预习一下。好,那么这一课就到这里了,没问题,我们就可以撤了。好,那么今天也是三个知识点啊。

hello, 大家好,今天给大家讲一个 python 制作桌面的小程序啊,那我们先来看一下它的一个效果啊,我们用其运行一下 啊,可以看到啊,这块会出现一个蜡笔小新啊,当然这个图片呢,大家可以改成别的,那它有些什么样的功能呢?哦,我们可以什么右键啊,可以看到它有很多功能啊,比如散步啊,下路啊,运动啊,吃饭睡觉啊等等一些啊,我们可以稍微演示看一下啊,散步 啊,非常的形象对不对啊,你看下这个, ok, 那 我们再看一下别的啊, 哎啊,可能要等到停了才好点啊,稍等一下,别算了别算了,蜡笔小新, ok 啊,然后什么?比如说运动,对吧?哎,看到没有,玩这个足球啥的,嗯,然后比如说这个吃饭, 是不是啊,吃的嘎香,看好有下路。哦哦,所以可以看到啊,非常的有趣的啊,那么作为我们这个打工啊,上班无聊的时候可以来玩一玩啊,整个代码它这个实现还是比较有趣的。 ok 啊,那我们把它关掉,我们来一起来看一下这个代码, 那么这个代码呢,主要是用到了一个什么 python 那 个叫 p y q t 五的一个模块啊,它是专门用来开发我们的桌面应用程序的啊,这个数字这个模块呢,其实也不是特别难啊,但这个代码呢,总共大家可以看到有四百多来行啊,整体来说还是比较多的 啊,并且你看它是以一个面向对象的方式去写的啊,所以需要大家有一点点面向对象的一个基础啊,才能去理解啊 啊,然后呢,整体代码都比较多,我们就不过多的去什么一行行去给大家解释了啊啊,如果大家感兴趣的话呢,可以什么呢?在这个视频底下留言啊,拿到这个代码啊,自己去好好研究一下。嗯,你看一下这里的话,主要就是嘛在实力化这个啊,累了啊,要去运行它里面的程序 啊,当然这个地方他会要用到很多素材啊,大家可以把这个蜡笔小新换成这个别的啊,比较自己的一些图片啊,或者一些朋友的搞笑,搞笑的图片对不对?都是可以的啊啊,所以相对来说是比较好玩的。

在排审中,函数可以做很多事情,那么看断公交车票价、自动制作、咖啡、预算、买车,这些都能用几行函数搞定,那今天带大家用函数做这几个练习,那么接下来开始练习吧。那今天按例 公交车票价计算器公交车票价规则,成年人二元,学生六到二十二周岁负一元。老年人六十五岁以上和儿童六岁以下免费。那今天首先我们用 f 命名公交车收费的函数 bismarthy, bismarthy 接受年龄 h 和是否学生的判断。 接着我们用 if 判断,如果年龄大于等于六十五或者小于六,满足免费条件,直接 return in 就是 零元,注意 o 表示,或者那今天如果没有免费。第二个 if 判断,如果年龄在六到二十二之间,并且以 the student 的 判断为真,则返回 e 就是 学生一元。 如果以上两个条件都不满足,就自行最后的 return, 即乘人票。那今代码中 h 大 于等于六岁,且小于等于二十二岁,是 python 特有的连续比较, 非常直观。那今代码写好以后,我们分别调用函数测试以下,二十岁学生,七十岁老人,三十岁上班族,点击运行,输出,结果为一元,零元、两元。那今代码完全符合我们设定的规则, 这样一个公交车收费代码就写好了。那接接下来我们做案例二,自动咖啡机同样的,我们先定义一个自动咖啡机的函数叫 make coffee, 它一共接受一个制复串参数, coffee type 就是 咖啡类型。 那今天第一行判断,如果 coffee type 等于拿铁,就返回拿铁的制作步骤, if 表示或者判断是否等于美式,试着返回美式的步骤, 如果都不匹配 s, 分 子返回一个友好的错误提示,那今天注意,每个分子都用了 return 函数,执行到 return 就 会立即结束,不再执行后面的代码。函数写好以后,我们调用函数传入拿铁和美食,就会得到对应的结果,就是制作的过程 漏漏传入其他名称,比如卡布奇诺会返回。抱歉,只提供拿铁和美食。第三个,我们做一个买车预算,如果你想买车,帮你判断钱够不够,不够还差多少。函数 car 接受两个数字,现有钱数 money 和车价 car price 根据一行判断,如果 money 大 于等于 caprice, 说明钱够够的话,我们再计算买完车还剩余多少米,用 left 来存储,用 money 减去 caprice, 然后用 f 是 z 格式化支付串返回。恭喜,钱够还能剩下 x 元,如果钱不够,执行 l 是 分子 计算差额,用差价减去存款,返回还差外元。写完了,我们来测试两个例子,分别输入,存款五万,差价八万,存款十万,差价八万, 点击运行就会打印出对应的结果。那么恭喜你学会了面向对象函数。作业来了,请制作一个自动判断订单超时的作业。

pason 入门第四天数据类型彦祖们 在 pason 的 世界里,数据就像不同种类的物品,有的用来数数,有的用来描述,有的用来判断对错。为了方便管理和操作, pason 把数据分成了几个基本类型。今天我们就来认识最常见的四种。 一、整形 int 就是 没有小数点的整数,比如负五零九九、两千零二十四,生活中常用来表示人数、年龄、数量等。二、浮点型 float 就是 带小数点的数字,比如三点一、四、零点五、二点八,用来表示身高、体重、价格等精确值。三、字母串 state 只要被单引号或双引号包起来的文本都是字符串,比如小明 python 学习。注意,即使里面有数字,加了引号也是字符串,不能直接做数学运算。四、布尔型,布尔只有两个值, true 真和 false 假 通常有比较计算得当,比如五大于三的结果就是初十,小一九的结果就是。放重点来了,请看下面三行代码,第一行打印的是数字五,可以参议计算。第二行打印的是字母串五看起来一样本质不同。第三行会报错,因为整数和字母串不能直接相加, 系统不知道你需要数字的五相加,得到时还是把数字和字母串拼接在一起得到五 c 五,所以就会报错。解决方法,进行数据类型的转换,要么把整数转成字母串,要么把字母串转成整数,将其数据类型进行统一,类型统一才能协调工作。 接下来我们开始实操,今天的目标是用变量分别定义四种数据类型,并且打印出来,以及用 type 进行数据类型的查询。好,首先我们命名 a 等于八十八, 并加上字母串,表示是硬记整数。接着命名 b 等于三点一四小数 float, c 等于 python 函数串, d 等于两数相加,是否正确?命名好以后,我们用 print 来打印一下,就能看到结果。首先打印 a, 得到的结果就是八十八是整数硬体,再把 print 里面改成 c, 得到的就是薛培森式函数串。然后就是德布尔值, 判断七十八大于六十八,运行得到的判断结果就是出。接着我们写第二个,用 type 进行数据类型的查找, 同样的我们随便进行变量的命名,命名 a 的 四个变量,然后我们输入 print type 进行查询数据类型,我们要查询 a 的 数据类型的话,在里面输入 a 就 行。 运行得到的结果就是 classfloat, 表明它是 float, 就是 小数类型,换成 c 运行得到的就是 classstream, 就是 函数串类型。切记这张视频很重要,记不住数据的类型就会导致你后续学习数据的运算和数据的联动。