python 的 反射机制中,如果说 getter 是 获取工具, setter 是 修改工具,那么 setter 就是 保障这两个工具安全使用的前提条件。 python 是 python 自带的内核函数,核心作用只有一个,判断某个对象是否包含指定的属性或方法。它的语法简洁易懂,仅接受两个参数。第 一个参数表示要检查的对象可以是类实力列表、字典自定义对象等各类对象。第二个参数表示要检查的属性名或方法名。同样的必须是字母串格式,必须是字母串格式,必须是字母串格式。函数最终会返回一个布尔值。我们来看一个简单的案例,先定义一个简单的类,创建对象,用 hex 函数完成检查。 检查对象的方法也是同样的操作。 hex 的 底层运行逻辑不是简单的看一眼属性是否存在,而是主动尝试获取目标属性, 读取成功就返回处。如果抛出 attribute 而错误,函数会自动捕获异常并返回 false。 需要注意的是,如果属性存在,在获取属性时触发了其他类型的异常,例如属性是一个会主动抛错的函数,异常则会直接抛出,不会返回 false。
粉丝1.0万获赞29.6万

开放中的 def 是 什么意思? def 是 你用来创建函数的关键字,函数就是一段可重赋使用的代码块,你可以在需要的时候随时调用它。当 python 看到 def 时,并不会立刻执行代码, 它只是创建这个函数并给它命名。想要真正运行函数里的代码,你需要像这样调用这个函数。你还可以给函数添加参数, 参数就是韩秀即兴任务所需的输入集,同时你可以用 return 关键字返回集, return 会把数据回传给调用韩秀的地方。简单来说, def 用于创建韩秀, 调用韩秀才会执行代码,参数是韩秀的输入, return 是 韩秀的输出,韩秀能让你的代码简洁可复用,而不是一团乱麻。这就是拍丧中 def 的 含义。

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

多看 python 知识,你的大脑将不可逆转的变聪明!警告,本期的视频耗时三年制作,共计一千九百六十二分钟,从零开始详细介绍 python 知识 技巧。由于时长太长,本视频先带你过完基础篇基础数据类型讲解,那接下来咱们就正式的进入到了第二章的学习阶段。 第二章咱们主要是针对 python 的 基础数据类型做一个系统的讲解,因为 python 基础数据类型在以后的我们写代码的过程中, 基本上是每天每时每刻都要使用到的东西,他基本上可以认为是 python 的 一个根基,所以我们要把基础给他打得很牢,后面学习的时候呢,才会不费劲啊。 那我们这张主要内容呢,第一块就是关于数字啊,还有布尔值他们的一个讲解,为啥把它放一起呢?因为这俩玩意都很简单, 实在没啥可说的,所以我就把它放在一起啊,把它说完了就完事了,对吧?然后重点来了,就四福串非常的重要啊,各位,这个东西我们要重点的去学习它,而且给你 挪出来哪些东西是必须要掌握的,哪些东西呢?简单了解一下知道吧!这个东西呢,又多又长啊,难呢,倒是不难,主要是记东西呢特别多,所以呢,很多小伙伴在学到字幕串的时候啊,就容易被劝退啊,所以这块提前给你来一个预防针啊,它的重要程度,五颗星,这个东西很重要啊, 然后是列表,也是我们未来要用的非常的一个东西,它的重要程度呢,也是五颗星, 也是五个型,那列表呢?咱们到那个节点上再跟各位去细聊啊,列表其实,呃就是他的数据范围,或者说能存的东西会比字母串啊要大的多的多啊,这是列表,然后 top 呢,这个东西叫圆组,这个圆组啊,我们简单了解一下就可以了, 知道有这么个玩意,知道他的一些特性就足够了,没必要把他搞的特别的深刻好吧,然后是赛的及格,赛的及格更是那了解知道有这么个玩意,知道他的特性就可以了啊,知道他在什么场合什么场景下能用到就 ok 了,知道吧,字典又来了,这个东西就 好吧,这个东西就没得说啊,又是一个,多了一个啊,字典是我们未来使用的频率啊,就是跟字串啊,跟列表啊,基本上同级别的,所以咱们这一张最重要的几个点就是字串啊,列表啊,字典的这个东西知道吧,所以他也特别的重要, 而且他的这种存储方式啊,你去学习其他的语言也必须要去掌握,知道吧,这个东西 没办法,基本上现在是业内一个公认的一种一套一套就是数据存储格式了啊,然后是 bios, bios 这块呢,它就是咋说呢,重要程度呢,很重要,但是呢它又很容易,因为 只需要记住他的表示是怎么表示的呀?啊?怎么能够产生拜次啊,拜次能干嘛呀,对吧?懂这个就够了,所以他的重要程度呢,还蛮高,但是呢又比较容易啊,就四颗星。那运算符这玩意啊,我跟你说 基本上呢,你学完之后呢,都很容易的去掌握它,但是预算符,呃,就就咋说呢,也是记的东西会多一点啊,记的东西会多一点,我给他三颗星好不好?给他三颗星,不能再多了啊,就很简单,然后操啊,文件操作这块呢,也是基本上是个固定的格式, 基本上我给他三颗星啊,四颗星,因为文件操作一上来的话,我们的综合练习啊,综合的代码的处理能力基本上就上来了,知道吧,所以这个东西 他是把前面所学的所有东西都串联起来的一个知识点啊,那我们通过这些东西其实就能够发现一些端倪啊,各位,咱们这一张本章内容大多数都是要干嘛要记的, 懂吗?要记的,理解的东西不多,懂吗?理解的东西不多,他不像说我们写个算法,你要去理解他,你去感受他,你用爱去呵护他,不是,这个玩意就是记 啊,没有什么就是太好的办法啊,而很多小伙伴呢,不愿意去记,所以呢,这就是个矛盾体,很多人其实看到这些东西就已经够了,是吧,全都是要记的东西,知道吧,但是没办法,这些东西 你多记一记,而且呢,在后面的学习中会干嘛呢?经常的使用到本章内容,就意味着你很容易去理解和记, 知道吧,所以这玩意咋说呢,熟能生巧,懂吗?哎,就这么个意思啊, ok, 那 这就是咱们要聊的这一章大概的要讲的一些东西。好,接下来咱们来看这 int, float 和 bo 这三种数域类型啊,那第一个要聊的呢是 int, int 呢,它表示的是整数 啊,整数,那它只能表示整数啊,你你,你不能说把往 in 里面放些其他的,当然 python 里面其实无所谓,你弄个 a 等于十,这就是整数,对吧?你往 a 里面放个十点五,对不对?也没问题,那它就变成了小数, 对吧?所以这个就是一个整数,整数能干嘛?这个不多说了,能做加减乘除,加减乘除还能做什么?做这个大小比较,对吧?还能做这个事情,其他的,你说一个数字能干嘛?没啥事干, 对吧?所以这是 int 类型,那么第二个叫什么?叫 float, float 呢?叫,叫小数啊,又叫浮点数啊,翻译过来其实叫浮点数啊。那这个东西呢,我要去给你们去简单的去聊一聊啊, 这个浮点数它有什么特点呢?各位请看啊。比方说 a, 它等于十点五,来 print 这个 a, 这个其实没什么可聊的, 很简单,十点五,但是呢,我要聊的是这么个东西,好,那就十除以三,来,各位,十除以三其实很容易算,就三点三三三三三,后面无数个三,对吧?哎,无数个三,那么我真的搞出了一个,对吧?无限循环,小数到底是什么样呢?来走, 三点三三三三三一对三,然后最后来个五,这个五怎么出来?这个五出来就很蛋疼,对吧?哪怕说你最后三点三三三,一直三下去,我能理解,你再不记,往死里算,你三点三三三个四, 对吧?你来个三啊,就是什么,呃,二舍三入我都能接受,对吧?三三四我都能接受,但是来个三五 我就很难理解了,对吧?为什么会这样呢?各位一定要记得一个事情,就是说我们的小数,注意啊,他的数据范围是无限的。 对,小数的数据范围是无限的,而整数虽然也是无限的,但是在某一个特定的区间内是可以表示的,但是在某一个特定的区间内是可以表示的,但是在某一个特定的区间内是可以表示的。之间 有多少个整数?这个数,这个,这个确定的,对吧?是很清楚的,大概有多少个,对不对?是很 ok 的。 但是我问你一到二或者零到一吧,零到一之间有多少个小数,你是表示不清楚的, 对吧?他可以有无数个,他的范围是无限的,对不对?也就是说人类都无法非常完美的表示出来每一个小数,那你能计算机他能表示吗?他表示不了,因为计算机注意。 计算机是什么呢?是一个二 g 制的产品,他里面只认识零和一,他只认识零和一,就意味着你这个计算机 他里面能表示的一定是整数。各位,就是你不管是小数还是什么玩意,到了计算机里面肯定是零一零一零一零一,对吧?没小数点吧?各位,对吧?没有小数点,所以他想表示出来一个小数是很困难的, 他本身呢?就很困难,他本身很困难,这个时候你又想让他表示出来一个,对吧?无限的可能的这么一个小数,那是不可能的,所以他一定有什么呢?各位, 计算机表示一个小数是会有误差的,只不过这个误差你能不能接受,你能接受就 ok, 接受不了你还得想办法用其他的方案来去解决。比方说我可以把这个数放大, 对吧?放大,比方说啊,就是零点零零零一,对吧?你说这个误差最多能进去到这,对吧?好,既然能进去到这,我怎么能让它减小误差?很简单呢?我把它乘以一万倍, 对吧?乘以一万倍,他这个误差是不是就更小了,对不对?把它放大啊,把它放大再去处理就可以了。所以这里面一定记得一个事情,就是计算机表示一个小数是有困难的,而且呢是有误差的,记着这么个事,所以这个五怎么出来的?是那个误差, 好吧,你可以认为就是个误差。所以这个地方不要对 python 的 这种啊,表示小数或者 float 类型,你对他非常严苛啊,没有必要,你只需要知道这个数 ok, 那 么无限接近于三点三三三就 ok 了,对吧?我们未来还会见到一些,比方说会表示出来一个小数啊,比如说二点零零零零零零零零零零零零零零零零零零零 一或者二,或者会表示出这样一个数,这个数是不是无限接近于二,对吧?我们就可以认为它就是二。 这个地方是由于这个计算机的误差产生的。这个东西不仅仅是 python 有 这个问题, java 也有这个问题, c 也有这个问题,所有的计算机语言都有这个问题,因为计算机本身这个地方他就是有误差的啊,所以要接受这个事情啊。 说的有点多,但是呢,希望你能理解,好吧,就是一个,呃,一个小的一个小玩意啊。跟各位聊一聊,然后接下来我们来聊聊这个布尔兹。 布尔布尔之前咱们聊过了,他是用来做条件判断的,那么他做条件判断的话,他的取值只有两个,注意他的取值范围,范围只有处和 force, 对 吧?只有这两个,那么他能 得到一个啊,布尔值的话,这个方案是有很多的,比方说他大于啊,小于啊,是不是等于啊?哎,这种都可以得到一个布尔值,那么我们要聊的其实不是这东西,因为之前都讲过了,对吧?那这个布尔值放在这,我要讲些什么东西呢?我们要讲来基础 数据类型之间的转化啊,我们主要要想讲一下这个事情,比方说我们之前聊过,比方说 a 他 等于,比方说十,哎,我们拿引号给他引起来是什么类型?各位, 字母串之前聊过,这是字母串,对吧?我们可以看一眼他的数据类型,通过 type 能看他的数据类型吗?来走啊,很简单,他是字母串 啊,没问题。那我现在需要用它去做个加减乘除啊,你是不是得把它做个数据类型转化呀?所以我们来个 b 等于来 int a, 对 吧?这个是把字母串转化成 int, 没问题吧?来,这个时候我们再看这个 b 的 数据类型啊,看这个 b 的 数据类型走, 看他就是 int 类型,对不对?那么接下来我想做一个尝试啊,我想做个尝试,我想把一个数字,哎,把它转化成布尔值,哎,我想看看长什么样,对吧?来,这个时候注意看了啊,我把这个注视掉啊,注视掉,这地方多加一个, 好,随便准备个数字, a 等于 a 等于十。好了,接下来我想把这个 a 呀,变成一个布尔值, 对吧?那 b 等于是不是应该是布尔把 a 扩起来,对不对?按照之前的规则,不是你想把这个某个数转换成什么类型,就用什么把它扩起来吗?一样的逻辑,我想转换成布尔,就布尔把它扩起来好了,这个时候我们应该能知道什么,这个,这个,这个,呃, b 的 数据类型应该是布尔,对吧?走 a b 的 数据类型确实是布尔,那这个布尔到底是啥,对吧?到底是啥?我关心的应该是这个东西,是吧? b 到底是啥?走,哎,是 true, 是 true, 也就是说我把一个数字转化成布尔,它现在是 true, 对 不对?那十是 true, 九, 哎,也是 true, 来这地方我们来个负九走也是 true, 对 不对?那谁会是负九呢?零是负, 对,零是 false, 所以 记住一个事情,在拍字中啊,所有的数字,非零的数字都是 真,而零是什么?是 false, 对 吧?零是 false, ok, 那 么有这个特性,我是不是就可以在我的循环那块,是不是 在我这个循环的那一块,是不是就可以做一些文章啊?比方说我之前讲过,我说我们想写一个死循环,是不是 will, 对 吧? print 还我钱,是不是这个时候走,哎,一个死循环,还我钱。那么我现在想把这个程序进一步简化,谁能表示出来 是不是非零,就可以表示是处啊?谁是非零?一,是不是非零?所以走是不是也是死循环,对不对?哎,所以我们的真正的在,就是就是,大佬在写死循环的时候,基本上都是这么去写,所以这个是啊, 四循环啊,永或者横吧,横为真,永远是真啊。这个是我们对布尔值的,这就是数字,可以作为这个布尔值来进行使用,那数字能这么改,似乎是二行不行啊, 对吧?你好啊,来,我们推一下布尔,直接转化了啊,转化 走,你出,对吧?哎,空格来,出好了,把它删掉,走 first, 发现什么规则没有?就是在 python 中所有非空字复串都是,哎,都,都是真,对吧?都是处, 而空字副串是 false, 对 吧?空字副串是 false, 哎,我好像找到一个规律,对吧?你看啊,零对吧,表示的是 false, 空表示的是 false。 零和空,它们都有一个含义,是不是就没有东西, 对不对?没有东西就好比说你兜里边是吧?零块钱,是不是没钱,对不对?哎,你的兜是空的,就是没,也是没钱,对不对?所以也就是说在拍摄里面,我基本上可以断定一个事情,就是啊,就综上, 我们得到一个结论,就是在 python 中什么呢?表示空的东西都是 false, 不 空的东西都是 to。 哎,我们来做一个测试啊,比方说我们未来要学习的一个数据类型叫什么叫列表,列表 啊,这个 python 里面这玩意叫列表啊,现在这列表里面中括号里面是不是啥都没有,啥都没有是不是就空了?空的话来走,布尔来 list 走,你是不? first, 往里面加个东西 走数变成了处。那有人问我说我家零呢,零不也是空吗?哎,但是你零虽然是空,但是你要知道你这个列表是不是装东西了,虽然装那个东西它是零,但是列表里也也有东西,对吧?有东西 就是真啊,有东西就是真。所以这里面我们基本上这个事情在 python 的 基本数据类型当中啊,在 python 的 基本数据类型中, 表示空的东西都是 false, 其他的东西都是错,知道吧?所以这个结论希望你能记得住。各位啊,这个结论希望你能记得住。这个我们未来的经常都能用到啊,经常能用到,比方说我们可以做这样一个事情,看着啊, well, well, e。 好 吧, well, e。 耶, well, input。 请输入你要喷的内容,还记得这个事吧?来, content 等于来,我们接下来打印你要发给打野的内容, 对不对?你要发给答卷,什么东西啊? ok, 好 吧,这个很简单啊,之前咱们写过一次,然后我要喷内容,别来下路啊,来了就送,对吧?哎,你还可以这样一直回车,那我现在想干嘛呢?你如果什么都不输入,就让这个程序给我停, 哎,你什么都不输入就让这个程序给我停,那我可以怎么改呢?来,如果你输的这个 content 有 东西好干这个事情,你要是没东西,我是不是就直接 break 就 可以了, 对吧?有东西我就干嘛,没东西我就干这个事情,来,走吧。啊,小叔叔,你要喷的内容还我钱, 走你。哎,我一回车看这程序结束了,所以此时我们就发现,哦,这个东西还可以这么用,对吧?还可以,这么,未来我们会遇见大量的类似这样的代码啊,如果他有东西干嘛干嘛?包括列表,老师,如果列表里有东西,我干嘛干嘛?没东西 其他的事情,那这个就是我们未来能够遇见的,或者是能够用到的一个小知识点。 ok, 那 至此我们把 python 的 三个基础术语类型啊,一个 int, 还有一个 float 啊,还有一个布尔,那跟各位就讲清楚了。 ok, 那 本节呢?就说这么多,谢谢各位。

