要检查两个字符穿的组成字符是不是一样的,我们可以用这样一个极简的代码来进行判断, 这里的克拉克心思意思是高性能容器数据类型,康特的中文意思是计数器,也就是我们常用于统计的一种数据类型,使用康特之后可以让我们代码更加简单易读。 我们来看一个简单的例子,有这样一个颜色表,各种颜色出现的次数不一样,我们要统计各种颜色出现的次数,通常的写法是先定一个空字点,然后便利颜色表中的所有颜色, 如果这个统计字典中还没有这个颜色的数据,那么就把该颜色的数列记为一,否则的话就哪加一,最后输出所有颜色的统计。 而我们使用 ctrl 就可以更简单的来解决这个问题。首先我们导入 ctrl, 对于这样一个颜色表,我们直接得到 ctrl 兑现,再把 ctrl 兑现转化成字典,直接就可以得到统计后的字典。
粉丝2.1万获赞8.7万

用 python 提升你的能力,五点四点五自定义模块儿在前面的课程中,我们学习了在 python 中的模块儿的概念, python 中的模块儿包括标准模块儿和第三方模块儿, 我们也学习了在 patting 中如何安装升级卸载第三方模块。 我们也学习了在 python 中引入模块儿的方法。前面我们学习引入的模块儿主要使用的是 python 的标准模块儿和第三方模块儿,那么我们可不可以自定义模块儿? 答案是可以的,我们可以在 python 中自定义模块。我们可以将 经常用到的变量函数类保存在模块文件中,这样呢,会提高我们的工作效率,而且也可以规范代码,提高代码的可读性。 在 python 中,如果要创建自定义模块,则需要两步,第一步呢就是创建模块,第二步呢就是导入模块。下面我们做一个例题演示,实践一下, 创建一个模块文件, b a i 点 p y, 在该模块下创建一个函数 so 下滑线 b a i 小括号。然后这个函数呢,可以计算并输入百钱买百计的结果。 然后创建一个文件,导入该模块,并调用模块中的函数。我们演示实践一下, 我们打开 sublam text 编辑器,找到我们之前的写的一段代码,三杠二零点 p y, 在三杠二零点 p y 中,我们使用二重循环,然后将百钱买百机的问题解决了。 然后呢,我们就是将这个二重循环定义为 so 下滑线 b a i 这个函数。 然后呢,我们将它保存在一个模块文件中。首先呢,我们要创建这个模块文件,点击 file new file, 按 ctrl s 保存, 我们将它保存在地盘的 practice 文件夹下,将它命名为 b a i 点 p y 按 enter 键。 我们呢要给这个模块文件做一下注视,我们输入双引号,嗯,首先呢,这是一个模块文件 模块, 然后呢,他解决的问题是百千买百计, 然后呢三个双引号,我们首先要定义这个函数 so 下划线 b a i。 然后呢,我们将买百钱买百机的这个代码复制到这个函数中, 代码的格式有点不对,我们将它选中,然后按 tab 键,这样就可以了, 我们创建的这个函数是否能够运行成功,我们实验一下,我们在这个地方输入 注函数, 我们再按 tab 键。然后呢, so 这个函数按 ctrl s 保存,我们运行一下这段代码, 打开 windows 的命令行窗口,我们在其中输入 python b a i 点 p y and 再见, 大家可以看一下,这段代码呢,运行成功,说明呢,我们这个模块文件呢是没有问题的。然后呢,我们再引入这个模块,在另一个文件中点击 file new file 按 ctrl s 保存,我们将它保存在地盘的 practice 文件夹下,将它命名为五杠二幺,点 p y 按一个键。 首先呢,我们要引入这个模块,我们使用 import b a i 然后呢,我们使用模块中的 so 杠 b a i 这个函数,按 ctrl x 保存, 我们运行一下这段代码,打开 windows 的命令横窗口。 是呢,我们输入 python 五杠二幺,点 p y, 按 inter 键,大家可以看一下,同样运行成功了, 我们反过头来看一下这个代码,其中呢, b a i 点 p y, 这就是一个模块文件,我们对它做了注视,我们在这个模块文件中,如,如果要验证这个函数是否运行成功,需要使用主程序, 然后呢?我们在五杠二幺点 p y 引入这个模块儿为,然后使用模块儿中的函数。


大家好,我是橙子老师啊,这节课呢咱们学习一下使用派森啊,去获得时间和日期呃,咱们用到的库呢?就是这个太木库啊,以前咱们也说过,呃,实现一些功能啊,能用派森自带的内置函数去解决啊,就用派森自带的内置函数去解决 啊,解决不了的呢,咱们可以去找一些相关的库啊,看看有没有这样的功能来。咱们今天呢就是获得时间啊或者是日期啊,咱们用到的库呢就是这个泰姆库,这个泰姆库呢是派森自带的啊,来看一下这里啊,我这里呢也是准备了 一个笔记啊,咱们也可以参到这个菜鸟啊,菜鸟这里边他下面有日期和时间啊,点击一下就会跳转到这个界面啊,他这里有一些说明啊,有一些说明大家也可以参照这里。好呃,就跟着我的笔记来看一下吧。啊,是我经过梳理的啊,理解起来呢会 更容易一些。来,咱先看第一个。呃,先了解一下啊,这个日期啊,还有这个时间他是从什么时候开始计算的呢?是从一九七零年的一月一日开始的啊,这个就是呃 呃,计算机啊,他就是这样去设置的啊,如果说想了解更多啊,大家可以去网上查查啊,为什么是从一九七零年一月一日开始计算啊? 呃,接下来咱们看一下这个太母库里边他有一个方法啊,就是这个睡眠的方法啊,也就是相当于等待一秒 啊,如果说觉得你的程序可能有时候呃执行的太快啊,想让他等一会啊,这个时候咱们就可以使用这个时间的这个啊,里边睡眠的这个方法啊,来让他等一秒啊, 或者是等几秒来,现在咱们就试一下啊,比如说,呃,咱们先打印一个一到十之间的一个数吧,啊?一到十之 间的这几个数,咱们先导入这个库啊,让他等一秒打印一下啊,来,咱们把这个符号循环写一下,说爱音润字,然后这里边写什么呢?零逗号十啊,或者是直接写十是不是也可以?好,来这里咱们就打印一下这个爱啊, 打印完爱之后呢,咱们让他等一秒啊,就是使用太莫里边的这个 stleple 这个方法啊, sl e p 啊,他可以实现等待,比如说我让他等一秒来,现在咱们运行一下啊,大家可以看到这里,他是等一会啊,出现一个,等一会,出现一个, 这里啊,他是一秒计算单位的啊,如果说你想让他等的更多啊,那你就给这个数改的大写,等十秒就写十就可以啊,他是一秒来记的啊,啊,这是这个太木点死立法啊,等待一秒。 来,咱们接下来看一下怎么使用太某库里边的一些方法,呃,去计算呃,咱们这个代码执行的时间啊,有时候,呃, 咱们做了一个循环啊,想看看他这个呃运行的时间是占用了多少,这个效率到底是怎么样子啊?或者是学算法的时候,对吧?两种算法呃, 同样都是排序啊,什么冒泡排序啊,选择排序啊啊,不同的这个实践方式,他们的占用时间是怎么样子的啊?咱们可以通过这个泰姆库里边的坡坡康特这个方法来记一下时间。好,来接下来咱们就看一下这个计算时间怎么计算来,呃,我这里呢就 打印多少,我这里就不用等待一秒了啊,我来打印一到一百吧啊,看一下这个打印一到一百,呃,用多长时间?好来咱们这个怎么计算啊?这个就跟咱们这个秒表一样啊,就跟,呃 这个平时啊,呃,以前在上学的时候啊,这个体育考试啊,体育老师都拿着一个秒表啊,这个秒表呢,是吧?当你一开跑的时候,就相当于咱们一执行的时候就开 开始计时,然后那个每个同学啊过线的时候是吧?啊?老师都会这个掐一下表啊,然后这个表的可以记录多个值,是吧?就是掐一次记录, 掐一次记录一下啊,咱们这里也是啊,这个掐一次他是记录一次来,咱们怎么看一下?就是让他按一下表,对吧?就是记录一下时间,来咱们这里来个提一等于什么呢?这个泰姆点这个坡坡康特啊,坡坡康特这个啊,就相当于从这记了下十啊, 当咱们点击开始开关的时候,点击这个运行的时候,他就会开始计时啊,到这的时候咱们记了下时间啊,把这个时间存到了 t e 里边,当这个代码执行结束之后,咱们再记录一个时间 来,这个 t 二他就是 t 一啊,咱 t 二减 t 一啊,就是中间这段代码执行的时间啊,就是两次时间的差,就是中间这段代码呃所需的时间啊。如果说你下面还有 一些代码的话啊,比如说我这里来个一千啊,然后我这里再来个这个 t 三啊,如果说你想计算打印零到一千,然后用了多长时间的话,你可以怎么办? 你可以这个用 t 三减 t 二就可以啊,用这个大的减小的啊,这个他们俩之间的时间差,就是执行代码所消耗的时间。来,现在咱们打印一下啊,打印一下,来 prit。 打印一下什么呢?这个 t 二减 t 一,来, t 二减 t 一,咱看一下 t 二减 t 一,呃,他用了多长时间?然后咱们再看一下 t 三减 t 二啊,一起都打印出来吧, t 三啊,减 t 二。来,现在咱试一下运行一下, 好,来看一下。呃,这是啊,看上面都是打印的这些啊,打印的这些来这里,呃,打一百个数用的是零点零零零三啊,用了这么多,然后这个打印一千个数, 呃,打一千个数,用了这个零点零一三,是吧?他每次运行的时候可能不太一样,来当再运行一遍啊,是用了这么多啊,好, 这是打计算这个程序啊,他运行的多长时间啊,咱们就用什么呢?就用这个 tom 点啊, potocont 啊,两次记录时间的差值啊,就可以计算这两段时间之间代码运行的时间了。好, 接下来咱们看一下这里啊,就是关有关啊,时间和日期的一个转换啊,就是说咱 咱们这里记录的啊,记录的都是什么啊?都是从一九七零年啊,一月一日啊,到现在有多少秒啊?然后咱们可以把这个秒啊转换成咱们想要的时间啊,就可以得到这个日期了啊。这里边提到了一个时间原组啊,左侧的这个秒数当然很好理解,就是一二三四五六七八,就是这样的整数吗? 往上加呗,对吧?啊,就是这样的整数啊,就秒数吗?然后这个时间原组是什么样子啊?咱们可以参照这里啊往上滑一下看下这里就是这个是以原组的形式去存的啊,他这里是零到八,一共是九个数啊,这个原组里一共九个数,有年月日, 然后还有小时分钟秒,然后还有这个星期几,记住啊,这里的星期几是从零到六的啊,零就代表这个周一, 这个是值得要注意一下的啊,还有想记想知道这一天啊,在一年中的第几天啊。他这里也有存妥是这个呃原祖宗的第七号第七号这个值啊第七号这个值,还有这个什么什么下令时啊啊这个很少用啊,咱们主要是关注前面这些。 好,现在咱们就来试一下啊,就来试一下来呃通过秒数转换成时间原组啊,来咱们试一下这个啊。呃 先呃在这里吧,在这个新的里啊导入一下这个时间的库 import import 导入,然后这个 t i m e 啊,导入太木库,然后呃咱们使用哪个方法呢?使用这个 logo tom 啊, tom 里边的 logo tom 来 太母里边的这个 logo 太母 l o 啊, c a l t i m e 啊 logo 太母。他是获得时间原组的啊,往这里边传时间啊, 传多少秒?传的是秒数啊,你往这里不传的话啊,他默认是传入的是当前此刻到一九七零年一月一号他的这个秒数啊, 然后他返回的也就是当前的这个日期啊,把此刻到一九七零年之间的秒数传进去,然后他返回的当然是此刻的这个日期啊,对吧?现在咱们试一下来 p id, 然后打印一下来把这个他的反馈值打印一下来酝酿一下来看一下 这里是不是就返回了一个时间圆组啊,对吧?这里是二零二一年八月二十一日啊,这个十五时啊,这些这些这些这些秒数啊,三十五秒是吧?啊?估计现在已经呃过了啊,已经过了,来,这是十五十十五分钟啊,这个都是对的上的啊,他是错不了的啊。来, 现在咱们再呃试一下啊,比如说我这里给他传个一秒看看行不行啊,对吧?刚才默认的情况下他是不是传的是当前的这个秒数啊,对吧?默认他自动传的啊,咱们也可以获得当前的这个秒数。行,咱先获取一下吧,然后咱们再给传个一秒试试。这个太母点太猛 啊,就是当前的这个秒数啊,咱们可以看一下啊当前的这个时间啊,此刻距离一九七零年有多少秒?有这么多秒是吧?来,现在咱可以把它复制一下啊,看看给传进来啊,这个跟刚才这个效果一样,不一样,看对吧?啊?这里啊你可以 传当前距离这个一九七零这个秒数啊,也可以不传不传就默认当前的啊,然后咱们也可以主动的获取啊,就是你这样写啊你这样写啊,呃,把当前时刻传进去和不传啊一样的,他默认就是传的这个啊。好,来,现在咱们传个一秒试试啊,传个一秒, 来传个一秒,来运行一下看一下,哎,大家看一下这里是不是一九七零年一月一日哎,但是这里大家有没注意到是八十 啊?这个是什么原因呢?呃,这是因为,呃,就是呃咱们这个中国的这个时区啊,北京的这个时区他是不是得在那个原来的基础之上加八,对吧?加八,然后才是咱们呃现在的这个正常的时间的啊?所以说他这个是就是默认啊,咱们这里获得的时间啊,是到一九 七零年一月一日这个八十之间的这个秒数啊,啊,一定要注意这个时区啊。好,来,现在的话,比如说咱们 来一个呃什么呢?来个一百秒来看看,来看一下一百秒的话是不是就是,呃,就是一分钟四十秒啊,对吧?啊?他这里都是计算好了啊,来,这就是这个通过秒数啊, 啊,通过秒数转时间原组啊,通过秒数转这个时间原组,咱们得到这个时间原组以后就可以获得年月日啊,十分秒都可以获得了。来,咱们就试一下吧,来整一个 t, 等一个这个, 然后咱们就获得一下这个原组获取。咱们,呃,以前都讲过啊,就是后边来放过号,你想获取第零个,那你就写零,对吧?他是第零号的,他是第一号的,就是开始往后排呗,对吧?来,现在咱们打印一下啊,打印一下 pr i t, 来 prat, 来这里,来,咱运行一下,看他获取的是不是一九七零,对吧?是不是一九七零啊?咱们如果说想给他完善一下的话,就是一九七零年, 一九七零年啊,对吧?啊?一九七零年,然后这里的话还第一个就是这个呃月了呗,对吧?然后你就是通过这种方式能够获取,获取到了,你可以拼接成你想要的这种呃格式就可以了啊。好,来,这个是秒数转时间原组。那接下来咱们看一下时间原组的 怎么转秒数?好,来,咱看一下,看一下。来,我就把这个呃删掉吧。来,咱看一下。呃,这里的话咱们可以自己写一个时间原图,来 啊,主要是把这个年月日给写上啊,来啊,咱来个这个 t 等于什么呢?等一个元号啊,这里边就是年月日来,比如说咱们是一九七零年,然后一月一日,然后是八十 八十零分一秒,对吧?零分一秒,然后看这些就是,呃,年月日啊,时间 秒数,然后这些啊是影响到转换秒数这个大小的。后边的话像什么一年中第几天呀?一周中的第几天呀,咱们是不是就可以给他补零啊?对吧?这个不影响转换成秒数啊。来,一共是九位啊,咱们看一下现在是几位了?呃,一位、两位、三位、四位、五位、六位、七位、八位、九位啊,多了一位是吧?好,来, 咱们通过什么把它转换成秒数呢?来,呃,就是通过这个梅克泰姆 mk tm 啊,来 tom 点, tom 点,然后是这个 m k tem 把 t 传进去啊,然后咱们打一下,看他有多少秒啊,看他有多少秒。来把这里来个括号来运行一下 看一下啊,是一秒是吧?啊?咱这里是不是就是呃八十的一秒啊,对吧?啊?如果说你你来个这个七十是肯定是不行的,他会,他会报错的啊,零食是不也不行?他只能计算一九七零年一月一日啊, 根据某个实学,是不是这个日期之前的这个啊,之后的这个啊,之前的是计算不了的啊?好,呃,这就是 这个时间延阻啊,这个转秒数,然后有的人肯定会问,这个有什么用途啊,是吧?有什么用途啊?然后这个啊,呃,咱们就可以通过这个求什么呢啊?可以求是 给另一个日期啊,比如说我就想知道一九七零年一月一日啊,然后这个是他是周几是吧?是星期几啊?来看一下咱们秒数转乘时间原组是不是他就会自带这些呀?自带周几,自带一年中的第几天,对吧? 啊?虽然咱们转过去的时候没有给他贴上,但是咱们通过秒数转乘时间远走的时候他是自动的把他们都算出来啊,这样的话咱们给定一个指定的日期啊,就能够知道这一天是星期几,也知道这一天是一年中的第几天啊。来,现在咱们就再转换回来啊,大家还记没记得 是太猛点?什么 logo 太猛啊,把这个秒数是不是挖机一传来咱就把这个秒数啊,这就不打印了,咱就给来个呃 a 吧,等于一下啊,存到 a 变量里边,把 a 放到这 来,咱们打印一下他啊,打印一下这个返回来的这个时间原组来。现在咱们运脚架看一下这里是不是返回来了。他是,呃,这里写着周几呢,是写着三啊,相当于就周四呗,对吧?因为他是从零开头的啊。然后一年中的第几天呢?是第一天啊, 这个还是很好的,能够根据指定的日期啊,然后转乘啊,十,原来是时间延迟,通过转乘秒数再转乘时间延迟啊,他就会把这些都补齐啊, 把一年中的第一天,一周中的第几天啊,还有这个限定时都补齐啊,这样咱就能够知道他是周几了,一年中的第几天了啊?好,这就是这个啊,时间延迟和日期的。好,咱们本节课就到这里,下节课再见。