拍藏基础快速入门第一篇拍藏介绍今天我们将共同踏上拍藏的学习之旅,从零基础逐步走向精通。在各类编程语言中,拍藏其实是以其简洁明了的语法深受开发者的青睐,无论是外部开发,还是数据分析、 人工智能、自动化办公等领域,都能见到它广泛的应用。这一切还要从它的创造者说起。荷兰程序员吉多范鲁苏姆一九八九年圣诞节假期,极度感到当时的一些编程语言书写繁琐, 可读性不佳,于是萌生了一个想法,设计一门既能应对复杂任务,又像自然语言一样易读的语言。利用假期时间,他逐步实现了这一构想,并将这门语言命名为 tai san, 其灵感来源于他喜欢的英国喜剧团体 monty。 拆散正因为注重代码的可读性与简洁性,逐步获得了广泛的认可,使程序外观更加清晰。它使用缩进来组织代码结构,语法接近于英语,便于理解,强调优雅与简洁,帮助初学者更轻松的掌握编程逻辑,而不必纠结于复杂的语法。此外, 拆散拥有丰富的第三方库,覆盖从网站搭建到数据处理、机器学习领域等众多场景。更值得一提的是, 开放背后有一个活跃的开源社区,遇到问题时,你常常可以找到参考方案或现成的工具包,从而大幅度减少了重复工作。如今,开放已经成长为众多领域的常用编程语言, 他为你打开了通网、人工智能、数据分析等高技术领域的大门,帮助你在各个岗位上借助技术创造额外价值,提升个人竞争能力的使用工具。希望今天你能对 python 有 更进一步的了解,下一期我们将一起安装 python。

我们先看第一道面试题,说我们这个 percent 里面的数据结构有哪些?为什么要学习这个数据结构呢?因为我们学任何一个编程语言都是从它的基础知识开始学习的。 对于任何一个程序,它的核心就是数据结构加算法,我们只要学好数据结构和算法,我们就能写出任何的程序。好,我们就直接开始啊。这个 python 呢?我们主要知道这个 python 里面的典型的这个数据结构,它有列表、字典、原组字、复创, 它这个集合数、数字这几种主要的一个类型。我说了这些是基础类型,比如你们自定义的各种类啊什么的对象,都是在这些基础类型的基础上进行一个封装的。 好,我们就看一下代码,首先我这个代码就拿给大家说一下拍摄你的一些基础类型,比如这个是 这个这个列表,然后字典圆组字母上数、数据小数。我们一般大家写这个这个定义数类型的,可能直接写这个 a 等于多少,我们也可以加一个这个 这个冒号,然后在后面强制指定他的一个类型。为什么要这样呢?这样的话咱们的代码就具有更好的一个可读性。比如你看到这个你就知道这个 a 是 个什么类型的数据吗?这样的话更利于这个代码的阅读性。 所以我推荐大家以后在写代码的时候可以多使用这种一个回放。比如在强调一下大家定义一个函数的时候,也可以在函数的上面显示指定那个变量的类型。比如这个我们定一个两数相加的一个函数, 看这个我们就可以以两数之和,我们定义 x 和 y, 咱们就可以在这个 x 和 y 上面强制指定它这个 int 类型,返回一个 int 类型。 为什么要这么?因为咱们在写这个 c 语言和 java 的 时候,他们都是强那个类型的语言,我们定义任何一个变量都要在定义的时候就能指出它的一个类型,但是 python 就 不需要,所以我们就通过这种方式增加代码的一个可读性。 好,讲完了数据类型,咱们接下来看下一个知识点,接下来这个知识点就是非常非常非常重要的这个可变类型和不可变类型,这个如果你把这个理解了,就说明你理解了这个 python 内存的分配机制,如果你这个都不理解的话,那就说明还没入门的状态。我们就现在开始给大家讲解一下, 说这个可变类型和不可变类型,它是针对这个对象所指向的内存,它是不是可变来定义的,比如说咱们的一个复合的数据类型,比如说字典,还有这个列表, 它们就是一些可变的类型,因为你的列表它的元素是可以动态变化的,但是我们不能理解的这么肤浅,我们要从它底层,就是在计算机里面这种变量它都通过一个指征,在 c 语言里面咱们叫做指征来进行一个引用的,说不可变就是它的指征,一旦指向了它的东西,咱们它就不能变了。 好,讲完了这个数据类型,咱们接下来看下一个非常重要的知识点,就这个配置里面的可变类型和不可变类型, 这知识点非常非常非常重要,大家一定要认真听啊。首先咱们这个可变类型并不是说你复制之后他就是不变的,而是咱们要从他的底层来说,比如他的内存地址, 对于这个基础的数据类型,比如说整数、小数、四五串,他们的这个内存地址一旦确定之后,他们就他们就不会变了。假如你复制 a 等于一,然后你把这个 a 修改成二的话,他的那个一的内存他就没有,由于没有变量引用他,他就被气用了,咱们就直接将 a 转化成那个二。 说一个更详细的,就是说咱们这个 python 里面的这个变量名啊,他就可以当做一个便利贴来进行一个理解。 如果你把这个 a 定义成一个列表记下来,你把这个 a 粘贴到这个列表上面,然后假如你修改成 a 的 时候,它就相当于把这个 a 的 标签从这个列表上面晃到了其他的地方上面去。 这就是 python 和咱们的 c 语言的一个本质区别, c 语言你定义这个变量时候,你的类型必须要显示出来,而这个 python 它为什么可以不需要你指定它的一个类型呢?就是因为这个 python 的 变量它就是一个便利贴,它贴在谁上面,这个变量就是指向谁的一个地址。 我说不知道大家能不能理解啊?如果不理解的话,咱们接下来的深拷贝和浅拷贝那两个知识点会详细的给大家讲解。

那么今天我们来讲面向对象中另外一个很重要的概念叫做继承,那我们先来了解一下什么是继承。面向对象中的继承呢?其实和生活中的继承非常的相似,生活中我们能够继承父母的资源和经验。 在编程中呢,我们的继承是指的一个类可以直接获取并使用另一个类已有的一个属性和方法, 其中提供功能被继承的这个类,我们叫做父类。继承父类功能的类,我们叫做子类,例如我们这里可以去定一个包含奔跑、进食等功能通用的动物父类, 再让狗这种子类呢去继承我们的动物父类,那子类就不需要重复的去编写这些基础代码,只需要直接使用父类的所有功能就可以了。 那继承它是能够实现我们代码附用的,它可以整体的去简化我们的代码结构。同时我们子类呢还能在父类原有的功能基础上去新增一些专属的方法, 比如刚刚我们的狗类,它继承了动物类,为了丰富它自己独有的一个特征呢,它还可以给自己去添加多个行为方法,比如这里的握手和转圈。那么我们应该怎么去实现这个继承呢? 我们这里来创建一个父类 animal, 再来创建一个子类 dog, 两者在语法上的区别非常的小,我们只需要在这一个类 dog 后面呢加上一个括号,括号中去包含住父类的名称就表示继承了。 那这样的 dog 类它就拥有了原本在父类 animal 中所写的任何东西。同一个父类它是可以有不同的子类的,像是狗,猫等等这些动物,它都可以去继承我们的动物类, 但是这些动物它们的行为方式总会有一些不一样的地方,比如狗呢喜欢趴着睡觉,猫呢喜欢缩成一团睡觉,那整体的行为呢?虽然是一样的,但是细节会有一点区别,这时候我们就需要用到继承里面所说的方法重写了, 那方法重写是什么呢?当我们继承了父类之后,我们可以在子类中去构建一个和父类中方法名称相同的方法,重新对行为方法去进行一个编程,这个就是我们所说的方法重写。 比如我们在 animal 类中去设置了 sleep, 只是简单地说到我们在睡觉,然后我们在子类 dog 中重新去声明了一个 sleep, 写上小狗趴着睡觉。 那么当我们去用 dog 类对象去申明一个对象的时候呢,便会使用到重写后的方法输出小狗趴着睡觉。这里我们到拍床里面来演示一下。首先我们来创建一个父类 animal, 然后呢给他写上一些方法 正在睡觉, 然后我们来创建一个子类 dog 来继承我们的 animal。 那 现在我们不写 in it, 我 们直接来写这个 sleep 方法, 我们对原本的这个方法重新去做一个编程来 print 一下, 正在趴着睡觉,那现在呢,我们去构建一个作个对象。 好,我们上节课的时候呢,提到的我们需要有一个 in it 方法才能够去构建这个对象,对吧?那今天我们讲到的这里的继承,我们在作个类中我们是没有写 in it 方法的,那在这里其实是因为我们继承了 animal 类,那它相当于在我们类 这一个子类中去复制了一个我们负类的方法放在这来,那么我们也就只需要去输出一个 word 一 给我们的内幕属性进行复制即可。 那接着呢,我们再用 word 一 去点我们的 sleep 方法,我们来看一下它的一个输出, 可以看到它的输出呢就是正在趴着睡觉,对不对?那这里的话就是用到了我们后面子类它重写的方法。好,那么今天呢,我们就先讲到这里,下节课开始呢,我们将会去学习文件的操作。