在学习和使用 python 的过程中,我们肯定会遇到各种各样的报错,报错总体上分为两种,第一种是语法错误,也就是说没有按照 python 的语法来编写代码,比如代码没有缩进, 如果存在语法错误,那拍同的代码是运行不起来的,必须要先进行改正。 第二种是代码运行错误,也称作异常 exception, 异常的出现会让代码立即停止运行。比如我们想让用户输入一个整数,并将输入值打印出来。 i n t 内置函数用来将输入的字符串转换成整形值 运行代码,我们输入一个一没有问题,但如果用户不小心或者故意输入了其他字符,比如 a, b, c, d, e, f, g。 由于 it 内置函数无法将这个字符串转化成整形值,所以程序就会立即报错,或者说抛出一个异常, 后面的打印代码也不会执行了。但是我们不希望用户在输入一个不合理的字符串后,程序就直接报错退出,这样很不友好,应该让程序进行提示,让用户重新输入。此时我们就可以使用 try except 语句来处理程序抛出的异常, 只要相应的异常被处理了,那程序就不会因为该异常而停止往下运行。 try accept 的使用格式是这样的,在 try 关键字下方编写执行代码,而 accept 下方则编写异常被捕获时相应的处理代码。 现在我们修改一下这个代码,加上 try except 语句,我们在 try 关键字下方编写程序正常运行时的逻辑。如果用户输入的值没有问题,那程序就会打印这个值并退出循环, 如果出现异常并被捕获,就会提示用户重新输入,然后再次执行一次循环 运行看一下。首先输入 一个一不会出现异常, 再次输入一个 a, b, c, d, e, f, g。 程序捕获到了一个异常,并打印相应的提示文本。 except 关键字后面如果跟上了一个具体的异常名称,就表明程序只会捕获这一种异常,而其他异常出现的话,程序就会立即报错退出,停止往下运行。 比如我们让程序直捕或 value error 这一种异常,也就是 i n t 内置函数转换出错时抛出的异常,然后我们加一行除法代码并打印出来。 运行程序输入一个不合理的值后,程序不获到了 value error 这个, 并要求用户重新输入。现在输入一个零,会发现程序直接报错并停止运行了,抛出了异常名称为 zero division error, 也就是说零不能作为除数。现在修改代码,再加一个 except 补货。 zero division error 异常, 当用户输入零时,我们提示不能输入零, 再次运行输入零后,就会发现 zero division error 异常被捕获了,程序并没有停止。 如果大家要捕获所有的异常并了解异常内容的话,可以这样写,这也是一种比较常见的写法。 最后我们再来了解一下异常处理中另外两个关键字, else 和 finally。 如果发生了异常,那 except 处的代码就会执行。 如果没有发生异常,那 else 出了代码就会直行。不管有没有发生异常, finally 处的代码都会直行。我们修改一下这里的代码,加上 else 和 finally in, 程序输入一个不合理的值, except 处的代码执行了, else 处的代码没有执行, finally 处的代码有执行。输入一个一程序没有抛出异常,所以 except 处的代码没有执行, else 处的代码有执行, finally 处的代码也有执行。 finally 的用法还是比较重要的,在开发时,我们可以在 finally 处编写一些释放资源,关闭数据库连接或者一些上后处理的代码。 相信大家以后会碰到这样的应用场景,那本节视频就到这,我们下期再见。