花三万买的 python 系统课程,手把手教学,学完即可就业,存下吧,真的很难找全了。注意,本视频耗时三千零九十四分钟,共两百零六集,从零开始,系统陪你学习 python, 这可能是抖音目前最良心的入门到进阶的 python 保姆级教程了,看完本套课程,你就离上岸不远了,为了让零基础的朋友学起来没有负担,你们的学习思维导图, 还有视频中使用到的素材,软件安装包,教程配套的课间笔记,以及一百本拍摄教程书籍 pdf 版等,留言打卡学习即可全部打包带走。如果看到这里对你有帮助的话,请给老师一个免费的一键三连吧,让更多想学习拍摄的小伙伴们看到这个视频。接下来我们开始正式的学习吧! 现在我们来认识一下 vivo 循环,那 vivo 呢?它在英文中是代表着当什么什么的时候, 那其实本身呢,也是很好的全释了他的含义,你可以把他想象成一个基于条件的哨兵啊,就他时刻都在检查着某个条件,只要条件成立了,他就会执行任务,所以说他关键就是这个条件。 那微奥循环的语法结构呢,也是很直观,就像在和计算机对话, 那第一行呢,是条件好,就是 will, 关键字后面跟着一个条件表达式,最后呢,以冒号结尾,就像跟计算机说,当满足某个条件的时候,那这个表达式呢,就是我们这个哨兵的指令。 那第二行呢,是以循环体,这是我们的任务清单啊,也就是需要我们重复执行的代码。 那这里呢,有一个非常重要的 python 语法规则,就是缩进所有属于循环体的代码呢,必须向右 缩进,通常呢是四个空格,这呢是告诉 python 这些代码是一个整体,是在 want 循环满足时需要执行的部分,它是整体,所以以缩进的格式去表达。 就好像我们这个哨兵,他有一个任务手册,需要按他来执行这些任务啊,那里面呢写着具体的要求。那开始呢,就是关于这个条件, 那条件表达式呢?就是整个循环的大脑和开关啊,他可以是任何能返回真假的表达式, 所以这个条件它是我们需要有布尔值,它可以返回真和假。那每次循环开始时呢,计算机都会先计算这个表达式的值,如果是真呢,就会执行循环体,如果是假,就是 first, 就 会跳出循环。 那循环体呢?就相当于我们这个哨兵的手会执行具体任务,可以是一行简单的打英语句,也可以包含复杂逻辑的几十行。那循环体呢?内容就具体到他要做什么任务,做什么工作 来进行决定。那就好像我们可以比喻成烧开水,想象成你在烧开水,那第一步呢,你会检查眼水不水开了没有,那 vivo 呢?它就是这个条件,判断水开和没开,就是真和假。 to 和 first, 那 到达这个条件一百度,那他才会停止,那接着呢,我们要执行任务,如果说没开,你就继续等待, 那这个呢就是循环题,那我们等待的这个过程,比如说我们这里要加火,那就是 需要执行的任务,那重复再去检查,当我们执行完任务后,再回到开头进行一次检查,那循环体呢?再次去判断条件,这个过程一直重复,直到水开,就是条件变为假, 也就是 first, 那 我们这个水它大于一百度,它就停止了,你呢才会停止执行任务。那这里呢,我们把维欧循环的工作方式,通过这个执行流程图来了解一下它的程序走向。 那首先我们可以把流程图拆为四个关键节点, 那第一步呢,就是检查条件,程序首先来到我们这个条件表达式进行判断,因为计算这个表达值,那首先是我们这个条件表达式, 也是每次循环的起点,就是决定这个循环是否继续的关键,那这里呢,我们就会 是布尔值啊,计算该表达式的布尔值,如果是去呢,那我们就执行下一步,那如果是 first 呢?我们就不执行这个循环,那来到第二步呢,我们做出基本判断, 基于第一步的观察,那如果是 first 呢,就代表着他的任务已经完成了,程序会直接走出循环, 那继续执行循环后面的代码,那如果说是真呢,就是去,那就是代表着我们的程序还要继续执行,那程序呢,会进入下一步执行任务。 那第三步呢,就是执行循环题,程序会执行 well 派内缩进的所有代码,这就相当于他根据我们的指令去采取具体的行动, 当条件判断达到去,那他呢就会执行我们这个缩进里面的所有代码块,所以在写 python 的 时候一定要注意这个缩进。 第四步呢,就是再返回起点,那执行完循环体后呢,他不会擅自离岗,也不会直接走到下一步,而是会返回到第一步,那所以这就是我们循环 对条件的判断,他呢不是往下走,那耶夫呢?是不是我们判断完他就往下继续走了?那循环不是这样的,当我们使用 will 循环呢,他会在执行完最后的循环体的任务之后呢,我们再返回第一步, 重新决策一下,看要不要进行下一次的决策。那这时候呢,我们又会来到第一步,对他进行表达式的布尔兹条件判断, 那循环体呢?它就是一个闭环,这个呢是从判断到执行再到返回的过程,会不断的重复,然后形成一个闭环,直到一次条件表达时的结果变为假,就是这个 first, 那 这个循环呢?才会被打破,循环结束啊。 那我们要知道这个循环有一个细节,就是可能一次都不执行。这个流程呢,其实是无氧循环的一个重要特性,它是基于一个条件可能重复零次或者多次的执行过程。 如果说一开始呢条件是假,就是 first, 那 么呢循环题一次都不会执行,也会直接跳过后面的条件执行题啊。 但是在编程中呢,是很有用啊,可以用来处理一些需要先判断再执行的逻辑,那理解了这个流程呢,我们就能准确的预测代码的执行流程,避免逻辑的错误。 那我们现在来写一下循环, 那首先是我们的我有循环, 那我们的微扰循环呢?它是一个闭环,它是从判断,然后再到执行,再到循环。这个返回啊,返回第一步,那我们来看一下它的微扰循环,它条件判断, 那它的固定写法呢?我们通过三引号注视一下,那首先呢就是 will 条件, 然后后面呢它跟冒号之后,之后我们要通过这个缩进,那我们通过这个 tab 去给它进行一个缩进啊,点一下它就会直接缩进一次,按一下它就会缩进一次啊,那我们不用直接打四个空格, 他呢就会缩进,然后我们这个 will 循环的方式是重复判断条件, 判断条件,那条件呢?成立几次,我们的代码就会重复执行几次, 那他是基于条件去进行判断,如果说条件不成立呢?那他的代码也不会去进行执行, 也不会走进这个循环,那我们来看一下,第一个就是我们 要不控制次数,我们可以直接让他无限循环,就是不控制次数的写法, 那就是这个条件永远成立的写法,那循环呢?他就控制不了循环次数, 那相当于当我们 will 后面跟一个条件,比如说我们的 will, 我 们 will 大 于五,那它呢?这个它这个条件是不是一直成立的?那我们这时候呢让它进行一个输出。 hello word, 让他输出这个条件,那你看当你点输出的时候,他是不是一直会循环,那他这样无限循环,就当我们不停止的时候,他这里会 让我们停一下,先暂停一下,他就进入了一个死循环,你看他一会跑了多少,是不是就只要我们开始从开始打之后,他就一直在循环,一直在循环, 那就是这就是我们不控制次数,那它呢?就会不停地循环,那它就一直在打。 当我们输出 will 第一步,它判断这个条件是否成立,那十大于五,这个条件成立,那我们执行一次这个 hello world, 那 执行完之后呢?它再返回这第一步,再检查一次这个条件是否成立, 那他还是成立,那他就再执行一次,再执行一次。那在我们 python 当中呢,他是非常快的,那就这样呢,他会一直执行下去,直到我们固定的给他按,不然呢他就会永远的去在那边输出。啊,那这个呢就是我们的 死循环了,那这个 will 呢?他这个会进入死循环,那当我们比如说 他这里条件是这样子,那这个代表着什么呢?那代表着这个条件是不是不成立,我们重新来一次啊?那他就会没有, 没有,他这里看不到,但是因为他告诉我们返回的这个程序,他这个条件不成立,他就不会执行这一行代码, 因为这个十他不是大于五十的,那我们得到的是 first, 那 他直接走到下一步,那我们下面没有代码,所以说呢,他会跳过这个执行,那所以呢,他是基于这个条件去进行判断的。就是当条件 成立处的时候,那它就会无限的死循环,那不成立了, 它就不会数错,就不数错,那就是我们刚演示的,当它是大于五,那它成立,它就会无限的死循环,不成立呢就会跳过。啊, 那我们这里呢还有一个写法,就是当 will to, 而我要去的时候呢,就代表着你想执行某一个某一个数值,你你想执行某个死循环,那我要去, 他就是一个进行死循环的直接的写法,最直接写法就是我要去,那你必须得设置好这个暂停条件,不然他就会一直执行下去,那我们知道他也是一直在执行这个死循环, 那所以要我们手动去暂停一下,不然他就会一直执行下去,那这个呢?就是我们的循环的一个写法。

pason 入门学习 while 案例练习在 python 中 while 循环,它可以在条件成立时反复执行一段代码,非常适合处理重复任务。今天开始我们的实践案例吧。 用 while 循环实现四个习,用小工具打印一到五,累加求和器,密码验证器,列表便利器。 我们先做第一个打印一到五,我们先触石化计数器, count 等于一答一二步设置循环条件, count 小 于等于五,只要条件为真,就继续。接着在循环内部打应当前数字 count 加等于一,再将计数器加一,否则循环会无限即行。 最后循环结束后打印计数结束。写好以后运行就会依次看到数字一二三四五以及最后输出结束语,第二个计算一到一百的和。 首先我们创建总和, toto 等于零,以及数字变量 number 等于一,然后设置循环条件, number 小 于等于一百,每次循环将 number 加到 toto 上,同样将 number 增加一。最后循环结束,打印出总和也写好以后,运行 程序会自动算出一加二加三加到一百的结果,并输出五零五零第三个密码验证器, 直到输入正确密码。先预设正确密码, pass 我 等于一二三四五六。接着创建一个空字符串,用来存放用户每次输入的内容,然后设置循环条件,当输入密码不等于预设密码时,继续循环下面代码 一直让用户输入的密码,再用 if 判断,如果输入密码不对,就打印密码错误,一旦输入正确,跳出循环结束并打印登录成功。写好以后试一下第一次输入错误密码,程序会要求重新输入, 输入正确密码后就会显示登录成功。以上三个案例完整演示了 while 循环的典型用法,技术控制累加计算条件中断锁影便利,掌握 while 循环就能写出更强大的重复执行逻辑。

拆弹中函数到底有什么作用呢?一、减少重复写代码。如果一段逻辑要反复用不用每次都复制粘贴?举个例子,你要跟很多人打招呼,不写函数的情况,每次都重新写。你好, 代码又长又乱,写函数之后只写一次,之后想用直接调用。二、代码变整洁,好读懂。 把一大段代码按功能拆分,一段代码只干一件事,别人一看就知道这个函数是算年龄,那个函数是打印文字。三、方便修改维护功能写在函数里,改一处全出生效。比如打印格式要变, 只改函数内部,不用翻遍整个程序,改每一处。四、代码可以重复赋用。写好一个函数当前项目,以后别的项目都能拿来用, 相当于自己在小工具库。举个超简单例子,多次输出问候语的场景,不用函数的时候重复啰嗦 print 你 好,欢迎学习编程!一直重复用函数,只写一次,反复调用一定义函数 get hello print 你 好,欢迎学习编程! 二、要用函数,想用就喊它 say hello, 带参数的函数更实用,可以给函数捆不同数据,实现灵活功能运行。 that's a and the square hello name 奎尼 f 你 好, name say hello 小 明 say hello 小 红,用一句话总结,函数等于给一段常用功能,起个名字,以后直接点名使用。不学函数代码只能写简单小脚板,学会函数才能写出规整、能用能做大项目的程序,你学会了吗?有帮助的话记得点赞关注哦!

本期内容我们来讲一下 python 的 变量与数据。在 python 编程的世界中,一切操作的源头都离不开两样东西,数据与存放数据的容器,它们之间关系就像标签与物品。如果把程序做一个处理信息的工厂,那么数据就是流动在其中的原材料,这是一个数字、 文字或是真与假的判断。而变量则是贴在这些材料上的标签,或者说是临时的储物盒。通过变量我们才能轻松地找到、修改并附用这些 数据。 python 的 特点是动态同一个变量可以先存整数,再存字和串,非常灵活。掌握变量和数据,你就掌握了让程序记住和操作信息的能力,相当于拿到了驾驭程序逻辑的第一要素。三、多继承 写法上有点区分,实质上那作用是一模一样的,都是去干什么?省代码偷懒的一种方式而已,对不对?你不管是单继承还是多继承,那都是一样的啊, 那么就是学一下写法,写法多继承的话,我们最起码要几个类?你们猜一下。多继承我们要去写这个写法,最起码要几个类?两个类够吗?两个类只能继承一个啊, 三个类你要么就是三个类,要么就是四五六三个级以上的才能去构成这个多继承,对不对?是不是?所以这里我们来个 abc 啊,来三个 plus, a 啊 a 这个类的话,如果大家没有指定要去继承谁啊,我们就在里面去写个 o j 的, 你看是不是好看一点是不是?那不然来个波浪线嘛,总觉得有点不太好看是不是?好?那么既写了一个 a 之后呢? plus, 那他作为副类的话,我也给他填充上一个顶级类啊。好,那么这个是 c, c 的 话暂时先空着, 因为他即将作为子类子类而存在,所以我们那个那个顶级类先不往里面去写。好,三个类到位, 咱们现在要去讲一下多继承。啥意思?多个类继承给一个类,那叫多继承。好,那么现在这个多指的是谁? 第一个 a, 它即将作为父类,第二个 b, 它也是即将要作为父类继承给 c 啊,这个唯一的子类。 好,就是继承怎么写怎么写,现在我们里面都是 pass, 对 不对?我们就先把,就不管什么属性和方法,你就先把继承这个操作你先写好了,因为我们这里的重点就是把继承的写法学一学就行了。 好,怎么写呢?还是这个括号吗?这个括号里面写的是什么类名?那 c 他 就继承谁,就把谁作为父亲,作为父类去继承里面的属性和方法。 现在是 a 也要, b 也要,怎么写呢?直接逗号隔开,如果还有个 d 一 样的啊,就逗号隔开接着去写就行了。 好,那么现在我们这个 a 和 b 写好之后呢?看到这里有个图标没?当我们的程序代码比较多的时候,这个图标就可以快速定位 a 这个类有被继承给了谁?点击一下,快速定位到它的子类。点击一下,你看我把这个光标放这, 点击一下,快速定位到他的子类。这个图标就是用来去定位的啊,有继承给谁? ok, 好, 这个多继承就此完成了。那继承效果呢?继承效果呢?来 填充一点属性的方法嘛,来个 innit, 里面去填充它的名字,通过 name 一 直接给一个固定值啊,我们在定义属性的时候,你可以直接去给个固定值,你也可以根据不同对象去给不同属性 传进来的参数是什么,定义怎样的属性,所以这两种方式图们看着来好。第二个给它改成一个二,这里呢改成 b, ok, 这是属性啊,这是属性在 填充方法,这个方法呢?还是 text a 还是一个 print 打印 text a, 将它复制粘贴,再来到 b 当中, 好给它改成 b, 同样如此, ok, 两个副类的属性和方法 是不到位了,有没有问题?两个类的属性和方法是不 ok 了。接下来子类 a 和 b 继承给的这个 c 子类,它里面没有任何的属性和方法好, 那么通过 c 创建的这个小 c 好, 那他首先是关于方法的使用, c 调 a 和 b 方法都能调,属性一和二也能去掉, 在打点的时候就能说明一切了,对吧?还是给他们去演示一下 b c, 那 么一去 print print 好, 这个是 number 二, number 二啊, number 二好,我们去运行。嗯, c 里面的 number 二看一下啊, 这个地方的话稍微注意一下啊,这个 innit 和这个 innit 呢?它们两个是相同的名字,所以它只能用一个啊,它只能用一个。 来,我们先把这两个注示一下来,首先呢是先看一下 tensor a 和 tensor b 的 调用, c 调用的结果是什么呢?就是否能够继承到同时继承到 a 里面的方法和 b 里面的方法呢? a 都是 ok 的, 是不是好,但是有个问题,刚刚我们是不是报错了这两行注示一下来到这两行去运行打印, 这里是报了什么错?来?首先你看到 a 是 有去打印的,看到没有, a 有 去打印的, b 在 进行打印的时候是不是出错了?比如说这个内幕二 来自于 b 这个副类里面的内幕二在获取的时候出错了。为什么出错呢? 为什么出错?来,同学们认真听啊,大家不要觉得这节课好像不是特别难来,咱们稍微有点难度的地方来了啊,看清楚咱们这个地方为什么会报错。 我们在调用 tenth a 和 tenth b 的 时候,大家发现没问题啊,都能继承呀,但为什么 name 一 和 name 二在调用的时候不行呢? 这里咱们 tenth b 和 ten 啊,这个 tenth a 和 tenth b 这两个方法名字相同不?名字相同不, 咱们方法名字他是不相同的,所以我们在调用的时候都会有结果,都会继承,打印都会继承到,然后获取数据输出。 而 name 一 和 name 二它们的名字相同吗?那同学讲一个是一,一个是二,这怎么一样呢?你再看一下这个 name 一 所去存在的位置是不是 init 方法里面? name 二所存在的位置是不是也是 init 方法里面? 它们的方法是不是一样?咱们 init 方法的名字相同, 那会怎么样呢?那就只能掉一个了,你要么就掉第一个匿名,你要么就掉第二个匿名,只能有一个效果。那有的人讲了,是你 a 和 b 不 都继承了吗?那为啥就只能继承一个呢? a 和 b 确实都继承了,但是由于名字相同, a 和 b 就 会出现优先继承, 两个父类出现优先继承,那咱们看一下谁优先,谁优先继承了,右键去运行,谁打印了,那就是谁呀? 是不是? a 打印了,那么说明谁这个父类谁写在前面,那谁就是优先继承, 谁写前面谁优先继承好,第二个负累写在后面。哎,继承不了了,因为 c 只能用一个 unit, 只能用一个 unit 方法 优先继承,把 a 给了 c, b 就 给不了了啊?那老师,那有些时候老师我要去打印 b, 对 吧?我换个位置, 我换个位置,我把 b 换到前面去,然后去进行输出。呃,内幕一,内幕一,这个地方输出 也得换个位置啊,因为一上来二十二行报错了吗?二十二十三行你肯定就打印不了了吗?是不是我给他换个位置啊? 减轻一下代码自上而下吗?一个运行报错,那另外一个肯定是不行了吗?是不是?好,那么现在我把 b 换到前面去,对吧?那 b 是 不是打印了?是不是?所以 就是总结一句话,总结一句话,我们在进行继承的时候呢? 多记诚实,对吧?多记诚实,如果方法名字他是不相同的,随便继承都会继承到,继承到,但是如果 名字相同,那会出现优先继承,只能继承一个的操作,只能优先继承第一个负累。 第一个负累,大家能能能听懂吗?能理解到吗?能理解的吗?那有的人说老师能理解,但是我就要去把两个负累的匿名都继承到,我就想要都拿过来,对吧?我 进行多继承的目的就是要去获取两个父类的所有属性和方法,那现在有一个用不上,对吧?那我继承还继承什么呢?是不是?好,那么这个老师肯定会给你,给你们去讲一下,就如果出现这种问题啊 相名字相同的时候只能优先继承,第一个附类的时候怎样去解决啊?都继承到我怎样去操作?好,下下半小节给你们讲一下,上半小节呢?就先给你们去讲到这里。

花三万买的 python 系统课程,手把手教学,学完即可就业,存下吧,真的很难找全了。注意,本视频耗时三千零九十四分钟,共两百零六集,从零开始,系统陪你学习 python, 这可能是抖音目前最良心的入门到进阶的 python 保姆级教程了,看完本套课程,你就离上岸不远了, 为了让零基础的朋友学起来没有负担,你们的学习思维导图,还有视频中使用到的素材、软件安装包,教程配套的课间笔记,以及一百本 python 教程书籍 pdf 版等, 留言打卡学习即可全部打包带走。如果看到这里对你有帮助的话,请给老师一个免费的一键三连吧,让更多想学习 python 的 小伙伴们看到这个视频。接下来我们开始正式的学习吧! 接着我们来讲一下什么是注视。如果说代码是产品,那么注视呢,就相当于产品的说明书啊,它用自然语言解释代码的功能啊,但它本身呢,是不会被 python 所执行的。 所以说一个好的注上,能让你的代码更容易的被理解,尤其是团队写作中,如果过了很长时间,我们再回顾自己的代码,能会忘记当初是 怎么写出来的,这时候呢,我们通过注是就可以更好的阅读啊,马上就理解了代码的逻辑以及它的功能和设计的思路啊。 那我们在调试的时候呢,可临时屏蔽代码块或随手记录一些开发的灵感或者需要办的事项, 就可以通过注试来进行一个引用。那我们用井号和三引号来表示注试的两种不同类型啊, 那井号呢,就是单行注十了,以井号开头一般,至于代码行上方作为说明,或者在行尾 补充也是可以的,这个呢我们到时候可以来演示一下。还有多行注示,他也是使用三个单引号或者双引号都是可以的,单引号双引号这里是没什么关系的,常用于呢文件头函数或类的详细文档说明了。 那我们这里呢有一个快捷键是 ctrl 加斜杠来进行一个注视啊,是非常方便快捷的。那我给大家演示一下, 当我们打开这个 pad 的, 不是我们打开这个 pad time 的 时候呢,那我们就可以通过这个来写注视了,我们可以 ctrl 加上斜杠来进行一个注视,单行注视啊, 单号注十,那这里我们写的内容呢,他就不会被我们下方打印出来啊, 我们通过使用这个井号后面就不会被执行,大家可以自己进行一个单号的注示去查看效果啊,比如 a e 等。于 是我们可以跟在他后面,然后进行一个注视,他可以直接把这一行注视掉,那我们就可以不会运行,或者呢我们跟在他后面进行一个注视,注视这是一个单行注视,一个单行的注视, 他用于解释这个 a 一 的值, 那我们就可以在写代码的时候来记录我们的设计的思路啊,那之后呢,我们还可以进行一个多行的注示,多行的注示呢,就是通过 我们一般来写引号,引号一定要英文的,然后我们打两下这个引号,他就会出现这个三引号,三引号就是我们的多行注。是了,我们可以在这里写我们要注的内容啊,那我们可以写这是一个, 这是一个多行的注示,多行注示它呢是可以跨行注示的,它可以进行跨行的,可以跨越多行, 他可以进行很多行一起注视,然后可以适合,非常的适合呢,详细的说明, 详细说明我们要注视的一些内容,像产品的设计思路啊,都可以注视在这里面。那我们注视呢, 当我们不想要某行代码的时候,比如说 b 等于 b 等于二十,那我们不想要了,我们就直接 ctrl 加斜杠把这一个内容给注视掉,然后那我们不想执行的,不想执行的代码让它变成注视, 那他呢就不会被运行了,那我们有的时候呢,我们想测试代码,又不想删除某一行,就可以把它变成一个注视, 那我们现在 and 这个代码不想注视这个代码, 我不想运行,我不想直行,我们现在呢如果运行一下, 它是会直接运行的,那我们通过把它注视掉,那我们再来运行一次,那它就会消失了,就被我们给注视掉,下方呢就不会再运行了。