今天给大家介绍下如何使用 visual sodium 调试拍葬。首先检查下 visual sodium 是否安装拍葬开发环境, 找到并选择 visual sudio installer, 点击其修改按钮。 点击修改按钮, 找到派葬开发一栏,查看是否有勾选,如果没有,则勾选派葬开发。 在右侧的安装详细信息中,我还勾选了 python 三六四并和 python 本机开发工具。 完成勾选后,点击右下角的修改按钮,开始安装派葬开发所需的组件。 安装完成后,启动 facial sodio, 新建一个派葬工程。 输入一条简单的代码, 并在代码行上设置断点,运行代码后可以看到代码能够调试了。

ok, 那我们这节课呢,主要是来研究一下如何给列表添加元素,我们会用到三种方法,第一种是 a panda, 第二种是 x, 等着第三种呢是音色子。好,我们先来看 a panda, 他会把传入的参数追加到你列表的最后面去。 x 的者呢,他是会把你的元素单独拿出来,并且添加到这个列表中。 ok, 音色的呢,他是在你指定的位置上啊,去添加我们的元素。好,比如说在这个地方呢,我给大家创建好了列表原组,还有这个区间啊,这三个东西呢,我们都已经拿好了 啊,我先给大家演示的是第一种方法啊, pan 的。好,那么大家来看一下,我如何给列表添加一个拍摄支付串呢?很简单,你直接把这个列表拿过来,对不对?然后呢,我们在这个地方给大家调用一下这 一个二片的方法,好让你看这个二片的,对不对?你不是要加拍省制服串吗?那你就把这个制服串哎,给他放到这一个地方来,对不对?传给咱们的这个二片的啊,方法就可以了,那么这时候啊,我们是不是可以去打印一下对不对?好, ok, 我把这个打印语句啊放到最后来。 好,我们呢把这个列表给他打印一下。好,现在我们选中这个文件,再去执行一下,你就可以看到哦,这个什么拍摄已经加到后面去了,对不对?好,一样的道理, 如果说我想把这个原主加到这个什么列表里面来,行不行?可以的,也就是我们的这一道题,对不对?好,来我们啊 my list, 再点一个 opine 的,把我们的 my temple 加进来,对吧?一样的道理,那我们的这个列表里面能 不能添加一个区间呢? my list, 点儿 panda, 然后把 my range 加进来,对不对?好,那么这个时候呢?啊,我们就去再打印一下这个 my list, 你看它里面加了多少东西。好吧,执行一下这个程序, 你就可以看到我们刚才加的原组,啊啊,对吧?啊?我们的原组还有我们的一个区间都在这里,对吧?非常简单, ok。