花三万买的 python 系统课程,手把手教学,学完即可就业,存下吧,真的很难找全了。注意,本视频耗时三千零九十四分钟,共两百零六集,从零开始,系统陪你学习 python, 这可能是抖音目前最良心的入门到进阶的 python 保姆级教程了,看完本套课程,你就离上岸不远了,为了让零基础的朋友学起来没有负担,你们的学习思维导图, 还有视频中使用到的素材,软件安装包,教程配套的课间笔记,以及一百本拍摄教程书籍 pdf 版等,留言打卡学习即可全部打包带走。如果看到这里对你有帮助的话,请给老师一个免费的一键三连吧,让更多想学习拍摄的小伙伴们看到这个视频。接下来我们开始正式的学习吧。 那我们知道字母串呢,是一个有序的序列啊,那么我们要如何访问其中的三个字母呢?就是他有一行字母,那每个字行字母呢,他有自己的位置, 那这个时候呢,我们要怎么去访问他我们想找的哪个字母呢?那就是需要下标了,那下标呢,也叫所以啊,什么是下标呢? 就是说字母串中的每一个字母啊,都有一个唯一的位置编号,那这个编号呢,就是下标, 就像我们团队的时候呢,每个人都有自己的位置,那有第一个,第二个,第三个,那在 python 中呢,下标呢,也分为两种方式,一个叫做正下标,一个叫做负下标。 那是不是就跟我们平常学数学的正数和负数很像呢?那首先正向标,正向标呢,也是叫做正向的缩影啊,它是呢,从字母串开头开始计数, 就我们从第一个字母的下标开始啊,那第一个下标呢是零号,那第二个呢是一号,第三个呢是二号,就这样往下走下去。 那还有呢,就是负下标,也叫做反向缩影,它呢是从字母串的末尾开始计数,那最后一个字母串呢? 最后一个下标,最后一个字母的下标,它呢是负一啊,那倒数第二个呢就是负二,倒数第三个呢就是负三,这样以此类推下去啊, 那这种方式呢,在当我们需要获取字母串末尾的字母的时候呢,会很方便,就你不需要再知道字母串的具体长度啊, 那访问字母串中某个字母的方式,就是使用一个方括号去给它进行一个包裹下标值啊,比如说呢,你要访问第一个字母,那就通过一个字母,那对应的是零号, 那我们就把零打进去,那当我们要访问最后一个字母呢,就也是通过这个方括号,然后里面给他访问加上负一样, 那通过我们的下标呢学习就可以更好的去进行字母串的操作。后续呢我们也可以进行一个字母串的切片,或者说查找一些复杂的操作。 那我们接着呢来看一下下标啊下标, 那字母串的下标呢?第一个呢就是 我们要去怎么去访问呢?那我们先来看一下正下标,正下标, 那正下标呢?它是通过啊, 比如我们有一个字母串,那 s 我 们给它字母串里面放 past, 我 们把这个放进去,那对应的呢,它就是第一个字母啊,它是 是不是这个屁,那屁呢?它是第一个字母,我们给它是零号,那第二个字母呢? 这个 y 就是 一号,第三个 t 呢?就是这个二号,以此类推啊,那第四个 h 呢?就是三号, 那我们是从零开始计数的,那我们如何去访问它呢?那访问它的操作呢?也是比较简单的,那我们现在呢直接 print, 然后呢我们把这个变量名给它加进去, 那我们给变量名加进去之后呢,我们只需要给他加个方括号,那我们之后呢就输入我们要找的这个下标值啊,像我们要找这个屁呢,那我们在里面加上这个零号,那我们就可以找到他的对应的这个下标了, 就是要找这个屁,那我们就给他数第零个,那我们打印一下呢,那他就会打印出这个屁来,对不对? 那当我们要去找,比如说我们要去找这个 o, 那 零一二三四,那是不是这个 o 就是 他第四个从零开始,那我们通过这种模式给他第四个, 那是不是就打印出这个 o, 那 如果说我们要找这个 n 呢?那我们是不是就第五个, 那从前面的正下标开始呢?我们一定要记得啊,他是从零开始访问的,我们的正下标呢,他的技术模式啊,是零开始的,从而 从零开始。所以说我们要数的时候呢,也要记住,不要直接从一开始数啊,要从零开始,那我们可以访问正下标之后呢,那我们要访问负下标怎么办呢?就 也是很简单,我们现在假如说有一个很长的字母串,那像 s e, 我 们给他一个 hello word, ld word, 那 我们要访问下不下标,我们给它停一下不下标不说, 不下标就是意思呢,就是从这个最后一个字母开始啊,最后一个字母开始,我们现在 print 这个 s、 e、 s 一, 那给他这个负一,就可以访问到这个负下标,那这句字母创立的负下标是哪一个字母呢?是哪一个字母啊?是,是不是这个感叹号?字母啊? 我运行一下,是不是最后一个字母是这个感叹号,就不管是符号,英文字母,它不是这个 d 啊, 他是最后一个字母,你包括空格啊,其他的符号啊,只要在字母串里占一个位置,不管你是标点符号还是任何一个他的,他都会占一个字母位啊,所以说呢,这个最后一个字母就是这个 感叹号,那如果说我们想访问这个 d 呢?怎么办?那我们是不是就给他过二倒数第二位的意思啊?那我们再运行一下, 是不是就可以访问这个 d 了,那个 d 就 显示出来了,那以此类推呢?我们下边啊,就可以以这种方式去进行一个访问,我们可以正的去访问。那如果说呢,我们要访问这个 h 啊,那我们就直接 访问 s 一, 那 h 呢?要记住啊,我们不是从一开始数,我们是从零记位,那是不是就访问这第零位啊?那我们打印一下,那是不是就有这个 h 了?那假如说我们这里呢, 我们不要逗号,那我们先访问一下这个逗号吧,它是第几位呢?从零开始啊,零一二三四五,这个逗号是不是第五位?我们直接可以下表找到第五位, 那他呢就是有一个逗号,那如果呢?这里呢,我不要逗号了,我要一个空格,那我们再去访问一下, 这个逗号是不是没了?看不到,那其实呢,这里是有的,他是把这个空格给他访问出来了, 那通过这样的方式呢?我们不管是空格,他也是占位置的,所以说我们如果写了空格呢,要记住把他也加进这个计数里面,他也是占一个位置啊,那如果说两个空格呢,就是两个位置,这要进行一个区分啊, 那这边呢还要注意一个点,就是呢,当我们访问的时候呢,下标他可以超过范围吗?他是不可以的,你字母串有多长,你就只能 只能有多少的那个给他下标值啊,只能到多少?那如果说超出范围呢,就会报错,那我们如果说输出这个 and, 然后呢,我们要输出这个 s s 呢?他从零开始,零一二三四五 n 是 不是第五位?那如果说我们这里输出六会怎么样呢?那我们现在要输出这个 这个的第六位,那他会怎么样呢?那他 就会告诉我们他发生了错误啊,下标值呢?他超出了范围啊,他这个呢就已经超出了范围,他会告诉我们报错啊,所以说呢,那他呢就是不可以的, 所以说我们在提取下标的时候呢,下标志啊,我们是不可以超出范围的,还有对应的来说呢,我们这个提取下标, 那标不能啊,超出范围,那我们对应的呢? print, 我 们先运行它 ant, 然后呢我们同时原来的这个字母串我们给他,那负六位呢?他是不是最多的?是啊,最多的负六位是可以的,对吧?那我们负七位呢?负六位应该是 负六位,应该是 p 啊,那负七位呢?负七位它是不是也告诉我们报错啊,也超过了范围。所以说呢,这也是不可以的, 这也是会发生那个超过范围的报错啊。你呢,最多他字母串有多长,有几位,你就只能下标缩阴到第几位,如果说你超过了,他就会告诉你这是错误的,会报错啊。

从零开始学海藻本期我们来学习海藻中的分格符拽引分格符可以是任意字母串,按需求选择即可。常用基础分格符五种,以空字母最常用,如图啊,等于春夏 秋冬 play 啊春夏秋冬二、空格单词或者词语之间加空格如图输入啊,等于我喜欢编程运行 play 呢 joy 啊, 我喜欢编程三、逗号拼接成逗号分隔格式,如图输入 r, 等于苹果香蕉、橙子 print john r 苹果香蕉橙子四顿号中文常用分格,如图输入 r, 等于语文数学英语 print john r 语文数学英语五、横线下画线如图 print join 嘿背 c 嘿背心 print join 嘿 b c 哈 b c 可数分格符两种, 一、画行符文,每个元素单独一行,如图输入娃等于第一行第二行第三行 print 还拽尿啊!输出第一行第二行第三行二、制表符 t 制表空格对齐文版,如图, print t ray 姓名年龄姓名年龄还有自定义文字符号,任意字母短句都可以,如图, green 一 两三一二三 green 和 joy 你 我你和我你学会了吗?记得点赞收藏关注哦!需要全套资料评论区踢我,我们下期见啦!

大家好,欢迎来到 python 系列课程,今天我们将学习一个非常重要的数据结构,原组 top。 原组最大的特点就是它的有序性和不可变性,这使得它在数据保护、函数返回、多值等场景中有着独特的应用。 让我们一起揭开原组的神秘面纱。在学习原组之前,我们先来看几个生活中的例子,比如地图上的坐标点、 rgb 颜色值、个人信息记录。这些数据都有一个共同点,它们都是由多个元素组成的整体元素之间有明确的顺序,并且我们希望这个整体的内容是稳定的,不被轻易修改的。 这正是源组要解决的问题。那么在 python 中,源组到底是什么呢?它是一个有序且不可变的序列数据结构。记住这两个关键词,有序和不可变。有序意味着你可以通过缩隐访问元素。不可变意味着一旦创建就不能再修改它的内容。 创建源组主要有两种方法,第一种是直接使用小括号,这是最推荐的方式。第二种是使用 tpl 函数,它可以将一个列表、字母串等可迭代对象转换成源组。这里有一个非常常见的初学者陷阱, 如果你想创建一个只包含一个元素的原组,必须在元素后面加上一个逗号,否则 python 会把它当做一个普通的括号表达式,而不是原组。 记住,单元素原组逗号不能少。访问原组中的元素非常简单,和列表一样,我们可以使用缩影和切片,缩影从零开始,也可以使用负缩影。切片可以让我们获取原组的一个子序列,这些操作都和列表完全一样。原组和列表非常相似,但核心区别在于可变性。 列表是可变的,可以随时修改,而原组是不可变的,一旦创建就不能改变。因此,当你需要存储不希望被修改的数据时,应该使用原组。 原组的一个非常重要的用途是让函数返回多个值。 python 的 函数只能返回一个值,但我们可以返回一个原组,然后在调用时一次性接收多个返回值, 这在实际编程中非常方便。源组的不可变性还赋予了它两个独特的用途,第一,它可以作为字典的键,而列表不行。第二,它可以用来保护重要数据,确保数据在程序运行过程中不被意外修改。源组的不可变性还赋予了它两个独特的用途,第一,它可以作为字典的键,而列表不行。 第二,它可以用来保护重要数据,确保数据在程序运行过程中不被意外修改。好了,我们来总结一下今天学习的核心知识点,记住,源组是有序且不可变的,掌握它的创建访问方法, 理解它和列表的核心区别在于不可变性,并了解它的函数返回多值作为字典键和数据保护方面的用途。今天我们学习了源组的基础知识,如果你还想深入学习学习更多内容,我整理了 python 入门到精通的完整教程及一百个实战项目和原版,留下学习我发,感谢大家的聆听,我们下次课再见!

花三万买的 python 系统课程,手把手教学,学完即可就业,存下吧,真的很难找全了。注意,本视频耗时三千零九十四分钟,共两百零六集,从零开始,系统陪你学习 python, 这可能是抖音目前最良心的入门到进阶的 python 保姆级教程了,看完本套课程,你就离上岸不远了,为了让零基础的朋友学起来没有负担,你们的学习思维导图, 还有视频中使用到的素材,软件安装包,教程配套的课间笔记,以及一百本拍摄教程书籍 pdf 版等,留言打卡学习即可全部打包带走。如果看到这里对你有帮助的话,请给老师一个免费的一键三连吧,让更多想学习拍摄的小伙伴们看到这个视频。接下来我们开始正式的学习吧, 那我们学习了如何去访问截取字母串,通过这个切片的形式,那我们还可以看一下字母串还有什么操作呢?那这些操作呢?接着我们就要来学习一下长度计算,我们通过这个 when 加上括号, 那函数呢,可以快速统计字母串中包含的字母总数,那就是通过这个 l、 e、 n, 它呢,就像你把它想象成给一个人量身高,你要从头到脚去精确的测量, 你不管它是字母啊,数字啊,符号还是空格啊,它全部都要计算在内,你不可以差一丝一毫的,你每一个字母都要给他包进去。 那,那比如说我想知道这个名字有多长,或者这一句话,这个字母串到底有多长,那我们就可以用到这个函数了,这是我们最常用的字母串属性的查询方式, 那就像我们一串字母串我们要长有多长?它的末尾最后一个字母是什么? 那我们就可以通过这种长度计算,通过这个函数去看一整段字母串它最后一共有多长,那是不是就知道最后一个字母串它的占位是第几位? 那其次呢,是我们查找子串,那我们可以通过两种形式去查找我们的子串,那可以通过这个 find 和这个 index 方法来查找, 那 find 呢?在英文里面就是寻找的意思啊,那 index 呢?就是,所以也是指数指标的意思啊,那我们就可以通过这两个函数去查找一个,查找一个子字母串在另一个字母串中的位置了, 那你可以把它想象成比如在一个大操场里找朋友啊,那 find 呢?它是一个比较温和的朋友,就如果你让他去找一个人, 他找不到的话呢,会告诉你,没找到他就返回,返回负一,他不会让你 难堪。那 index 呢?他就是一个比较较真的朋友,如果说你让他查找一个不存在的,那他直接就告诉你报错啊,我找不到,我就报错了,我就红了。 那如果说你平常不确定那个字串里是否存在在那个字母串里呢?那我们推荐呢,更使用这个 find。 那还有最后一点呢,就是内容的替换 replace。 replace 方法呢?在英文里啊,它也是有替换的意思啊,那它可以将字母串中的指定内容替换成新的内容,就比如说我们想象它给它一个机器换零件,它可以把原来的机器啊, 那个原来的字母串它是完好无损,但是 replace 呢,它可以根据你的要求 布置一台新的机器啊,并且呢把指定的零件换成新的,然后呢把新机器给你,那这种呢,就是它可以进行一个替换了。如果说我们想在字幕串里进行一个替换操作,我们就可以用这个 replace 直接给它在字幕串里进行一个替换法。 那字母串呢?它本身是有这个不可变形,那原字母串呢?保持本身的不变,但是呢我们可以通过函数把它进行一个变化,那我们先来 新建一个嗯,字母串的操作。字母串, 呃,常用的函数 三,那像字母串长的函数呢?我们第一个有一个长度计算, 那长度计算呢?我们要用到一个函数 then, 那 通过这个函数呢,我们可以计算一个字母串的长度啊,那比如说我们继续点它这个 hello, hello word, 我 们想知道这串函数到底有多长呢?那我们只需要做一个事,就是把用这个函数,然后给它括号里,把这个变量给它放进去, 给它变量名放进去,然后我们就可以直接得到它的长度十二。那说明这个从 h 到 l 到这个感叹号 到从开头到结尾的,那总共的长度就是十二,他每一个都会算进去啊,包括你这个和结尾的这个,那我们这样呢就更好的计算我们最后这这一位他到底是占了第几位, 那说明呢,我们就是一共有十二位,那长度是十二,是不是就一共有十二位?那感叹号那就是下标值就是十一,对不对?是不是我们 print s 点 s 给他下标十一,是不是就是最后一位? 那我们是不是长度然后减去一,因为我们从零开始计数,所以说最后一个就是下标值是十一啊,那我们接着呢,要来查找字母, 查找字字母,那通过什么呢?我们通过两个函数啊,我们通过 and 和 index x 这两个函数去进行一个查找。那像我们现在我们先把这个 word 找出来, 那我们就可以从,我们就可以通过什么样的形式呢?它是通过这样变量名,然后我们用 find 这个函数功能,然后我们去找这个 字母串 w, o, r, l, d word, 那 通过这个形式呢?它就可以来查找了,那我们给它变量名, 给它取一个变量名,把它放进去,那我们先来 print 这个结果,我们运行一下,是不是它就告诉我们 w 是 这个第六位, 那 find 呢?它就会给我们查到,查到我们要找的是从第六位 w 这个第六位开始啊,它就告诉我们下标志是六,那如果说呢?如果说我们想在这里,我们想在,嗯, 我们想把这个给他找一个 python, 那 它是不是不包含在内啊? 它是不是就不包含在内?它 python 它没有在这个 hello world 里面,那如果说找的话,那我们是不是就找不到了?我们找一下,那它呢? 当我们通过这个 find 去查找的时候啊,他会找不到,他会返回负一啊,他这个结果是,他是不是就给我们返回了这个值啊?负一啊, 他找不到的时候呢?他不会告诉我们报错,他会告诉我们是负一,我们找不到这个值,所以呢他, 他就相对来说更加的温和一点,不会说你找,找不到我就一定报错,他会告诉我们我们找不到,那我们就返回负一,告诉你一声,他不在里面, 那我们现在来看一下,就是这个 index 怎么使用, 那 index 一 样的,我们要去找这个函数,那我们是不是就 你要去找这个 index, 那 我们通过一样的 index 给它函数包裹起来,我们去找这个函数,找一样我们找 word, 那我们在 plant, 我 们打印一下它一样可以也是一样可以找到这个下标值的,对不对?那如果说呢,我们还是一样去让它找这个 pest, 我 们找不到这个值 index, 然后呢我们让它找这个 pest, 那我们再去打印一下, 打印一下他直接就告诉我们报错了,他是不是告诉我们十七号这个他没有找到,他就告诉我们我们找不到了, 那他直接呢就给我们是报错了,他说我找不到这个,他没有, 所以呢他就相对来说,如果说你使用这个,但是我们在此字母串里可能会找不到,那这个时候呢就用如果说你用 index 去寻找的话,他就会更加的严格一点,你找不到,我就给你报错了, 那跟这样的对比起来呢,他一个是他不会报错,他是告诉我们是返回了个负一值,那一个呢就是我找不到,我就直接报错,那所以我们给这个也注视掉他这个报错的啊,注视掉, 那接着呢我们要来看一下,就是我们学习了 find 和 index 这两个查找字字母串的功能,我们接着要看一下这个替换功能啊,我们可以来学习一下,就是 四个串,四个串它的替换功能,那我们要怎么给四个串进行一个替换, 那我们就要用到这个函数了,哪个函数呢? replace 这个函数去进行一个替换,那他呢?他是怎么写的呢?我们直接可以在 里面放参数,比如我们要替换第一个参数和这个二个参数,我们要把它替换,这第一个呢是他原来有的参数,我们要替换成第二个参数,那我们就直接给他放进去就行了, 就是直接放进去,就好像我们新来一个字母串,比如说我们来一个 s 二啊,我们要放这个 pass, 我 们先来一个字母串,我们给 s 二,我们给它放进去这个 pass。 那我们现在呢要怎么替换呢?比如说我们想把这个 o 替换成这个 e, 那 我们是不是直接 replace, 然后加上括号,那我们是不是直接把这个 o 和 e 进行一个替换,那我们前面呢?再把它在哪里替换?那我们是不是在 s 二里面替换?那我们通过这种形式,他就是把这个 s 二里面的 o 替换成这个 e, 那 我们在这个给他一个变量名, 那我们给他输出一下 find s 三,我们打印一下,是不是他就已经替换成功了? 原字母串呢?它是不可变的,但是我们可以通过这个函数,通过这个 replace, 可以 把原字母串里的一些字母啊给它改变,那我们此时呢就可以把这个 o 给它替换字母串,那如果说呢?我们现在 依然是这个 hello world, 我 们这里面它有两个 o, 是 不是?那如果说我们这样的时候呢? s s 四吧, s 四吧,那我们给它 replace, 我 们把原有的字母串 o 替换成这个 e, 那 我们再打印一下 s 给它,那我们如果打印的话呢, 他是全部都变的,就当你要替换的时候呢,我们里面有几个 o, 他 就统一的去替换成了几个 e 啊,他是不是就给他全部都替换掉了, 那现在呢,就变成这样子,那如果说呢,我们我们给它这个圆字不差,我们可以也给它进行一个 单词整体的替换,我们原来是 word, 是 吗? hello word, 我 们现在想给它听换成 has, 那 我们是不是也可以把它全部一起替换掉 s 六给它放进去,我们先来打印一下 s 六 也行,那是不是它就直接把这个 word, 把这个 word 给它替换成了这个 python, 它呢就可以进行以一句话,我们一去的一段的字符字字符串进行一个替换也是可以的,也是可以通过这种方式生成呢新的字母串。 那接着呢,我们看一下字母串还有什么方法和操作可以用啊?那第一个呢是拆分符啊, spirit, 那方法呢,就是将一个字母串按照指定的风格符拆分成一个列表,你可以把它想象成切蛋糕,你知道哪了拆分符, 就把它蛋糕切成一块一块的,那比如说呢,你有一个句子想把每个单词分开来,那就用空格作为风格符,然后呢我们就可以把句子切成单词的列表, 那其次呢是连接 joy, 那 方法呢,和这个 spirit 刚好呢是相反的,你可以呢把它 一个列表中的元素连接成一个字母串,你呢需要提供一个连接符,然后比如说逗号,比如说空格,然后呢你可以把它想象成拼拼图啊,那 joy 呢,就是 你手中的那个胶水,可以把拼团一块一块的连接起来,粘在一起,形成一一串的完整的次互串,那我们把它连接呢就用这个胶印符号,那还有呢就是这个 大小写的转换,那我们可以用这个大写把它转换和这个小写进行转换,那我们可以用这两个字母 up 和 lower 进行一个转换, 那就可以把我们所有的字母一起变成大写或者小写,你就可以想象给字母上穿上一个衣服,那大写呢就是给它穿上 一个大写的衣服啊,小写呢就是换上小写的衣服,那在需要统一用户输入格式的时候呢,那就非常的有用啊,那比如说呢输入验证码,那不管大小写呢,我们可以把它,我们可以呢把它转换成一个统一的 格式,然后再去进行一个验证,然后呢还有一个内容判断,他呢就是用来判断字母串是否全是字母和全是数字, 那我们可以呢就是想象他是机场的安检,你呢检查每个字母串他呢是否符合他特定的身份啊?就是比如说你到底是全是字母还是说全是数字,那通过这种方法呢, 我们就可以验证,比如我们要验证用户输入的手机号是否全是数字呢?那我们就可以用这个数字的判断去进行一个判断。那我们通过学习不同的函数呢,就拥有不同的操作,可以处理我们各种不同的字符串操作了, 那我们接着呢去学习一下,学习下呢更多的操作。 那我们来看一下第一个,第一个我们是这个这个拆分的函数啊,我们给他拆分,那我们现在呢,比如说我有 呃一个 s t r e, 我 们给他来一个,比如爱,呃,我爱爱分, 那我要给他拆分呢?就比如说我想给他这个空格符拆分,那我 那给它拆分,通过这个 split 这个拆分符啊拆分的函数,那我们就直接给它通过这个函数 使用这个拆分的方法,然后呢我们选择这个空格去进行一个拆分,那我们在打印的时候呢,我们把这个单词给它打印一下,那你看它呢就可以把这一个句子 拆分,通过我们需要拆分的这个分格符,我们用空格去把它进行拆分,然后拆分了,通过这个空格符,你把它拆分成三部分,然后再通过我们列表的形式表达的出来。 那我们同样呢,如果我们是我们这里是 逗号,你用逗号隔开,你给他每个每个都用逗号隔开, 那我们还是可以给他,也是可以给他这样子直接的去进行一个开分的操作,我们可以直接在里面 打,然后呢我们使用这个拆分符拆分的函数,然后我们通过这个 选择风格符逗号,我们进行一个打印,那是不是也是通过 这个这个逗号分割符,我们只需要加上这个函数,就可以把它拆分成我们想要分割的。那这个好处呢?就是比如我们有的时候呢,我们爬虫去爬下来一些,呃电影的数据啊, 那我们把它放进去,然后他可能会通过各种拆分符,比如说斜杠,嗯, 比如说解杠的一些悬疑片啊,它是属于什么类型呢?然后呢我们就可以通过这个拆分法进行一个拆分,那我们学完拆分呢,我们就来看一下,那我们要怎么把它连接起来呢? 我们现在学了拆分,那我们之后是不是就来学一下怎么连接啊? 连接,那我们连接呢就用到一个这个连接的函数,那连接的函数呢?比如说啊,我们现在要连接一串字母串, 那比如说呢我们要连接一个字母串,我们把这个 word 给它连接起来,它刚刚不是输出这个吗?它不是输出是这个吗? 我们呢那我们要把这一串呢进行一个连接,那接着呢我们要怎么去连接它呢?那我们就要使用这个这个连接的函数,那连接的函数怎么写呢?那我们先给他创建一个变量名, 然后接着呢,我们直接放进我们需要的连接符,然后再通过点就就可以,然后呢里面我们把这个我们要连接的这个函数,我们连接的这个变量名给他加进去,那我们再打印一下 啊,我们把它按一下,我们打印出来,那是不是它就通过这个符号给它连接起来了?那这种方式呢?我们就通过 用这个函数把它进行了一个连接啊,进行了一个连接的操作,那接着呢, 像刚刚我们把它拆开来,给他像拼图一样打散,然后我们再通过这个胶印给他进行一个连接,我们也同样可以用一些其他的, 我们可以再给他还原回来,通过这个空格去给他连接进去。 words。 那 我们 我们输出这个之后呢,那它是不是就还原了?就是通过我们可以使用这种连接符号去进行一个连接啊, 通过这个函数进行一个连接的操作。那还有呢?我们还可以进行一个大小写的转换。大小写转换, 那我们通过哪两个函数呢?进行大小写转换,我们要通过这个,嗯,通过 大写转换和一个小写的转换,那这个呢?就是代表着大写 统一转换成大写,那这个呢?就是小写,是不是小写可以进行一个使用这种方法去转换?那比如我们要写一个, 我们写个 i hasen, 那 我们这样子呢,要给它全部大写,我们要怎么写?我们直接,我们直接 print, 嗯,我们直接 print, 然后呢给它通过这个函数名,然后加点号,用这个 给他直接放进去,那么打印一下,你这样就可以了,那他是不是就全部大写了?那接着小写呢?小写是不是也是一样的?我们只需要 print, 然后给他加上这个小写的 函数,然后给他放进去,那我们再打印一下,你再运行一下,那是不是也就全都变成小写了?那这样呢,我们就可以把字母串直接全部进行一个大写和小写的转换, 那我们还有什么呢?还有就是可以进行一个内容判断, 内容的判断,那我们会通过什么去判断呢?比如说啊,我们要判断它是不是全都大写,那我们就要用到一个叫做 全大写的函数,那它代表着就是你全都是大写的,那它呢?就是 判断是否是全是大写,那我们这样子呢?我们 print 一个,比如说我们要 print 一个 pattern, 那 我们在后面呢加上这个 这个函数,那我们就直接判断了,那这样呢?它全是大写,然后它就会返还,返回给我们一个去那那如果说呢?我们有,比如说有个小写的 p, 我 们小写的 p 在 里面看一下我们小写的 p, 那 我们这样子呢?那它是不是就告诉我们不是 不是全是大写的,那他呢?就可以做一个判断。比如说如果我们有很长的字母串,那我们可以用这种函数去进行一个判断,那还有什么?那还有一个,我们要判断全是数字的,我们用这个 函数,我们就可以去进行一个判断,判断呢是否全是数字?那如果全是数字呢?那他就会输出 true, 那 如果不是呢?那我们还是一样一、二、三, 那是不是这个就是全全数字的,那我们要判断这个字母串是否是全数字,那我们用这个去进行一个判断,那他呢就会告诉我们结果是去的,那这个呢?就是去啊,那这里呢?那就是去。 那如果说字母串连呢?那一、二、三、四、 p、 y, 那 我们再去进行一个判断,那它是不是就是 first 啊?那它呢 就是一个对数字的判断,那还有什么呢?还有什么?那判断完数字,我们是不是可以判断字母啊?那什么用?用哪个函数呢?用这个函数啊,进行一个字母的判断, 那判断是否全是字母,那我们在里面呢就直接打印,比如说 我们要判断这个 a、 b、 c、 d, 那 如果,那我们先判断这个,那 a、 b、 c、 d, 我 们用这个 s、 r、 r 法,那我们进行一个判断, s、 r、 r 法, 那这样子呢?我们进行一个 s、 r, 你去判断一下,那他会告诉你一个 q, 那 如果说呢,我们接着比如说有个空格,我们再来去判断一下, 那是不是他就 first 了,那一定要注意啊,里面如果说有空格就不是全字母的,那他也是会,比如说我们这里 一二三,他是不是还是 first, 他 是不是就是 first, 这个就是错误的,这个也是错误的,那只有这个全是字母才是正确的,那他呢就可以让我们来判断一下内容的正确性啊, 就是字母串,他到底是全数字呢?还是全是字母呢?还是说是大写或者小写?那我们通过一些功能的学习啊, 就从这里我们可以我们可以看四幅串他的长度,通过这个函数去测量他的四幅串长度,然后在里面呢直接放我们的函数名,以及通过这个点按 来使用这个框架去查找我们的字母串里面是否呢有这个字母啊,然后接着呢我们还可以通过 find 和 index 两个去进行一个查找的操作,接着我们还可以通过 replace 来进行一个替换, 然后我们直接在里面放原有的内容和需要替换的内容进行一个替换,然后通过这个拆分的函数进行,我们在里面 在括号里面放我们要拆分的分格符,然后把它进行一个拆分啊,然后呢还可以把它连接在前面加上我们这个想要连接符号,把它进行一个字母串的连接和拼接。那后面呢我们通过学习写 大写和小写的函数去进行一个大小写转换,然后再学习了一些内容的判断,通过这几个函数可以判断是大写呢?还是说是字数字呢?还是说全是字母? 那如果说不是,比如里面有空格呢?那我们就可以通过这种判断去发现他到底是不是全字母,或者说全数词的一些进行内容的判断。那这个呢?就是我们字母串的一些操作。