好,同学们,那么这一小节啊,咱们要讲解一个关于文件操作的函数,叫做四 k, 那么四 k 这个函数呢?用来改变文件指针的位置用的,为什么要有四 k 这个函数啊?同学们还记不记得 我们说文件指针出现的位置会影响我们读取数据的时候,那么读取出来的数据对不对?那么接下来我们想一想啊,他们还记不记得,如果我们是用 r 相关访问模式,文件指针呢?是不是在开头的位置?那么 这个时候我们去向后读取数据的时候,是不是他是能读取出来数据的?但比如说我们有一个 a 访问模式相关,去打开我们的文件推门讲一下啊, a 访问模式文件指针是不是在我们文件的最结尾的位置,我们向后去读数据,后面 根本就没有数据,那么想要读数据是不是也根本无法读取?那么接下来我们就要考虑一个问题, 如果我就是用一个 a 相关的访问模式去打开了这个文件,文件指针在后面了,那我有没有办法改变文件指针的位置,从而能读出来相关的数据呢?那么这个时候的话,我们就调用这个函数就行了, 同样的换位思考,同学们讲一下啊,刚才老师说了,如果是 r 相关的访问模式,文件指针是不是在开头?那如果这个时候呢,我们向后去读取数据的时候,是不是能读出来数据的? 那么接下来同学们讲一个问题,如果我们通过 ck 这个函数改变文件指针,比如说,哎,向后偏移十个字符,那么这个时候读取出来 数据是不是就不从开头位置读取了?或者换一种方案,我们如果用四个这个函数把文件指针移动到最结尾,那么这个时候即便是而访问模式或者是而相关的访问模式去打开,是不是也无 法做到能读取数据,对不对?哎,那么这就是我们这个函数之所以出现的一个必要性。那么接下来同学们啊,我们知道了,说这个函数啊,是用来改变文件指针位置用的,那怎么使用这个函数呢?我们来看一下啊, 这个函数的语法是文件对象,第二即可调用,那么小括号里面放什么?咱们注意啊,两个参数,第一是偏移量,偏移的字结束,第二呢是起始位置,那么起 指示位置的话,咱们来看啊,零表示开头,一表示当前位置,二表示文件结位,就这三个值, 当然偏移量的话,同学们想想啊,如果我们是起始位置为开头,那比如说偏移了五个字符,在这写了一个五, 那么这样的话,是不是就是从开头数出来五个字符,我们不读取,是不是从第六个开始向后读取,那这是不是就是能改变我们读取数据的开始位置,对不对? 好,那么这是我们的一个细课,这么一个函数,那接下来这个函数啊,大致作用以及语法了解到之后呢,咱们现在啊,是不是自己书写代码,我们去做实验就可以了。那么接下来同学们跟着老师啊,打开拍叉木,在拍叉木里面啊,我们有一个平安文件, 一会书写代码,那我们设定一下,咱们一会读取数据,去读 past 点 tst 里面的数据去 读这里面的啊,好,那么接下来同学们注意了啊,现在我们把前置的这些条件准备好之后,同学们回到批文件,老师呢,准备要打一个注视了, 注视里面,首先老师问啊, c 可函数语法是什么?还记不记得语法是什么?哎,是不是就是文件文件对象打点是不是去掉四个? s, e, e, k 四个?第一个参数是什么?哎,是我们目标偏移量是不是放在这? 第二个呢?哎,是不是就是我们的起始位置对不对?哎,起始位置,那么这个位置的话,零表示什么? 开头一表示当前位置啊,二表示结尾对不对?好,了解这个,那么接下来我们还要去了解什么?我们去了解我们这个例子的目标, 这个例子的目标,朋友们注意啊,这个例子的目标只有两个,第一个就是关于耳访问模式的时候,我们改变文件指针位置, 哎,用 r 访问模式的时候,改变文件指针位置,目的是什么?哎,改变读取数据开始位置 或干什么?朋友们注意啊,把文件指针放结尾,放在结尾去, 那么如果是放在结尾的话,老师要问大家一个问题了啊,呃,找一下啊,放啊, 放结尾,哎,放结尾,那老师要问一个问题,如果是儿访问模式,把文件指针放结尾,他还能读出来数据吗?是不是无法读取数据, 对不对?好,那么接下来咱们是为了测试而访问模式,可以灵活的去改变文件指针的位置,那么当然咱们再测一个什么啊,比如说 a 相关的访问模式, a 本来默认文件指针,是不是在结尾,我们要去改变文件指针 位置,做到干什么?做到可以读取出来数据一二这两个目标就是我们这个案例要写代码测试的目标,那首先呢,我们是不是就 进入到第一个目标,对不对?好,那么接下来我们来看啊,比如说首先呢,我们来一个文件对象,先以 r 相关的访问模式去打开,那么接下来啊,我们来一个,呃,文件是 fast 点 txt, 并且呢咱们就这样吧,比如说用而家打开, 那,并且在最后啊,我们把 closs 也调用上,那么调用上之后呢,我们现在是不是就开始去读取就行了?但是老师问一个问题啊,如果现在 f 打点调用锐的,然后呢,我们把这个锐的之后的结果存到一个变量,并打印,这个变量 读取出来的数据是什么?哎,是不是就是目标文件当中的所有?那接下来当我们右键软同们来看一下,是不是读取出来的是所有?那同学们讲一个问题啊,只要这个瑞的函数一定要用,那 读取到的是不是就是我们文件当中的所有数据了?那接下来我们是不是就是从开头一直读取到了结尾? 那接下来想一个问题啊,比如说我不想要前两个 a, 要从第三个 a 开始向后读取,那么这个时候该怎么办呢? 是不是就要把默认文件指针位置是开头,我们把它移动到第二个 a 的后面来,那么这个时候啊,能够改变文件指针位置的函数是不是就是 ck? 那所以我们 f 点 c 可去调用一下,那么参数一是不是就是偏移料,我们是不是要偏移两个?那 那偏移的位置是哪呢?我们是不是从开头向后偏移?当然老师问啊,写零和写一是不是都行?为什么呢?那我们零的话是不是开头一的话是当前,那 而访问模式或者是而相关访问模式,文件指针的位置是不是都是在开头?所以我们当前是开头写零,是不是还是开头,对不对?好,那么接下来这个时候我们改变完了文件指针位置,再右键软,同学们来看一下啊,走你第一 行读取出来的数据是不是就变少了?因为前两个字分是不是没有读取啊?对不对?哎,那么接下来啊,同学们注意了,这个是不是就是我们第一个里面测试的改变,哎,改变,改变,读取数据开始位置 是不是做到了?那么当然我们还要测什么?把文件指针放结尾,让他是不是读不出来数据?那接下来怎么办啊? ctrl 加 d 啊,咱们把这个二逗号零注视掉,那同学们注意了,怎, 怎么样能够把文件指针放到结尾?首先结尾的话,我们的位置是不是应该写二?那就是说这个地方是不是要写二,还偏移吗?是不是放到最结尾是不是就不偏移了?所以就是说偏移量咱们是不是要写零, 对不对? ok 啊,好,那么接下来改变完文件指针位置之后,咱们再来右剪软,大家来看,即便是儿访问模式打开,即便默认儿及儿相关访问模式,文件指针都是在开头, 但是由于我们用这个改变了文件指针的位置到结尾了,那么这个时候是不是读不出来数据了,对不对?哎,这就是我们的第二步,是不是把文件指针位置放到结尾,让他读不出来数据,这是不是我们的一个目标 了,对不对?好,那么接下来啊,这也是第一个微战天下,这两个是不是都是第一个里面的?好,那么接下来啊,同学们注意,接下来啊,我们是不是关于 r 相关的,是不是就测试完了?那接下来同学们啊,我们现在啊,把这个 cic 注视掉,把 r 及 r 加访问模式的测试注视掉,咱们该测谁了?是不是测试 a 及 a 加相关的访问模式,对不对?那接下来我们把 r 加这一行代码, ctrl 加 d 复制,然后注视掉最上面一行,我们把访问模式改成 a, 那接下来老师问啊,以 a 加访问模式打开是不是可读可写,当然这个写是追加,对不对?那么接下来我们去读数据,能不能读取出来数据?哎, 这个时候当我们右键软推门来看,是不是根本无法读取数据?那原因是因为什么?哎,因为 a 加相关模式,或者说 a 相关访问模式的话,文件指针是不是应该是在结尾的位置, 我们结尾往右数或者说往后数,根本就没有数据,那这个时候我们去瑞的读,是不是也无法读取出来数据? 那么接下来怎么办呀?改变文件指针位置是不是就可以了?那所以啊,我们这个目标啊,把它复制一下,然后呢,在我们的代码当中,我们再来一个第二步, ve 粘贴,这是不是我们第二个目标? 那么接下来是不是 f 点 c 可一定要用,那同学们注意啊,我们说了,是不是要把文件指针放到最开头的位置,对不对?哎,最开头的位置,那也就是说偏移 不偏一,是不是写零?其实位置是哪啊?开头是不是也写零?那么这个时候其实我们是不是就这样写零?逗号零 对不对?那么接下来咱们右键软大家来看,是不是即便是 a 相关访问模式打开了这个文件,由于改变了文件指针的位置,那我们瑞的去读取是不是也能读取出来数据,且我们观察一下,读取出来的是不是确实是文件当中的所有数据? 那么接下来同学们注意啊,老师把这个 sir 这个函数啊,现在 ctrl 加 d 复制一行,老师说一个化简写法,其实当我们参数是两个零啊,可以省略,只写一个零 表示不偏移,起始位置是开头,那接下来我们仍然又见润,大家来看, 写参数一个零和参数两个零的结果是一样的,都是把文件指针放在对开头且不偏移,那么这个时候读取出来的,因为我们又是用 red 读的,那么是不是就是读出来了所有,对不对?哎,这是我们的一个 sir 这么一个函数, 那接下来啊,同学们,我们关于 c 科这个函数的话,我们说要测试两个目标,第一呢就是关于耳访问模式,我们是不是改变位置,做到读取出来的数据开始位置不是开头了,或者是说把文件指针放到结尾,让他读不出来数据, 是不是第一个实验我们通过两个步骤去完成,那么第二个实验呢?我们是不是说 a 相关访问模式,本来文件指针默认是在结尾,所以读不出来数据,我们是不是可以改变文件指针位置?比如说像我们科上做例子,是不是 把它放到了文件指针为开头这个位置,做到是不是可以读取出来数据了?那么这是不是就是我们 faker 这个函数对文件指针如何改变的这么一个写法?一个测试,咱是不是就测试完了?那接下来啊, 测试完之后,同学们跟着老师回到笔记当中来做一个回顾,打开笔记,那么在笔记里面我们说 c, 可这个函数用来干什么的呀?是不是用来移动改变文件指针位置用的?那么调用方法语法是什么呢?是不是文件对象点 c, 可第一 个参数是偏一量,第二个参数是不是起始位置?起始位置零一二三个数字分别代表开头、当前和结尾?好了,那么这就是我们这个 ccte 这么一个函数啊,那接下来讲解完成之后呢?咱们把这个视频稍微暂停一下。