大家好,本期视频我们来学习一点 python 基础课程,内容包括 print 输出语法,输出变量。话不多说,我们开始吧, print 输出语法就是这样, print 括号,当我们输入 print 的 时候,系统会有快捷提示,我们可以双击和回车快速选择。 那我们知道语法后应该如何使用?简单来说,我们想让电脑输出什么内容,就在双引号中输入什么,就像主播这样, 可以随意输入任何内容,然后运行就会把我们的内容输出出来了, 那么 print 输出就被大家轻松掌握了。下面我们来学习什么叫输出变量, 所谓的变量。简单一句话来说,变量就是给数据起一个名字,方便后面调用和修改。那么我们应该如何定义变量?它的固定格式为变量名等于数据。下面我给大家举两个例子, 这就是最简单的定义变量。定义变量以后,我们要进行输出,依旧用 print 输出, 现在我们运行就可以看到我们的输出结果。我们现在可以对比一下两次的输出内容有什么不一样。第一次我们发现输出内容的里面有冒号,那么它就会直接输出冒号中的内容。 第二次,我们的输出内容里面没有冒号,他是变量,所以他就会输出变量的内容,就这么简单。如果各位小伙伴还有不理解的可以在我的评论区里提问,主播会认真看的,那么本期视频就到这里了,我们下期再见。

大家好,欢迎来到今天的拍声入门课程。今天我们要学习一个非常强大的概念模块,你可以把它想象成一种魔法,能让我们写的代码瞬间变得整洁有序,而且威力倍增。那么到底什么是模块呢? 我们来看个简单的比喻,想象一个工具箱,里面有锤子螺丝刀,当你需要干活的时候,是不是直接拿出来用?你不会每次都自己造一个锤子对吧?模块就是这样一个代码工具箱。再想想乐高积木, 你可以把一个复杂的模型拆分成小部件,模块就像是这些独立的乐高主件。使用模块有三大核心的好处。第一,代码附用 你写了一个很棒的函数,放在模块里以后任何程序都可以直接调用,节省大量时间。第二,代码组织一个大项目的代码可能有成千上万行,模块可以帮我们把代码分门别类,结构清晰。 第三,避免命名冲突。你和同学写的同名函数,只要在不同的模块里,就不会互相干扰。了解了模块的好处,我们来看看如何使用它。在 python 中,使用模块非常简单, 只需要一个关键词, import。 我 们以拍粉自带的 math 模块为例,我们只需要写一行 import math, 就 相当于把这个数学工具箱拿过来了。 import 语句还有一些更灵活的用法,第一种就是我们刚才学的 import math。 第二种,如果你只需要模块里的某一个功能,可以写 from math input s q r t, 这样使用时就不用再加 math 了。第三种,有时候模块名很长,我们可以给它起个外号,也就是别名,比如 import math s m, 之后使用 m s q r t 十六就可以了。理论说完了,我们来亲手创建一个自己的模块吧。第一步, 我们创建一个文件,命名为 my 码九 p, 在 里面定义一些函数和变量。第二步,在同一个文件夹里, 我们再创建一个 mainpy 文件,用 import my module 导入我们写的模块。然后我们就可以像使用 map 模块一样调用我们自己写的函数了。拍手自带了一个非常庞大的武器库,叫做标准库,里面有各种各样的模块,可以帮我们解决很多问题。 我们来快速看几个最常用的 mass 模块做数学计算。 random 模块生成随机数, day 模块处理时间, os 模块负责系统交互。好了,我们来快速回顾一下今天学到的核心知识点。首先,什么是模块? 简单说,一个 py 文件就是一个模块,为什么要用模块?核心价值在于代码,附用代码组织和避免冲突。 如何使用模块主要通过 import 语句。我们学了三种核心导入方式,理论学习之后一定要动手实践才能真正掌握。这里给大家留两个简单的练习题, 第一个练习是让你创建一个计算长方形面积的模块并使用它。第二个练习是让你使用 random 模块生成一个一到一百之间的随机数。还在找学习资料和练手项目,我已经为大家整理好了,全部都可以分享给大家使用。