跟着海扁学代码 python 是一种解释型的计算机语言,也是目前流行的计算机语言之一。那么我们来看一下如何在 windows 下使用 vs code 来运行 python 代码。 首先可以到官网下载 python 和 vs code, 两者均提供可执行安装包以及压缩包的下载。 如果你选择下载 pass on 的压缩包,那么还需要将解压后 pass on 所在的文件夹路径添加到 windows 的环境变量 pass 中, 然后打开 windows 终端,比如命令提示服输入 pass 并按回车来验证系统是否能找到并运行 pass。 至于 vs code, 我们需要安装或启用用于开发 pass 的扩展。 启动 vs code 后,打开扩展面板,搜索并找到扩展 palace, 然后安装即可。如已安装但未启用,则需要启用 该扩展。为 b s code 提供 pass on 语言支持,比如自动写入 import 语句,提供参数建议等。 以上步骤完成后,在 vs code 中打开任意文件夹作为我们的工作区。 如果询问我们是否现任此文件,家中的文件的作者选择是以上指示演 显示。接下来我将换到另一个事先准备好的文件架来继续后面的内容。 好文件加更换完毕,我们新建一个全名为 hollow 下滑线 word, 点 p y 的文件,其中扩展名 p y 表示其为 python 的代码文件。 在新建的代码文件中书写一行简单的代码,使用函数 print 显示字符串。你好, pass on 书写完成后如何运行代码呢?我们需要添加调试配置文件。 打开运行和调试面板,点击创建 launch 点 jason 文件,选择 passing file, 它表示运行调 是当前活动的 pass 代码文件。为了更好地显示代码运行结果,可以将朗求文件中的 console 修改为 internal console 并保存。这样输出的结果会显示在终端面板的调试控制台中。 回到我们的代码文件窗口,按下 f 五进行调试。可以看到调试控制台输出的字符传则表示代码已经正常运行。 大家可以将代码中两个单引号之间的文字替换为其他内容,以观察调试控制台的输出变化。 以上就是如何在 vs code 中运行 pass on 代码,下一节将介绍 pass on 中的变量概念。我是我辈代码海扁,关注我辈代码海扁,开启快乐生涯!

大家好,今天我们一起研究一下拍散对插妙对象的一个解决处理,还有如何利用拍散去生成一个插妙 主要运道的拍损自带的一个标准库,这个差没有库,然后它里面有两个模块,一个也难免的去这个负责解析和读取,另外一个 documents 负责去写入一个插,没有。 然后今天的讲的内容的话,主要就是这些,主要是分读取和写入两个方面。第一个咱们去引入这个南门的吹, 可以看,这是我准备的一个测试数据啊,这个车没有文件的话怎么看呢?这边最外层的这是属于他的交更界点代词代特斯,然后 tt 这个是他的一个属性, 然后里面包含了两个标签,然后 id 又是里面他自愿所的一个数线,这个内幕也是同理。然后接下来咱们去把它读进来, 嗯,首先的话引入给咱们的吹这个这个模块,我们给他弄个简称,然后用一踢你能不能吹这个方法里面他有个 facebook 参数,然后把这个全没有, nice 特点全没有。这个图片 可以看到他读进来是一个引来门的处理对象,然后下一个咱们去获取他的更接上如何去获取他更接连这个引来门的处于这个对象,他是有一个方法,嗯,叫做 get the roots, 这个地方明明改一下,给他改成睡吧, 然后这边是 root, 然后这边输印点开是 root 方法,然后咱们看一下这个 root, 可以看到这个 root, 他和这个 呃堵建的前面有这个对象是有区别的,刚建,刚堵建的时候他是作为一个树对象,然后堵建,然后这边咱们去把他的根结点拿出来之后变成一个 m 层,也 m 层说白了就是一个元素这个树上面的一个分支吧,算是 让他把根结点拿到之后,去看一下如何去访问他的标签名和出现咱们 李咱们的这个对象,他有两个属性,一个是泰戈,一个是 hbugs tech 是波斯塔的一个标签名,这就是代代特斯这个标签名,然后用 hbut 可以拿到他的一个属性,嗯, 这个的话是对他所有的元素还有包括他的元素都是试运的。然后接下来咱们看一下如何去循环访问他的元素。访问的访问七种元素的方法有两种,一种是通过循环的方式,一种是通过所以的方式。先先看一下循环吧, in root, 然后咱们输出一下 taste 的标签名和首先 可以看到他这边是把这两个子结点子元素的标签名还有他的属性都打印出来了,咱们要拿最底层的这个元素的话怎么做? 我们放里面他每一个泰格,每一个泰格代表是这个代特,然后这代特下面他又有三个元素,三个字元素, 咱们这边也是用放血环的方式去给大家做这样吃吧。然后 可以看到这边他最外层去打印他嗯紫元素的一个标签名和书签,然后再对他的紫元素进行一个循环,打印他紫元素的紫元素的一个标签名, 这样子咱们拿到了最内层的这个元素,其实最内层元素因为它里面是有个 tx 文本的,咱们可以认 c 杠 tyx, 然后点 bxt 这个方法, 然后去获取他的一个文本文本内容,这样子他就把他的一个嗯标签名,还有他标签里面的内容都拿出来,这是通过循环访问元素的一种方式。 另外的话咱们在这一步可以不用去循环,嗯,什么意思呢?咱们可以直接用泰戈,然后去拿它的缩影,假如说泰戈一这第泰戈的第一个元素,它就是这个内幕,然后直接去 这样子,咱们把它 data 这个元素的第一个元素的文本值给他拿出来了,就是通过循环的方法,然后内部的话通过缩影的方式,一样的,咱们 在外部也是可以通过缩影这个肉头节点它的第一个元素,第一个元素是 data, 阿迪的音系的这个 data, 然后咱们拿,比如说拿到这个呃,十八他的他的年龄, 然后就可以通过这边是缩阴到了 dat, 然后带他再去缩阴他的第一个,然后这就缩阴到了 h, 然后通过 tics 这个属性,然后拿到他的一个本本属性,就是达到达到一个十八, 大概的这么一个房房式的就是这样子。另外还有一种方法,就是咱们去呃,通过去寻找他的资料签名的一个方法,然后这么入,咱们直接去 可以输出一下,看一下这一块他返回的是一个 amet, 他是一个组员,直接把这个均调到的第一个呆特的组员速度直接就返回回来了,咱们这边改成片的哦,完成后这一块他变成了一个列表, 然后列表里面是有两个有点慢的处理,大家注意一下这个区别哦。翻到后的话,咱们假如要去,咱们啊咱们先去尝试一下翻的吧, 这个范呢,咱们直接返回的是一个 amat, 这样子咱们可以用缩影,也可以再去做一个 fant, 假如说咱们用 fan 的这个他的性别嘎的,然后这边拿到之后是他的一个嘎的这个标签, 咱们再去访问他的一个内容,大概就是这么一个样子,就是翻的,然后翻的。奥的话就区别不点区别,咱们这边因为反复的是列表,咱们首先要去对其做一个 的一个缩影,然后要怎么访问第二个代塔,阿迪电影二的这个代塔的一个数钱, 我们就用收音机,收音机之后,收音机之后去翻的,翻的这个翻的这个疙瘩, 这是烦恼,还有这个循环,还有,所以呢,这个方式咱们去访问元素的时候, 好,下一个咱们看一下如何去写入,或者说生成一个长秒纹的。呃,生成的话咱们需要引入这个刀盔们的这个方法。对,那么引入之后首先要去做一个出示环 人,做完说实话之后,这个 doc 就是一个刀客们的对象,然后咱们可以通过这个做到这个刀客们的对象,然后去创建他的复元素跟元素增元素,然后再去往里面添加一些咱们需要的一个内容, 咱们先创建一个根源素,我 doc 它有一个 ctrl lemons, 就是发现标签这个里面的参数是它的一个节点名称,咱们给它起个 root 啊,然后 root 作为咱们的根元素。这一步咱们虽然创建了,但是还没有添加到咱们的 doc 这个下面, 嗯,什么意思呢?就是咱们是通过 doctor 们的这个对象调研他的 cream 的方法, create creative amount, 这个方法去创建了一个各元素,但是这个元素现在还没有归属,咱们需要去做一个骗子 opinion charity, 这个就是相当于往这个 docu 门的对象里面添加一个紫元素, 然后同样的咱们现在还可以再创建一个元素,再创建一个紫元素,就根元素叫做紫元素,也是用 d o c 的 a。 咱们的这个方法,咱们创建一个叫做黑的的这么一个紫元素,然后再把黑的添加到添加到入的下面,这个大家能想象吗?现在就好比这边入的下面咱们添加一个嗨的的一个紫元素啊, 咱们现在可以把这个图书给大家看一下, 这边外最外层是一个路头,然后里面添加一个紫元素,黑的 啊,接下来咱们往这里面添加一点内容,添加内容的话就是需要做的运动。一个添加文本的一个方法,也是 doctor 的对象的一个方法,叫做 creative text note, text e 吧,这个里面添加放咱们需要添加的一个内容, 咱们第一个添加一个,嗯,返回尺吧,返回尺,返回个一。呃,虽然咱们创建了,但是它只是一个文本,咱们创建了一个文本,这文本它也是没有归属的,咱们需要去做一个额片的,额片到哪里呢?然后咱们再创建一个嗯,扣的标签来,放在扣的标签下, 然后 coat, 然后也是 paint, 把这个 text 给他,给他添加进去,然后再把这个 coat 添加到嗨的下面。 接下咱们再去输出一下他的一个格式,看一眼可以看到最外层现在是肉层,然后他的紫元素是黑的,黑的又有一个紫元素调的裤子,然后这裤子里面咱们这是咱们创建的 一个返回支啊,这是相当于扣掉的支,我们可以用这种方法多添加几个,到时候咱们这边再添加一个访问成功是正常的一个 yobuses 的这么一个返回支的格式嘛, 然后改一下名字做 tax。 二,然后再去创建一个元素叫做 max, 然后去把这个 tax 给它放在 s h 这个,呃, tax 这个文本内容放在 max 的这个元素下面 啊,这一块咱们就添加成功了,添加成功之后咱们再把这个 macy 放在嗨的下面, 现在的话咱们再去输出一下这个这个产品,可以看到现在 还得下面是有两个元素的,一个扣的一个 message, 然后下一步咱们就写着,由于雕 c 这个咱们投墙面了之后可以看一下这一块,他是直接去把这个给他输出了,这就是一个字不串的一个类型的墙面, 上面有数据这块咱们如果要直接写入的话,可以把这个 doc 图强秒这个直接去 reads open, 打开一个软件进行曲,也可以用 doc 自带的一个方法,就是呃 red channel, 由于这个 red 唱片他需要传参的时候要传一个文件留的这么一个对象进去,那咱们还不如直接去呃,直接去做一个线路 好,你把这个把它引起来,我用特别假的方式,因为这个文件暂时是没有,然后再去 f f 点 rat, 大家有没有发现一个问题,这块它是只写到一号,咱们要写成这种竖状的话需要运动。另外一个方法就是 doc 点 to prayt 唱秒这个方法,这方法的话他可以把这些里面的一个换行符,还有推格这些方这些人都加进去,就是反斜杠 t, 还有反斜杠这些东西都加到这个文本里面,嗯,咱们写进去它就变成了一个自动变成一个格式化的,是吗?一个长秒文件, 然后这块咱们加个编码,编码格式。 哎,这块呢写出写出去的时候有点问题, 哪来这么多油贴发?咱把这个油贴发把它去掉,试一下把这些烤下来,然后把这个油贴发去掉。 啊,现在他就是写成功,写成功。但是有一个问题,咱们这边不仅有这个版本,还有这个编码格式, 那咱们如何去把这个编码格式也加到这个唱片文件里呢?这块就也是用这个方法,我们先去看一下这个把它打印, 为什么呢?因为咱们这一块直接喘,这么喘的话是有问题的,需要我去指定给你扣定。现在最大 可以看到他这边是把这个 utf, 把这个给加上,加上之后当然就让他变成一个贝塔斯的血。咱们再去做血肉的时候,呃,就需要去做一个解码, 咱们把这个 inco 练这个参数先放进来,放进去之后他由于变成了一个 albeit station, 那我们去做一个 dicode, 然后呢用英语 tm 方法, 然后再去卸妆,然后咱们首先打开一下,可以看到他现在把这个 ancoldgamengf 八这个是加上的,然后这样子咱们就成功的生成了一个查麦尔文件, 然后主要就这么多,一个一方面咱们讲一下处理,另外一方面咱们把这个生成的方法也讲了一下, nice。

一分钟学会一个拍词结,今天我们来介绍一下拍子中的 for else, 不是 if else 吗? for else 结构呢,是 passing 所特有的一种语法结构,那它具体怎么用呢? 上盖法,这里有一个猜数字的小游戏,正确答案是八,我们设置一个初始变量 flag, 它的值是 force。 接下来呢,我们有三次机会,用户输入一次判断一下, 如果猜对了,直接设置 flag 为处,然后退出程序,否则的话提示猜错了。如果三次全部猜错,那么接下来提示三次机会永光,这是一个正常的情况。 ok, 我们看一下这个运行结果, 三次全部猜错,提示三次机会用光,那接下来我们使用 for als 来进行改造,注意这里的 als 和 for 是一对,然后如果三次全部猜错的话,我们就提示 三次机会用光,再来运行,输入一二三,三次机会用光,那如果猜对了, 那么程序直接提示猜对了,此时 als 语句不会执行,也就是说这里的 for als 呢?只有当程序正常退出,没有执行 break 语句的时候,他才会执行 als 里面的代码,小伙伴你学会了吗?