本期内容我们来讲一下 python 的 变量与数据。在 python 编程的世界中,一切操作的源头都离不开两样东西,数据与存到数据的容器,它们之间关系就像标签与物品。如果把程序做一个处理信息的工厂,那么数据就是流动在其中的原材料,这也是一个数字、 文字或是真与假的判断。而变量则是贴在这些材料上的标签,或者说是临时的储物盒。通过变量,我们才能轻松地找到、修改并附用这些数 数据。 python 的 特点是动态同一个变量,可以先存整数,再存自互串,非常灵活。掌握变量和数据,你就掌握了让程序记住和操作信息的能力,相当于拿到了驾驭程序逻辑的第一方钥匙。 还有好多小伙伴问,零基础怎么学 python 其实不难,我把从语法到多继承的内容都梳理好了,步骤清楚,边练边学,慢慢吃透。费劲,想入门编程的可以一起加油。好,那么现在呢,我们是定义两个类,听清楚,一个是武器 武器类,一个呢是人物类。 可能这道题就是这个案例啊,跟继承没有很大关系,继承也是嘛,对吧,你想省代码的时候你去用嘛,你用不上的时候你肯定你不会说强制去用这个继承操作是不是啊?好,来看一下, 这比较好玩啊,两个类,一个是武器类,一个是人物类,我就直接来了 plus 武器,至于里面有什么属性和方法呀,到时候我们自己看着办啊,就想丰富怎样的功能进去看大家啊, 这第一个武器拼音啊,手字母拼音 plus, 人物人物。好吧,手字母拼音也是去继承 object。 好, 第一步 把类定义好,将来这两个类肯定是需要去实体去进行实体化的, 那么在这里的话,武器想要什么武器?玩过游戏的大家都知道,装备武器对吧?什么铁剑呢?长弓呢,对不对?那没玩过的那肯定就不知道了啊,我们就以什么拖鞋呀, 啊,就不要那么暴力了啊,来个铁盆呢,对吧?拖鞋铁盆,好吧,两个武器人物,以人物这个类 创建两个对象,王大妈,对吧和李大爷, ok, 好, 人物是不是到位了,是不是?好,那么这就是第一和第二两个步骤,这两个步骤是去将 咱们程序当中功能需求当中需要去用到几个类,需要创建几个对象给他定义好,这也是定义好了整个程序的框架,整个程序的框架,那第三步呢?第三步是不是需要进一步去丰富 武器类和人物类里面需要去拥有的属性和方法?武器类需要怎样的属性?怎样的方法?删掉 写个 innit, 哎,按错了按键啊,好,写个 innit 去定义属性,我就来一个,我就来一个 innit 定义属性,然后来一个 一个方法,这个方法是武器能干什么呢?武器能造成伤害对吧?能,武器攻击。好,我们这里呢就是定义一个武器攻击,攻击打拼音就这么简单粗暴的一个方法。 这个 innit 是 武器的属性,这个 innit 是 武器的方法, ok, 我 就先放这啊,我就还没有去写,嗯,还是先写完吧,再去定义这个人物类啊,不然有点通解好。武器的属性有哪些? 那首先武器的这个名字你得给个名字啦,是不是?那我们有两个,两个武器嘛?那不同武器 名字不同吗?所以我们还是以食餐传行餐,给不同对象赋予不同的属性,那比如说,哎,这个,这个,呃,这个是啥来着?拖鞋对吧?拖鞋,好,这个是什么呢?铁盆,铁盆有点太暴力了。 ok, 好, 拖鞋和铁盆是不要传到这个地方来,我们接收一下,用你的 name 去接收一下,然后我们还得给到这个伤害值嘛?是不是就拖鞋的伤害是多高?铁盆的伤害是多少对吧?那这里的话拖鞋伤害稍微低一点啊, 给个八八点的伤害,然后这个呢?给个十十点的伤害,好,这个是伤伤害害。 ok, 好, 那么分别去将它赋值一下, 这个是伤害对吧?传进来的是什么啊?伤害,那么这个属性值就是什么? ok, 有 没有问题?包括武器的这个方法?武器方法,那就是武器攻击的方法吗? 哎,哪个武器造成了多少点的伤害?是不是? ok, 我 们可以用 print 去进行打印啊, 当然方法里面是可以去设置 return 返回值的。当调用该方法该函数的时候会去得到怎样的一个数据值?我去得到输出这样一个数据值。使用 铁盆对吧?塞尔夫去点 name, 铁盆或者说拖鞋造成了多少点的伤害? 呃, cf 注意啊,不是变量,是属性啊,一定要 cf 对 上去调用才可以。对伤害, ok 吗?咱们武器类就这么简单能懂?大家能懂,这里 ok 不? ok, 不, 咱们武器类两个属性一个方法不难吧,是不是你像我们这个拖鞋,拖鞋是武器类所去创建的对象,那这个拖鞋一旦去攻击调用攻击函数 是不是就是可以 print 去打印它攻击的结果?看一下就试一下嘛。这个 类有没有问题?你看使用拖鞋造成了八点伤害对不对?再将这个铁盆对上去调用攻击好,那么现在是什么 使用铁盆造成了十点伤害?来 ok 的 给老师扣一个。一咱们继续往前把人物这个类定义好 ok 不? 这个跟我们那个 桌子啊桌子这个类差不太多啊。呃这个不难吧不难吧人物有点难 啊这个人物肯定有点难而且在人物类里面呢是需要去完成谁谁谁拿了哪个武器发起了极点攻击他要完成对象交互王大妈和铁盆这两个对象进行交互 进行互动的操作所以它里面呢相对难一点点。看一下吧。好吧人物首先还是属性其次是方法方法的话不多,第一两个一个是 a 的 爱的什么呢?爱的武器你这个人被创造出来之后你是不是要给他装备武器配备武器他才能去发起攻击是不是我就来个爱的添加武器的 方法写个 pass。 好 就先把这两个写好。这个是是什么呢?呃 物人物的属性的属性好那么这个呢是人物的哎人物的方法那什么方法来着装备武器的方法对吧。 装备武器的方法 ok, 好,那么将来咱们这个王大妈和李大爷是吧他是可以去调用该函数去装备什么什么武器的啊然后去发起攻击的啊。 ok, 好, 先把属性完成了啊。属性一个是名字啊这个是必然的对不对?名字跟刚刚是差不多的 哎给个 name 还有一个就是人物也需要生命值生命值他的生命值的话,呃如果大家课后有时间呢可以自己去拓展一下当生命值低于多少多少啊或者说呃攻击失败啊对吧。角色失败游戏结束啊,这样子对不对 啊。我们这里的话是给到一个生命值啊就会更加有趣一点。生命生命值就这样子吧。啊生命, ok, 好, 那一个是 c f, 去点 name 进去一个是 c f 去点生命 进去。好,这个是名字啊这个是生命值啊名字,人物的名字这个是人物的生命值 生命值。我把前面这个地方也标注一下这个是伤害啊,就两个,要分开,等会再具体用的时候要分开。武器的 伤害, ok, 好, 属性就就两个就两个。 嗯那这里要去传餐了传食餐了。那王大妈的名字王大妈对吧。生命生命值生命初十值。我们都是来个一百吧,好吧。嗯李大爷, ok, 好, 生命初十值也是一百 ok, 不 然后他有一个就是装备武器这个动作装备武器这个动作 装备武器的话我们可以在这个地方就在属性这个地方把他的武器去进行定义定义成一个空 cf 去点武器给他定义成 let 就 定义成空值。你不能一上来就拿武器对不对?对吧,我们肯定是啊有了武器之后给他去配备武器而不说一上来就拿武器。那我给到一个空值表示什么表示什么 空表示啊表示啊。人物他的这个属性之一是为配备武器为装备 备武器 ok, 好, 我这也是给了一个武器为空啊。看清楚。好,那么现在第二个方法就是给不同的人物去添加不同的武器的嘛,是不是? ok, 那 么注意咱们的武器在哪?武器是人物这个类,人物这个类就应该会有的一个东西吗?并不是武器, 他是来自于上面这个类,通过这个类所去创建的对象,对吧?那意味着如果说人物需要去装备武器的话,比如说王大妈 w, 你 写个小写的吧,比如说王大妈她需要去装备武器,调用 a 的 武器,她装备哪个呢?她是装备铁盆呢?还是拖鞋呢? 哎,注意看,咱们把这个对象拖鞋或说铁盆作为食餐传入到该方法当中。哎, 咱们这个十三还可以是对象吗?可以,在之前我们讲过十三可以是变量,可以是函数名,那为什么不可以是对象名呢?那现在王大妈装备了铁盆,那李大爷对吧? 李大眼,装备什么呢?装备拖鞋。好,这里两个时餐一写,哪个地方需要改?来给老师一个反馈,这两个时餐一写,哪个地方立马需要改,不改肯定会报错,哪个地方哪个地方一定要改。 咱们这这个是属于谁的参数?爱的武器的参数,配备武器这个函数,这个方法的参数,作为他的时餐,那么必然这个十六行的 位置得来个行餐吧,时间还是个空啊。对,十六行这地方是不是得去来个行餐,去接收谁?铁盆或者拖鞋进来?接收,这个对上名进来, 这个名字随便起啊,我叫武器可以吗?可以吧,武器接收 这个是刑餐啊,刑餐他去接收谁?武器对上进来,对啊,对象一旦进来, 该对象里面的属性啊,方法呀,随便调,换个位置调而已。 来,现在他要做的第一件事情是什么呢?王大妈配个铁盆,李大妈配个拖鞋,对吧?那么他们的属性,这个 w q 人物未配备属配未配备武器,这个属性是不是要更新一下了?此时配上了,对吧?那我就把这个 w q 它配的什么武器给它配上武器,铁盆配给 w q, 把 land 给它覆盖掉,那它里面的武器属性值就是你配了啥,那就是啥。 那比如说我用一个 return, 我 简单去输出一下,输出什么呢?谁谁谁装备了哪个武器,装备了哪个武器,下不去 w q cf 点内幕是个获取人物的名字, cf 去点 wq 是 获取武器的装备名字。哦,这里这里应该是这里,去打印的话,应该打印的是个 是个对象,对象的内存地址,我们去打印谁呢?去打印那个啊, wq 的 名字吧。哎,用这个武器调, ok, 好, 就是 王大妈去装备了哪个武器?是铁盆还是拖鞋啊?李大妈去装备了哪个武器?是铁盆还是拖鞋?然后这里的话是这个写法,大家能看懂不?这个写法大家能看懂不?他是对上名,再调用属性名看清楚, 谁猜传进来的是不是铁盆和拖鞋,那人家是对象呢?拖鞋对象和铁盆对象,所以用对象名去掉他的属性获取属性值,有问题吗? 有没有问题?有没有问题能能看懂不?我这里来打印一下 return 返回出来的东西吧,你们看一下啊,就是 a 的 这个对象所去返回出来的东西。 好,并行看一下。王大妈装备了铁盆,李大妈装备了拖鞋,你是说这个地方,这个地方没看懂的给老师扣个零,看一下 这里,你看一下我们最终打印的是不是铁盆和拖鞋,铁盆和拖鞋 注意听啊,这个地方没,没听懂的同学注意听。铁盆和拖鞋,这是,这是不是属于武器里面的一个属性值?武器里面的属性值 就是它的这个名字属性值,对不对?所以如果说我们要去掉这个铁盆或者拖鞋的话,是否需要 铁盆去掉 name, 或者说拖鞋去掉 name, 这你能懂吗? 看,没有铁盆这个对象去掉 name 属性值,或者说拖鞋这个对象 去掉属性值。那么此时在这个位置能够去输出铁盆和拖鞋,那是不是意味着在这个地方是使用了对象去掉了 name 呢?这样反推一下,是不是用对象去掉了 name 呢? 哎,这个武器它作为行餐在传的时候是把铁盆对象传进去了,把这个拖鞋对象也传进去了。注意看,咱们 这是函数的调用啊,定义,这是函数的调用,调用函数的时差分别传递到他行餐的位置,所以传进去给武器这个行餐的,那就是铁盆和拖鞋,所以掉的是不是就是这个 属名字属性,懂了吗?刚刚扣零的同学懂的来给老师扣个一啊,懂了不?这里懂了,不?懂了不要 是,要不咱们就讲到这里吧,吸收一下,好吧,因为讲到这里的话,其实就已经涉及到 多呃,多对象之间的一个互动交互了,已经涉及到多对象之间的交互了,当然咱们这个案例当中呢,还差一个方法没给他们去补全,只能自己客户去琢磨一下吧,好不? 咱们这节课的话就到这里就结束了啊,如果说就是同学们还能听的话,老师把第三个方法再讲一下,咱们如果说有事情的话就可以撤了,截止到这个位置,咱们就是把之前所所去讲的 这个面向对象所有知识点还有什么呢?还有就是他具体的使用这一块,使用场景这一块就都去讲了。呃,具体要用的话,就是在这个基础上,老师所去讲的这个综合案例的基础上,在丰富类的个数, 那肯定不止两个啊,对吧?三个、四个、五个、六个都有,具体看情况,那再去丰富方法和属性,那肯定不止三个呀,肯定不止一个方法呀,对吧?那肯定相对来说会更加复杂一些,所以同学们呢,就是先把这个案例先可以去消化一下啊。啊? 消伤害只用来干嘛?就这有个方法没补全,这个就是用来去攻击啊,这种王大妈用哪个武器去攻击?攻击李大爷,对吧?产生了多少点伤害? 好,如果说大家没有问题就可以撤了,那还能听的同学老师继续把这个方法讲完啊,咱们在这个地方呢,我们再去定义一个, 注意啊,是在人物这个类里面呢,定义一个方法,因为是人物能,就是人能够去做的事情,他能够去配备武器,他还能够去干什么呢?他能够去攻击攻击,他能够去攻击,而人物他的一个攻击 攻击其他人物的方法,来吧,还是讲一下吧,对不对?有些重视我就先。呃,有些打印我就先重视一下了,好吧。啊?这个 这个装备装备武器这一行不能调用啊,不能重视啊,不然等一下攻击的时候就不知道用的是什么武器了。好, 现在就是开始去进攻击了吗?对不对?好,那么我们这个方法你可以先不去写内容,如果说他能够定义好,那要么就是王大妈去攻击,要么就是李大爷去攻击,所以将来 人物发起攻击操作,那将来肯定是王去调用这个攻击函数,或者说李去调用这个攻击函数,对不对?前面这个的话是,呃,人物, 人物去装备装备武器操作啊,这里稍微写就这两行是装备武器的操作吗?好,你看 咱们该函数定义好,那要么就用王发起攻击,要么是李发起攻击。哎,两个人对打问的好,如果王要打李的话,那么就把李这个对象放进去,表示什么呢?王大妈攻击李大爷, 哎,如果说李大爷要攻击王大妈,就把这个对象放进去,懂,这里又是在把对象名作为时餐去传了,那将来哪一行需要改一下? 二十行是不得来个啥?来个啥?来个行餐,对不对?这里我们就来一个。呃,攻击对象,攻击目标,我们就来个目标,攻击目标, 人物攻击其他人物吗?这就是指定攻击谁?好,那么这里就是攻击目标,接收 攻击目标。 ok, 那 就开始攻击了呀,这两个人物就开始在方法里面对打了呀,是不是?是不是?好, 开始对打之前呢,你得把那个武器的伤害你得给他弄过来,因为现在 王大妈是装备了铁盆,李大爷是装备了啊,拖鞋,那不同的装备他的攻击值是不同的,造成的伤害对于生命值的伤害也是不同的,所以你得把那个武器给他弄过来,你把那个武器给他弄过来。此时武器在哪? 此时武器在哪?哎,有的讲了,老师你是不是又得传个武器进来呀?你又得传个武器进来呀?这里去接受一下,不用了。因为什么呢?看到这个地方没有? 我刚刚去给他装备上的这个武器下服的一个 wq 属性,是不就是已经拥有了,已经装备上了,那此时只需要把这个武器拿过来打就行了。是不是 直接塞尔夫去点武器,把他装备好的这个武器属性装备属性值拿过来。好,拿过来之后呢, 看一下它里面是不是有个伤害武器对象打点去掉一个伤害属性,它的伤害值是八还是十?是不是调过来了,所以带去调个伤害。 那么这里直接就是对于人物的生命值进行累减操作啊,我们去将这个伤害值分成两个步骤啊,写一个步骤,看你们看不懂,就这个伤害,我们将它另外保存一份伤 伤害,那写个啥呢?写个 h s h 吧。好吧,就获取到了这个八还是十呢?给它保存一下,然后再去对于攻击目标,比如说,呃,王攻击的李,王大妈攻击的是李大爷,那肯定是李大爷的伤伤害值 是不是往进行,对吧?累减,如果是礼仪攻击王,那就是王大妈他的伤害啊,对,就掉那个生命值。好,那就是拿着这个目标去调用,调用 来生命值属性累减掉伤害值。 ok, 现在 得到的啊,这个生命值就是攻击之后的,我们也不需要就是写的那么复杂,直接就是一个 return 返回攻击之后的结果,进行格式化输出,谁 攻击了谁对谁,对吧?这个攻击目标的名字使用了哪个武器,使用了哪个武器 好?造成了极点伤害造成了极点伤害,这个伤害刚刚是不是有去进行另存为变量值,所以直接变量输出就好了,不需要 cf 去点,它是一个变量值啊, 点的伤害 ok, 好, 这就是攻击函数,他调用完成之后会去得到的一个结果,也就是王大妈攻击了李大爷之后得到的输出结果。