粉丝549获赞1503

大家好,今天教你们列表, 首先定义一个变量叫 a, 然后等于一对中括号, 这边带双引号或者单引号,里面的字母随便定义,输完了又打, 然后回里面 打,这边你们也是看到出打 e a 了,输入其他的又惊喜, 当然你可以二这个代码可以让列表打印两次, 你们也是看到打印两次列表了, 照这样我们也可以随机打印一个列表里面的数字,也是我们第一 次输入 excel, 然后再导入 random, 但其实就是随机库依旧填列表,这里前期已经讲过,不用我多讲。 然后 print 打印 a 中括号,输入 radian, radian range, 然后里面填上范围, 我知道问题出在哪了,不小心点到,注意里面一定是 你就能看到随机打印,别表了,你学废了吗?

拍丧从入门到精通,今天是数据类型配套学习文档学习资料直播公开课主页粉丝群。大家好,我是马可,那欢迎大家来到我们拍丧零基础系列的第三节。 那今天呢,我们来看一下拍丧的一些核心数据类型啊。首先呢是我们的第一个啊,我们的整形和福点数,他是我们数字家族的, 那整型呢,它是用于表示没有任何小数部分的数值,比如说我们去数苹果,对不对?一个啊,两个啊,一百个啊,没有小数点干净利落,那对应的伏点数呢?哎,就是有了小数点的数数字,比如说价格,比如说身高啊,但是呢这里大家注意两个问题。 第一个呢,我们 python 里面的 int, 也就是整形啊,它呢有一个特点,就是说它是支持任意长度的计算,不会溢出的,它是基于你的内存的。第二个呢就是浮点数的一个通病啊,它会有对应的一个精度异常的问题,也就是精度不足的一个问题啊,这个呢需要我们大家去注意。然后呢再往下来看啊,就是我们对应的一个列表 字典,那列表呢,大家可以把它理解为一个万能格子,它可以把所有的数据类型都装进去,想拿拿,想拿什么拿什么,超级的方便。 对应的呢是我们的字典,他是通过键值对来进行一个组合的,比如说前面呢是 name, 后面呢是小明啊,他们俩呢其实是一条数据,那可以通过前面的小明来拿到后面的对应的值,也就是通过 name 拿到来拿到这个小明 啊,进行一个对应的操作,通过键值对存储的查询映设,那再往下看呢,就是我们的字母串啊,那在前面的过程中呢,我们说这个文字啊,一定要加引号,为什么呢?因为啊,我们要表示他呢是一个字母串啊, 比如说在这里我们可以看得到这几句话,或说这几个字,对不对?哎,你在 python 中要如何表示呢?加上字母串就可以了啊,注意,如果说你是一个数字,一,你加了一个引号,那此时此刻它应该是 int 还是对应的 str 呢?注意,它是 str, 你 可以这么理解啊,只要是包裹了单双引号的, 它就是字母串啊,它就是字母串啊,它也是我们在处理文本啊,用户输入啊,提示信息啊等非数值内容的一个核心工具啊,非常的重要啊。然后呢,再往下走呢,就是我们的布尔值。布尔值是啥呢?其实非常的简单啊,你可以理解为它呢是用来做判断的, 比如说在我们编程中,你肯定要做决定,对不对啊?布尔值呢,就是你的裁判,它只有两个选项,对或者错,也就是错或者 false, 非黑即白,没有另外的内容啊, 它呢是用来去做一些,比如说分支判断啊,就是我们后面要学的 inf 语句以及循环退出啊等等,核心逻辑的一个基础都是用它来去做的。那往后再走呢,就是我们的集合原组了,这两个呢,相对的一个,存在的一个,嗯, 怎么说呢,存在感不是很足啊。那首先呢,集合呢,它的特点啊,记住这两个点,无序且元素不重复啊,这是它的特点。那原组呢,大家可以理解为它呢,也是一个对应的,但是它的唯一区别是什么呢?它是不可变的。 那后续的话呢,我们可以详细去聊一下什么是可变?什么是不可变?那今天呢,就是我们对于这些元素类型或者说数据类型的一个简单的一个介绍了啊,大家有没有学到一些新的知识呢?

dataframe 是 一种二维表格型带标签数据结构,它是由多个共享相同行缩影的 series 对 象所组成的集合 dataframe 构造函数,用于创建二维表格数据结构参数, data 带输入数据、支持字典、列表等。 index, 自定义行缩影标签 默认会自动生成从零开始的连续整数,这里我们将其定义成 a, b, c, d, e columns。 自定义列名字典传参时默认用键作为列名。 d type, 数据类型默认自动推断 copy 是 否拷贝数据,默认为 none, 即智能选择 at, 按行列下标获取单个元素,如, at 一 二结果为六百。 l o c, 按标签缩影访问行或列数据,经常用来访问行数据。如 l o, c, b, 获取标签 b 所在行数据。 i l o, c, 按位置缩影访问行或列数据,经常用来访问行数据。 i l o, c 零,获取第一行数据。 get 方法,按列名访问列数据,若列名不存在,则返回 n。 如, get 产品,获取产品所在列数据。接下来是实战时间。 i a, t 属性可通过指定行列下标获取表格中的单个元素。 i o c 属性可通过指定行标签获取对应单行的全部数据。若向 l o c 属性传入行标签的列表,就能选举多行数据。 l o, c 属性还支持行标签的切片写法。需要注意的是, l o, c 的 切片会包含首尾两端的行数据。与 l o, c 属性对应的是 i l o, c 属性,它通过行下标获取数据,且下标从零开始计数。 若向 ioc 属性传入下标列表,可选举多行数据。 ioc 属性也支持切片操作,核心规则是切片为左闭右开,即包含起始下标对应的行,不,包含结束下标对应的行 列。选举有多种常用方式,直接通过列名加中括号的形式可获取指定单列的所有数据,但若指定的列名不存在,会直接报错。若向中括号内传入列名的列表,则能一次性选举多列数据。 此外, get 方法是列选举的另一种常用方法。与直接用列名取值不同,当指定的列名不存在时, get 方法会返回 n。 若向 get 方法传入列名的列表,同样可以获取指定的多列数据。 quarry 查询方法则支持通过类 sql 的 字串条件进行数据筛选,写法直观易懂,该方法也可实现精准匹配。筛选需注意语法规则,匹配的字串内容要用单引号包裹,整个条件表达式则用双引号包裹。 最后, values 属性可提取表格中所有的数值内容。 index 点 values 专门用于提取表格的所有行缩影标签返回一个一维数值。 columns 点 values 则用于提取表格的所有列名,同样返回一个一维数值。以上就是 dataframe 的 核心操作,更多干货,下期再见。

挑战,每天讲透一个拍算基础知识,今天继承配套学习文档学习资料直播公开课主页粉丝群。大家好啊,我是马可,欢迎大家来到我们拍算零基础系列的第十小节啊。今天呢,我们来看继承啊,同学们,你们看到继承这两个字的话, 第一时间会想到什么?子承父业对不对啊,注意啊,我们呢面向对象,你们的超能力啊,不用自己从头练习。 我们先来看一下,他说继承的是面向对象编程的三大特性之一,他允许我们定义一个类子类来继承另一个类父类的属性和方法。这样做最大的好处就是实现了代码的高度附用,避免大量重复造轮子的工作,让程序结构更加清晰。 那我们来看一下,那什么意思呢?对不对?我们来看一下啊,首先啊,哎,这里呢有一个对应的父类,哎,我们没有看到他,对不对?没有关系啊,在这里对不对啊,他呢有一个对应的父类模板啊,他有一个应用的方法来定义了一个对象的实力属性,是一个名字,同时呢,他有一个吃东西的方法 啊,注意,这个方法写完之后呢,我们来看一下下一步。写完之后呢,我们写了一个 dog 类,注意这个里面有没有 innit, 没有,有没有吃东西的方法?没有哎,但是呢,我在这个 dog 后面加了一个括号,括号后面呢写了我们刚才负类的一个名字,写完之后呢,哎,我们创建了一个实际的 dog, 名字叫大环, 同时我们去使用 mydog 点上它的一个弯弯叫的方法。注意,此时此刻还不是最有问题的,最有问题是什么呢?如果此时此刻你再去点上什么呢?哎,点上我们的这个对应的意思,方法,也就是吃东西的方法,对,是 可以使用的。为什么?因为我爸爸有,我妈妈有,所以我就有啊,我就可以用啊,这呢就是我们的继承啊,子类继承父类呢,非常简单,只需要在定类时,在括号内填入父类名称,继承后子类自动拥有父类所有非私有属性和方法 啊,即使子类内部是空的,他也能调用父类的方法,就像是获得了家族遗产啊。注意,这就是什么?这就是我们的继承,他里面是空的,对不对?注意,你发现没, 首先啊,他可以传名字,我什么都没有,他为什么可以传一个名字呢?说明我们继承了父类的什么?继承了父类的因果方法对不对?然后呢,我可以点这个吃的方法对不对?说明我继承了什么?继承了父类的吃东西方法对不对啊?注意,这是什么?子类的一切获取, 同时呢,我们还可以拓展功能啊,那继承呢,不只是被动接受子类,还可以拥有自己独特的属性和符法, 这被称之为拓展。比如说呢,现在我添加了一个自己的一个方法对不对?哎,万万叫对不对?好,那我就可以使用这个方法,同时父类的对应内容我还有吗?我还有,所以我还有 啊。然后呢,还有方法重写啊,如果父类的方法呢,不符合子类的需求对不对?我们可以进行重写,比如说我写一个同名方法会覆盖父类的行为。你可以这么理解啊,此时此刻我在进行这个对应的操作的时候,父类的方法会调用吗?不会,我会调用我自己, 所以是优先执行自己的版本啊,优先执执行自己的版本啊,这里呢,我们还有一个哎,实战价值。 那继承呢?哎,我们构建了类以类的层级关系,同时我们是不是可以附用附类的内容啊,对不对?是可以附用对不对?啊?那学会继承,你的代码链会瞬间减半啊,头发也能多留几根。 下节课我们再来讲对应的多肽啊,在这里的话呢,我们还要多提几句啊。对,我们还是可以在重写复类方法的同时再去调用复类方法,只需要使用 super 就 可以了好不好?那我们下节再见。配套学习文档,学习资料直播公开课主页粉丝群。

你有好好了解过 python 中那些基础函数吗?它们都是 python 函数的核心组建,无需额外导入,可以直接使用。掌握这些函数可是学好 python 的 重要一步,今天就来快速带大家过一遍那些常用的内置函数。一、数据类型与转换这些函数是数据处理的起点开部函数,用于查看变量的数据类型,返回结果直观清晰。 int float str 核心类型转换工具用于类型转换,可以根据需求灵活切换数据类型。 list tuple 构建数据结构的核心函数,用于创建空容器,还能实现容器间的转换。从左到右分别为列表、圆组、集合字典,是构建复杂数据结构的基础。二、复制串处理 learn, 快 速获取复制串长度。 split 按指定分割符分割,复制串简单高效。 join 则是相反,用指定字母将复制串列表连接起来。 upper lower, 一 键实现复制串的大小写转换。 trip, 用于去除字母串首尾的指定字母,默认为空格。这些函数是日常开发中常用的操作,功能强大,非常好用。三、数学运算 abs 计算数值的绝对值。 round, 四舍五入注意,函数遵循的是银行家舍入法,和我们日常说的四舍五入略有不同。 power 球迷运算等价于双星号球迷运算符。 max, 找出给定参数的最小值和最大值。三、盘数对可迭代对象中的元素求和,这些都是处理数值数据的基础工具。如果需要进行更复杂的数学运算,可以导入 max 模块,获取三角函数、对数、常量等更多功能。掌握这些内置函数,能让你跳出重复造轮子的困境,用更 python 的 方式编写代码。

今天教你们数据类型上,请问我写的这些有啥用?回来你就知道了。 我们就拿一个很简单的例子来举例,将 a 定义你想要的数字,然后再给你一个变量 b, b 里面的数字一定要带双引号,然后 a 加 int 必我们学习便要是第一个 int, 很好,你已经学会了 int。 接下来我们要学习浮点数,如果将双引号里面的内容带小数点, 直接报错了,这是因为 int 是 整数的意思,不能用于浮点数。接下来看我操作,将 int 改为 float, 小数点计算就能直接运行了。接着是复数,这里作者不小心失误了,一把变量 b 改为二加三 j, 然后再将 f o 改为我屏幕上的代码, 你得到了一百一十三加三 j, 你 学废了吗?下期视频数据类型下。

大家好,今天教你们数据类型下,首先是字母串类型,字母串 star 不 仅像平常变量一样,它还有三引号,改为三引号依旧可以输出平常使用步骤, 单引号可以运行, 双引号也可以运行。带你见识下三引号,就是三个双引号或者单引号依旧像前两个那样正常运行。 接下来介绍老朋友 to 和 fors, 它俩依旧还是数据。 通情达理地来讲, to 等于一, fors 等于零。 定义一个变量叫做 a, 定义为 two 加 two 加 plus 就 等于一加一加零。 接着打印变量 a, 你 就发现它打印出二了。 把变量 a 的 最后一位改为 two, 意思就是一加一加一, 你就发现打印出三了,你学废了吗?

列表作为最常用的数据结构之一, python 也为此提供了丰富的内置方法。今天就来讲讲其中常用的五种方法。第一个 app, 该方法用于在列表末尾添加一个任意类型元素,不改变原列表的内存地址,能直接修改列表。注意, app 的 方法只接受一个参数,如果想添加多个元素,则需要使用其他方法。 第二个 extend, 该方法用于将另一个可迭代对象的所有元素添加到原列表末尾,可以理解为合并。相较于 app 的 方法, extend 会将可迭代对象中每个元素分别添加至原列表。第三个 pop, 该方法用于移除列表中指定的元素并返回该元素。若不指定缩影,则默认删除。最后一个元素。如果缩影超出列表范围,就会产生报错。第四个 remove, 该方法会根据元素值删除列表中第一个匹配的元素。如果想删除所有的匹配元素,需要使用循环进行操作。第五个 index, 该方法用于查找并返回第一个匹配元素的锁影。 其中 start 和 nnd 为可选参数,用于指定搜索范围。如果想要找到所有匹配元素的锁影,需要结合循环和 start 参数来实现。这五种方法覆盖了列表的增、删、改、查等核心操作,熟练掌握它们就能帮你解决日常开发中大多数的列表处理需求。

nan 作为 python 中常用的内置常量,你真的了解它吗? nan 本质是一个特殊的常量,它表示空值、无值或无意义的状态。通过 type 函数可以看到,它的专属数据类型为 nan type, 这是一种独立的类型,且 nan 是 nan type 类型中唯一的实力,意味着内存中始终只会存在一个 nan 对 象。接下来通过一个代码案例来直观验证一下。 由于 a 和 b 都被赋值为 n, 根据特性,因此无论是用于值比较的双等号,还是用于身份比较的意思,输出的结果均为 true。 不 过,在实际开发中,判断一个变量是否为 n 时,推荐优先使用意思执行效率更高,也是拍算官方更推荐的写法。 需要特别注意的是, n 不 等于任何有具体含义的值, n 就是 n, 它既不等于零,也不等于空字符串更不等于 false。 但是当 n 被转换为不尔值时,结果会是 false。 此外,那无法参与数学运算,也不能直接与字母串进行拼接,强行操作会报错。掌握难的核心特性,能帮助我们在 python 开发中更精准地处理空值场景,避免因对难的认知偏差引发不必要的 bug。

大家好呀,我是小黄人,今天咱们来学习 python 的 数据类型和数据计算。首先我们首先要弄清楚什么是 python 的 数据类型 好,首先数据类型 分为字母型 str, 有 整数型 int, 五点数型 复整数型 float, 是 不是跟 c 语言非常的像,还有什么型呢?好用的就这么多,还有布尔类型。 常用的一些数据类型,我们分为字母型 s t r, 整数型 int, 浮点数型 float, 还有布尔类型布。而我们 怎么在实际的应用中去应用它呢?我们假如我要把一个东西转换成字母型的,那我就一个 str, 后面加上一个,就是里面要转换的内容, 里面可以填文字啊,但是呢,你填文字就相当于是画蛇添足,但是呢,你填数字也是可以的, 但是请注意了,转换成整数类型也是一样的,浮点数类型也是一样的,但是整数和浮点数类型里面你就不要填这个文字了,你填文字的话,你小心他报错, 谁跟你说文字能转换成数字的?数学老师听了都得炸了,哼!好, 讲完了各个类型的转换,我们现在就来讲一下 如何通过这些数据类型来进行一些数据计算。我们现在呢,主流有很多种方法,比如说一种是把内容输入进去,保存在一个变量里面,假如我们今天来做一个实例, 今天的实力为制作一个简易的 加法计算器。好,我们来尝试一下,首先让用户输入,比如说 number 一, 让他给赋值,让他把用户输入的内容赋值一个 int 扩起来,然后里面一个 input, 我 们上节课讲了这个 input, 但是呢,这个 input 是 起到什么作用啊?是不是把这个 input 的 内容,哎,是不是给他转换成一个整数类型的东西?当然,如果用户非不听劝,在里面输入一个整数类型的东西,那么这个肯定是会报错的。 好,让任务输入,请输入第一个数字,请输入阿 阿拉伯数字,好,把这个复制过来, 然后名字叫 number two, 请输入第二个数字, 于是请输入阿拉伯数字。好,等用户输完了两个数字之后,保存在一个 number one 和一个 number two 的 变量里面。我们现在就对 number one 和 number two 进行一个处理,让它输出一下 number one, 加上这个 number number two。 啊,你也可以这样玩,最终结果为 一个这个合起来,然后呢,在里面填上一个 number one, 一个 number two, 当然你其实也可以不加这个,这个 int, 在 这个里面给它扩起来,你在这里面输入一个 int, 哎, 知道吧,你在这里面输入一个 int, 但是呢,这可能会比较麻烦,好,我们做出了这个实力,现在我们就来试一下 阿拉伯数字,比如说我随便乱输一个,他都能给我精确的计算出来,最终结果为看到没有精确的计算出来了。但是呢,给大家课外科普一下,拍粉有这样一个自带的 bug, 因为呢,这个 bug 需要使用浮点数类型,浮点数类型呢,就是小数点,知道吧,上过六年级的人应该都知道,那我们把这个类型改成 float, 让它转换成浮点数类型,以免啊,又是报错。 运行一下这个 bug, 为什么呢?就是你输入第一个数字零点一, 好,再输入第二个数字零点二,把他们加起来,很多人肯定会举手,哎呀,等于零点三,但是拍手很任性,他不这么认为。我的天,这什么玩意? 大家肯定会很懵,怎么这么三零零零零是这么多东西是怎么回事?其实呢,很多编程语言都有这个 bug, 这个 bug 是 怎么回事呢?就是他们在转换编码的时候,就是 编程语言在计算某个数字的时候,是一般都是转换编码的,然后他们在转换编码的时候出现了一点差错,基本上好像就是只有零点一和零点二这两个卧龙凤雏合在一起,才会得出零点三,零零四吧。 好,这就是 python 的 加减法运算的一个实力。可是大家有可能会好奇这个布尔类型是什么?好,布尔类型分为住 false, 好,英语精通的人就来了,处是真的意思, false 就 假的意思。对,这两个意思呢,其实是在这个 python 里面就表示的是真或者假,也可以说表示为是或者否, 相当于我们人类中的 yes 和 no。 但是呢,因为呢,这个东西呢,比较高级,所以说我们以后可能会在条件判断里面进行使用,现在呢,我们就不一一赘述,这就是我们这节课的全部内容,拜拜。

各位小伙伴好啊,这个视频我们接着和大家一起探讨 python 里面这个权重向量,我们还是切换到 python 这个界面, 然后呢这个是上个上个视频啊,我和大家分享了一下,我们重新更新了一下我们这个散点图的函数,更新之后呢,这个散点图可以接受多个数值和多个子图的标题。嗯,然后我们再看一下 在上上个视频,我们上个视频有数有有提到上上个视频的话,我们均匀的生成这个权重向量,或者是这个空间上的点的话, 我们想把这个点的数量增加一下,这里是我们看到是有啊,六个点,六个点呢,这里应该是扩展到了二十五个点,这个点是怎么增加的呢?举个例子,举个例子来讲,比如说这个点, 这个点的话,这个点和这个点我们知道它是共线的,共线的话两个点之间肯定有个中点,我们就可以找到它的中点,这两个针间这两个点之间也有个中点,我们也可以找到它的中点。所有的除所有的这个点和除这个点本身以外的这些点 都可以和他进行一个两两的组合,形成一个终点。那这个视频我们分享另外一个思路,就说比如说我们找这两个点的终点,实际上呢是从这个点出发,往这个点方向去走,走了二分之一的距离形成的一个点。 那我们说我们一定要走二分之一吗?走四分之一可不可以?八分之一可不可以?十分之一可不可以?这些都是可以的。他和他组合之后走二分之一,四分之一,八分之一的这个距离,他和他是不是也可以做组合?他往前走二分之一、四分之一,八分之一,他和和他以外的所有的这些点都可以进行这种相性的组合。 实际上我们就是要找所有的这些点组合之后和它们共线的,而且在这两个点之间的这些点均匀的把它给取出来,是这么一个原理。嗯,如果我们用向量的这个, 用向量的语言或者是方法来看的话啊,它实际上呢? a a, 这个图我调一下啊,稍等。嗯,对, 实际上呢,这里是那个圆心零零零,坐标是零零零的那个点,这个点的话,假如说,比如说我们说这个点,这个点和这个点这三个点是共线的,这三个点是共线的话,从向量的角度有一个重要的表达式是 这个项链,这个项链它等于 lm 八, lm 八倍的这个项链,再加上一减 lm 八, lm 八倍的这个项链,相当于这个项链可以用这两个项链来做一个线圈的表示,而且这两个项链它前面的细水相加是等于一的。 就比如说,比如说我们有一个点 a 和一个点 b, 那 么我们要证明要找到,或者要找到一个点 c 在 这个 a 和 b 中间, 使得点 c 在 a 和 b 中间。我们怎么做呢? 我们会有这么一个式子,就是说我们说 o c, o c, 大 写的小写的 i i 表示由其中的一个,因为因为 a 和 c 之间其实有很多点, a 和 c 和 a 和 c 共线,而且在 a 和 c 两个点之间的点其实有很多的,我们挑选其中的一个就是 o c i o c i, 它这个向量呢就等于,呃,比如说呃 等于一减,这个 i 除以 n, 然后是 o a 加上 i 除以 n, 然后是 o b, 这里用一个乘号这个括一下, 或者再用一个乘,可以让这个式子来表示这个 i 的 话, i 的 话就是我们把 a b 之间啊,均等分的那个均等分的个数, i 可以 取十,取一百,比如说 i 的 n, n 可以 取十,也可以取一百, 那 i 的 话就是取,比如说 n 等于十, i 就是 取啊,一到十里面任意一个数。比如说取二的话, o c 就是 a 和 c 这个两个点之间第二个点, 第二个与 a c 共线,而且在 a c 之间的这个点 o c 二, o c 二就等于一减十分之二乘以 o a 加上个十分之二乘以 o b, 这两个系数相加是等于一的,这样就能找到无数多个,理论上能找到无数多个 c 点,在 a 和 c, a 和,在 a 和 b 点之间同时与 a 和 b 共线。 下面我们就看一下具体啊,怎么找这个点 啊?我们 k, 我 们让 k 等于三, b 等于七啊,然后,嗯,这的话是一个格子,格子的话我们可以附用前面的这个代码, 这个就是生成一个有两两行啊,两行一列的一个,嗯,对啊,还有个 d, 嗯, d 的 话,这里和前面不太一样,改一下 d 的 话就是 b 除以 b 减一,这样调整的话啊, b 如果有七个 d 的 元素,也是有七个 d 的, 这个元素的个数和这个 b 的 值是相等的。 然后 d 的 话,我们把它给那个开炸爆一下,炸爆一下的话啊,有很多这种啊,两行两行一列啊,两行一列的这个缝,把它炸开, 炸开之后我们可以取它的这个格子, 这里我们可以先看一下这个 once, 实际上这一部分是形成一个啊,两行一列的一个数组, 两行一列,然后都是一,然后让它乘以这个 d、 d, 我 们可以看一下它是一个行行数组啊,这两个相乘的话,实际上就是形成一个啊,就是两行两行七列,两行七列的一个数组,两行七列的数组 相当于这个把这个 d 给复制一下,我们可以看一下 啊,实际上就是把 d、 d 这个数值呢给它往下复制了一行,复制了一行,复制了一行之后我们 再有一个炸包,炸包的话就是把这两行给独立开来,每每一行就是独立的一个变量,一共有两个变量,就这个里面的两两行两行之后开始用这个网格生成网格,网格的话其实就是这两行里面的元素 一两两的去组合零和零,组合零和这个组合零,再和这个组合零,再和这个组合,这样这样一次组合下去,这个七七四十九,应该会有四十九个组合之后,然后再变成一个, 再把它做一个变形,变成一个两行两行,然后有应该是四十四十九列的一个数。我们执行一下这个代码,然后我们看一下,这 可以看到是有两个数组的,实际上是有两个行数组,每一个行数组应该是四十九个数,是的四十九个。然然后我们出示的 出示的 w 值呢,就是类似于我们前面的那种方法,我们把这里面这个符合条件的列给提取出来 啊,这个符合条件是什么呢?每一列相加小于等于一,这是我们的条件,通过这个条件,我们可以 把 g 里面,把 g 里面满足一些条件的数值给给提取出来,其实就是把一些列给提取出来,把它复制给 w 看一下 w, w 这个个数明显比前面那个要少了一些,因为有一些是不满足条件的,现在只有二十八个了,由四十九个变为了二十八个。 然后我们设置一个变量, w n 等于 w 带 c, 嗯,这个还这个 w, n 实际上就是我们初设生成的这个筛选出的数值的个数,就是这个二十八个,可以看到是二十八。 好,我们继续。然后这里,这里有一个比较稍等的地方,是我们生成一个函数,我们用这种快捷的方式去写这个函数。嗯,这个函数呢是 x, 乘以 once 点一,然后再再展开一下。啊,展开之后呢,再加上 加上这个东西,然后再减去 x, 然后再展开一下, 展开之后呢?啊,再乘以一个 这个函数。函数这个表达式看起来就有点复杂了, 再把它给整平。嗯,好, 这里有个报错,我们看一下 二十八万四,这个应该是 x, 乘以一万四,输错了。好,现在好了,可以看到这个函数还是蛮长的,这个函数自变量是 x, 自变量是 x 的 话, 这边是 x。 啊,具体的这个 x 呢?它是啊,让它乘以了这么一个。嗯, 这里这个 x 呢,实际上是这个 w 这个数值里面的其中的一行,其中的一个行数,这个行数组呢?再乘以一个元素为一的元素为一的一个。啊数值,这个数值呢有一列一列的话有多少行呢? 这个 once 这个数组的横数和这个 w 这个数组的列数是一样。换句话说,它和 x 这个变量 或者这个横竖组的这个元素个数是一样的,只不过这个是横,这个是列,这样的话它俩一,它俩一乘。用这个安排的这个广播机制,我们说 x 它是有二十八个数, x 里面有二十八个元素,那后面这个列数组呢?它也是有二十八个元素,是有二十八、二十八个行,每行有一个元素,它俩相乘的话,通过广播机制就会生成一个方形的数组,二十八乘以二十八的二十八行,也有二十二十八列, 实际上是把 x 这个横向的行数组给它重复了二十八次。嗯,我们假设 x 等于 w 的 第一行, x 是 由 二十八个数组成的,然后我们可以看一下 x 再乘以 这个 one 四之后是什么结果。可以看到它有这么多,实际上它是一个二十八乘以二十八的,实际上就是把 x、 x 这个这个函数组把它给往下往下重复了二十八遍。你看 每个数字的元素是一样的,零点一六六七,零点一六六七,最后这个倒入第二个零点一六六七,倒入第二个零点一六六七是一样的,这里零点六六六七,零点六六六七是一样的,只不过是重复了二十八次。 然后这里再有再有个展平的操作,展平的展平的操作就是把这个很大的这个数值把它排成排成,排成一横。 咱们可以看一下,它成一行之后,它实际上它就是一个一乘以二十八、二十八的平方。这么个这么多个元素, 可以看一下七百八十四有一行有七百八十四个元素, 我们说这这是一个横竖组,这是个横竖组,也就是说前面这一块就是个横竖组,我们再看后面这一块,后面这一块 x, 这个切片操作什么意思呢?意思是把 x 给竖起来, 我们说 x 是 横着的一个横竖组,然后我们把它给竖起,竖起来之后它就是列的一个,看它就是列的竖组,它也有二十八个元素,这二十八个元素就这样竖着排起来了,形成成了一个二维的竖, 然后再减去它本身 x 减去它本身, x 就是 竖起来之后,再减去它本身,它本身是个好的数值,这样一减的话其实也是一个方阵,可以看到它也是一个方形的方阵, 然后减了之后我们再把它给展平 转明之后,它的形状其实也是二十八的平方,有有一行一行,它只有一行一行的话里面啊有多少个元素呢?七百八十四个二十八的平方, 然后呢再给它乘以一个这个这个东西啊,这个 d 的 话,我们前面也讲过,它有那个,它有七个元素,有七个元素呢,而且这个 d 也是把它给竖排起来的, 我们可以看一下 d, 它实际上啊 d 实际上是一个横着的一个横竖组,横竖组的话里面有七个数,这个操作就是把它也给竖起来,元素都是一样的,只不过是竖排, 这样的话,原来二十八个平方个元素的行数组,再乘以七个元素的列数组,这样相乘的话,最后它变成一个二十八的平方,二十八的平方乘以啊,七行七行二百八,二十八的平方列这么一个数组, 可以执行一下。好,括号不匹配,我们看一下, 嗯, 我们再执行一下, 嗯,可以看到这个绿色的这个括号和这个绿色的括号是匹配的,也就说我们选择选到这里,然后再去执行,啊,啊,看,看到它执行了, 可以看到它确实是七行,然后是二十八的平方这么多列,七行二十八的平方这么多列,它的列还是蛮多的。 这个七的意思就是说我们每个两两组合的数之间把它划分成七个格子,划分成七段。嗯, 这里可能大家有些不理解,这个相减一个数减去它本身啊,是什么意思啊?这个实际上呢,就是就是这个意思。假如说那个 a 和 b 两个点, 那我想我想找啊, a 和 b 之间的一个点,我可以,我可以这样做, a 加上个啊, b 减 a, b 减 a, 就是 a 和 b 之间的距离,再乘以一个 k 乘以一个系数,这个系数是零到零到一的,比如说 k 等于零点五,也就说我找到 a 和 b 啊 ab, 假如说 a 和 b 是 个点, ab 之间的那个中点就是零点五, 就乘以零点五,那假如我乘零点一呢?零点一的话,就是说 a 加上 a 向 d 那 个方向移动,零点一个距离零移动十分之一的距离的那个点,这个点想要挨着 a 更近一些,假如说是零点八的话,就是 a 向 b 那 个方向移动,移动的那个位移的那个距离呢,大概相当于 a 和 b 之间距离的零点八倍,那样的话, a 和我们所找的点就更接近于 b 这个方向,这 b 减 a, 那 我这里呢?因为我是一样, w 里所有的点都是两两组合的,所以我就直接是用 x 把它竖起来,再减去一下 x, x, 这样就能形成一个两两相组合的这么一个效果,然后再把它展平,前面展平了,后面也要展平。好, 展平之后呢?嗯,我们说这个距离要乘以一个系数啊,这个 d 的 话就是我们所谓的那个系数,因为 d 的 话 可以看到 b, 它实际上是零到一的水,也就是说我们乘以了七个细水,这样的话,它能同时把 a 和 b 之间,把之之间的均等地取出七个点,从 a 和 b 之间均能取七个点,如果说这里 b 等于十的话,它就是均等地取十个点出来。 这里相对来讲比较复杂一些,完了之后再把所有的所有的这个东西,再把它给做一个展平。 前面这一坨实际上就是和刚才说的那个 a 是 相同的,相同的作用,实际上是两个点的起点, a 就是 起点, b 是 终点, 可以看到把它展开之后,它就是一行,它就是一行。这仅仅是对那个 w 里面第一行这么操作。如果 x 等于,刚才我们是说 x 等于 w 零,那 x 还可以等于 w 一 呢, w 一 就是对 w 的 第二行进行这个操作,如果 w 有 三行的话,我们不可能这个公式写三行,所以我们就定义成这么一个函数。 定义成这个函数之后,后面就简单了,我们说 w 一 是我们再次提取之后的数,我们先取个唯一,取唯一值,嗯, a 值的话,我们是变成数组,数组的话是用这种函数式的方式来写的 y x, 哦, 然后后面的话我们还是要那个给它保留八个小数,这样的话就避免有些重复值,它它会识别不出来,识别不出来的话会造成我们的点可能会增多, 等于一,我们是在列的方向上进行一个去除,这后面这个轴等于一的话,是针对 unico 这个函数来说的,其实这个就是我们去除的动作,我们生成的这个这个点的话, 和那个 w 里面第二行,第二行套用这个函数之后生成的点,每一列来讲的话,它是有重复值的,有重复值我们就去掉 啊,这个重复值是怎么来的呢?可以看下这里。 嗯,假如说我这个点和这个点相连,我取一个中点是这个点,但原本它就有这个点,这个点已经有了,然后它又生成了一个点,那这两个点就重合了,重合了之后我们就要去掉一个。 还有就是啊,比如说这个点和这个点的终点是这个形成了一个终点,那他和他的终点也是这个,那这个点就重合了,重合了两次就要去掉一个重合的点,就这样来的, 可以执行一下,可以看到执行后没有报错,说明能正常运行的。 然后我们再把那个,因为这是三三个权重,三个权重的话前面其实我们两个权重已经处理出来了,随机两个权重已经生成均匀的抽取出来了,第三个权重就让一减去后面的 两前面两个权重的和就行。然后我们把那个把它加到我们原来的那个 w 一 那个数值里, 这样就行。然后我们维度的话保持它啊, 因为这个 w 是 个二维的,如果我们没有这个这个那个条件的话,我们算出来后面这一部分,它实际上是一个一维的一个函数组,一维的函数组和这个二维二维的数值它是不能直接操作的,所以这里我们把这个维度给保留,维度保留了之后,后面后面这个东西的话,实际上它就是一个。呃, 二维的数值,实际上就是啊,一个数值里面有一个元素,这个元素呢又是一个函数,就这个意思,这样的话才能把把后面这些东西添加到 w 一 里面去, 这样的话我们就能生成 w 二了,也没有报错,没有报错看 w 一 w 二, 这里是有一点问题的,我们看一下。 嗯哦,这里注意 open 这个函数的话,它里边有三个参数,第一个参数就是我们原来的那个数值,就说我们啊这个数值我们如果是上下拼接的话,那个上面那一块数值是什么? 后面这一部分呢?是第二个参数,第二个参数是指我们要拼接过去的那个数值是什么样子?其实还有一个参数,第三个参数, 这三个参数就说我们是竖向拼接还是横向拼接,这个例子就是竖向拼接,把这一把这一行啊放到这个 w 一 这个数值下面去,是竖向拼接,所以这里就是填零,横向拼接,这里就是填一了。这时候我们再看 w 二, 这样的话就把后面最后面这一行这一行给添加到这个原本的这个 w 一, 原本的 w 一 就是前面两行,现在我把第三行把添到添到这个前面两行下下边来了, 然后我们再看 j n w, 哦, w n 二, 哎,这 这个操操作实际上是两两复制的操作啊, g n 逗号, w 二, n 后面也是对应的,对应的一个逗号前逗号前后都有值,这样的话 g n 就 啊这个值, g 的 这个点的个数就赋给 g n, 然后我们最最终的提取出来的这个权重的这个个数,就把它复制给 w n 二, 嗯,然后我们还可以打印,就像我们上面这样去打印 啊,这个就是提取的比例,提取的比例就是我们最终的提取的这个元素的点的个数,除以我们啊最开始初始生成的那个网格数,这样能提取,能衡量我们的提取比例,这是我 y y 出来的指标。 后面就是 k 等于多少啊? b 等于多少啊?真等于多少啊? w n 等于多少。这里的 w n 写成 w n 二吧,这样好一些, 这里运行一下,可以看到它去提取比例是很高的。然后 k, 我 们这里取三, b 的 话是七,这 n 是 四十九个,最开始我们生成了四十九个点,最终呢我们生提取出来了六百六十七个点,这个效率还是蛮高的,当然随着这个 k 这个维度变大,这个效率会降低。 嗯, 好,做了这个之后,后面我们就可以嗯,做图了,因为我们上面生成了一个新的函数,我们就可以用一下这个函数, 这些其实就是标题了,里面的数就是,嗯, b k 减一,真 啊, t 就是 文本的意思, t j 的 话就是我们这个格子的这个这个格子,这个子图的标题,一会儿我们会把这个格子也会画出来, 嗯 嗯, w w n 呢? w n 就是 我们初识第一步提取出来的这个点的个数, w n 二呢,就是我们最后生成的这个权重向量或者点的个数, 我们可以打印一下,我们先打印 j, 然后是 w, 然后是 w 二,然后是 t j, 然后是 t w, 然后是 t w 二, 我们可以作图看一下,好出来了, 看一下,我们初始是生成了四十九个网格,四十九个网格,然后呢初始从这四十九个网格里我们提取了二十八个均匀的这个权重,这个是二维的,假设 z 等于零的话就是 w 三等于零, w 和 w 一 w 二生成的点的个数, 嗯,其实 w 三的话就是用一减去 w 一 加 w 二就可以了啊,这个点的个数和三维点的个数数量是一样的, 这里就是我们最终提取出来的点的个数,画成了三点图,可以看到它中间有些这种空缺的地方比较均匀,对正的空缺的地方,但是这个不是我们想要的,不是我们想看到的。 如果说这个 b 不 等于七, b 等于六的话就没有这个空缺,这个空缺的话是 b 等于七的时候产生的,你看 b 等于六的时候,咱们可以看到就没有那个空隙的点了。所以说这个方法还是有问题,后面我们还还有还得想其他的办法再优化。好,这个视频就到这,谢谢大家。

pic 中的 list 和 doc 都是现行数据结构,它们有什么区别?在对比之前,先明确一个基础概念,队列站图树等都属于逻辑层面的抽象数据结构。真实的计算机物理存储层面,仅存在数组和列表两种。列表的底层是动态数组,需要占用连续的内存空间,支持随机访问。 doc 的 底层是快级双向链表,整体不要求连续内存空间元素以固定大小内存块为单位,分散存储,快与快之间通过指征记录前驱和后继的内存地址,支持高效的两端操作。 所以它们的区别本质为竖组和列表的区别。在进行尾部操作时,如果竖组不需要扩容,那竖组和双向列表都能直接操作,时间复杂度均为大凹一在进行手部插入操作时,它们的区别就体现出来了。对于双向列表来说,与尾部操作一样,只需要建立新元素,调整首尾节点的前驱后继时针即可。 而数组则需要将每一个元素依次向后移移位,腾出内存空间,元素越多,移动成本越高。简单来说, disk 适合需要频繁随机访问以尾部操作为主的场景, dk 则更是配需要高频首尾操作无需随机访问的场景。

各位学员大家好,我是本次课程的解说韩牧向阳。今天我将带领大家走进 python 变量与简单数据类型的精彩世界。掌握 python 变量和简单数据类型是开启 python 编程大门的关键一步, 它能让你更加深入地理解开放的运行机制,为后续的学习打下坚实基础。让我们一起在这趟学习之旅中探索开放变量与简单数据类型的奥秘吧!现在就让我们正式开始! 本次课程目录分为上下两部分,上半部分包含四个关键内容,首先明确学习方向与预期成果。 接着介绍变量基础,掌握命名规则与赋值使用。再深入字幕串操作,提升数据处理能力。最后学习数值类行为复杂计算打基础。后续还会有注示与调试等内容。 本次课程目录下半部分包含三个部分,首先是注视与调试,学会此能规范代码并解决常见错误。接着是课后实操任务,通过实践将理论知识转化为实践能力。 最后是总结与拓展,对课程内容总结,并进一步拓展知识,巩固学习成果。 我们已经了解了课程目录,现在进入核心目标与学习路径这一关键部分,明确核心目标能让我们清楚学习排放变量与数据类型要达成的具体能力,而清晰的学习路径为我们指明了学习方向和步骤。 接下来让我们一起探究具体的目标和路径都有哪些。本课程有四大核心目标,在变量操作方面,要掌握变量命名的构成规则,避免使用关键字,采用蛇形命名法,理解赋值逻辑,领悟标签思维, 明白变量可动态更新数据类型。应用上需熟练使用字母串的大小写转换、空白处理方法,掌握 f 字母串差值,还要精通整数和浮点数的运算及类型转换,让不同类型数据灵活运用。 代码规范与调试也是重点,学会用进行单行注示,能识别并修复名称、语法、类型等常见错误,掌握基础调试方法,保证代码的正确性。 最后通过 hello world 的 进阶练习,综合运用所学知识,用 f 字母串和 s、 t、 r 避免类型错误,实现从理论到实践的跨越,完成完整代码编辑与运行。 学习 python 有 清晰的路径,首先是基础构建的变量认知,从变量本质的标签思维出发,掌握命名规则、赋值语法和动态更新特性。 hello python 势利能帮助我们熟悉变量基本操作,就像搭建房子,打好地基。 接着是核心拓展的数据类型,依次攻克四幅串和数值类型,重点突破 f 四幅串差值与类型转换难点,这是在地基上搭建房屋主体, 然后进行规范提升的注示与调试,掌握单行注示写法和错误识别修复方法,如同给房子做好安全防护。 最后是闭环巩固的实操任务,通过四类实操任务在文件中编码练习,将理论知识转化为实践能力,就像为房子装修入住。

今天分享一个数据标注的软件,让你数据标注效率提升一大截。首先复制图片存放路径,然后放到这里,点击加载左边,这里可以看图片的信息。下面是可以标注的类型, 这里配置的是标注时的类别,终于把类别转成序号,是最终生成的数据,同时也要在 data 点 x, l, s, x 里配置。这里的配置是显示在标注图标上的类型,最左边一列是类别,右边是具体的类型。第一行的默认类型后面只能放一个,其他行可以放多个。这里有矩形标注和多 边形标注。矩形标注鼠标长按拖动选择区域,在下面选择需要标注成的类型,点击删除所有标注,可清理该图片上的所有标注。现在演示多边形标注,这里是可以使用的快捷键,鼠标点击画边,画好后按下回车键确定形状。 介绍一下矩形的 ai 标注。三是 ai 识别当前图片标注,这个需要保存。四是 ai 自动标注会把每张图片标注后保存并切换成下一张图片,这里需要提供模型才能自动标注。训练模型放在这个 model 文件夹下,注意模型的类别要和 names 点 t x t 和 data x l s x 里的类型要相同,不然用不了。这里有点长,我直接加速 a few moments later。 在 使用的 ai 自动标注时,可能有些没有标注到,所以需要手动标注。少数没有标注到的数据,需要软件的关注私信主播。

拍照零基础入门第一集,今天我们正式来学习拍摄的第一课时啊,主题呢是变量以及数据类型,那么从这个主题我们是可以去看到的,今天的一个重心点会放在变量这一块以及数据类型这一块,这是属于本节课的一个重点,除此以外呢,我们还会去用认识到其他的一些呃呃,知识点, 比如说咱们这个注试啊,老师会稍微给他带一下就 ok 了,还有什么呢?还有就是我们在进行咱们这个变量存储数据的时候呢啊,变量之间的一些灵活使用,包括它的一个规则规范,老师都会去给大家去讲一下。好,那么在此之前呢,来,我们首先先打开一下我们上节课的这一个 是拍叉,对吧?这个拍叉的话,老师只是说给他去配置好了这个代码,包括写了这个代码,大家可能还是不太理解这个代码的意思,它到底是什么,就有怎样的含义在里面,对吧?好, 那么首先我们先来看看啊,在我们这个左侧栏这里的话,会有一个文件夹,这个文件夹将来就是我们的这个项目文件夹,之后你要去写的这个文件或者代码都是放在里面的。 好老师把之前的那个呃代码都给它删除了啊,那么在此基础的话,老师希望对我的这个代码有一个合理的这个管理。好,那么我会在这个四十五期基础课程这里右键它去新建一个, 好老师不会去选择新建一个呃, python 啊,不会一上来就是一个 python 啊,而说去创建一个文件夹,来大家认识一下啊,咱们第一个的话是属于文本文档,在老师给到大家的这个作业就是 t s t 结尾的就是选择第一个文件格式去给大家去进行这个创建 啊。然后其他的比较常用的就是第三个,我们这个文件夹你可以去用来管理你每节课的这个代码,会更加的好看一点,不然的话第一节课第二节课的代码混在一起你就分不开了,那文件夹也是一个比较好的一个管理方式。其次的话还有一个 python file, 这个 python 这样呢是我们接下来就是主要会去接触到的一个文件格式,以点 p y 结尾的。好,之后还有很多的一些文件格式,我们后面会陆陆续续去接触到,这个我们先不着急。好,那么在这里的话老师会选择去创建一下这个文件夹,在这里我会去进行这个命名。比如说今天是第一天,我们来个对零一 今天我们学习的一个主题是变量加数字类型,这个命名老师目前是没有对大家有什么要求的,你可以有中文,你可以有这个英文字母,包括这个空格都是可以的。那么到了后期,其实我们如果说一整个项目要上传服务器的话,他是不支持中文的, 所以有讲到变量在进行命名的时候,好像用中文也是可以,但是呢通常不用中文来进行命名。明白,好,这里我有一个文件夹之后呢,我打算把第一节课的一个代码都放进去,比如说我给他起个名字啊,零一第一节课老师就写一个第一个程序, 好,第一个程序 py 文件创建好了之后呢啊,在这个地方我会写一个 print 去进行打印输出。 好,这里上节课已经给大家去说过了,对吧?我们这个 print 它的一个小话当中放怎样的内容,它就会在你的这个弹出来的一个控制台里面去输出怎样的内容。这个是来,比如说老师输入一个一二三,这是老师给大家去说过的。 来,老师比如说把这里呢给他写好之后,右键去进行运行,你注意这个是右键啊,右键去进行运行的意思。好,给它点击之后呢来看看,这, 这就是我们的一个结果,结果他是有时候会反应的比较慢一点啊,这个控制台也带大家去认识一下。首先第一个就是我们第一行的这个 f 盘之下,这个很明显是你在哪个盘符之下 的一个解释器路径,就比如说我们当前运行咱们这个程序其实不仅是靠的是拍叉,还用了我们这个解释器,那在哪里用呢?就是在这里产生了运行的一个效果,他也出了一份力的。明白, 好,然后再往后面走呢,是我们当前去运行的这个零一第一个程序它的一个路径,文件路径。明白,从 f 盘开始的嘛,四十五期基础课程,然后到我们这个零一第一个程序。好,这个是第一行,就包括解释器的一个路径和文件的路径。其次的话再往下面走的话,是属于我们的一个运行的一个结果,来往这看,这是不是我们的一个运行结果? 我选个绿色的啊?啊,这是我们的一个运行结果,就是打印的输出的这个一二三输出好,这个毋庸置疑啊,就是之后你就是不管是基于怎样的程序的运行,他都会有一个结果打印在这个控制台,其实你你如果说比较就比较专业的一些程序员,他是不需要这个控制台的,他可以预估啊,他自己的写的这个代码他心里是有数的啊。 好,一般就是不会通过控控制台的这个呈现效果,他只会看你的这个功能最终有没有去实现好,然后再来看我们最后还有最后一行,这个代码是一个提示,这行英文是一个提示 啊, process 它就是进程已经完成的一个意思,也说当前这个程序它已经执行成功,已经完成。也说大家看到这句话你就得知道啊,咱们这个啊程序它是 ok 的, 它是没有任何问题的,明白 它是运行成功的意思啊。好,那么讲到这里的话话又说回来了,我们这个 print, 老师,我知道它是想往里面带一个一二三,就可以去将这个一二三进行输出,那么这个 print 它到底是为什么起到了一个输出的一个效果呢?这个是需要大家去纠结的一点,对不对? 老师为了去给大家去讲明白这个 print 为什么要去进行这个,呃,就是他是怎么去进行输出的话,我会加一个井号键,这个井号键的话大会不会打?井号键会不会打?他是一个快捷键,咱们才能够去进行这个输出的。嗯哦,我搜一下啊,这个键盘我有点找不到在哪了,我看看 这个,呃,井号键大家会打的同学把这个快捷键告诉老师,来在这个公屏告诉老师,老师顺带也找一下哈,就是之前有去给大家去准备一个键盘 a, 在 这找到了啊, 好,这个是老师给大家准备好的这个键盘,来看看大的一个回答,对,就是 shift 加上这个数字三,对吧?好,可以看到我们这个数字三,它是有一个减号键,减号键和三它共用的是一个按键。好,你要打出这个减号键的话, shift 和三同时去按就能打出来。好,那么我输入这个符号是为了干什么呢?来看看 输入这个符号后面我会空的格,然后在这里呢去给大家去解释解释一下咱们这个 print 打印 print 这个单词是怎样一个 解释。咱们这个代码的意思,也说现在老师要用中文的一个意思,告诉大家 print 它到底是怎样的一个功能,它到底为什么可以去输出小括号里面的这个内容呢?好,那么简号键的一个后面来看老师怎么去操作。 简号键后面我就会说,告诉大家这个 print 啊,它原来它的原来的一个意思,它翻译过来是打印的一个输出的一个意思。好,根据它的意思,你能够理解 它所带来的这个作用,对吧?如果说你要归宿一下 print, 为什么这个单词会有这样一个神奇的效果,你看老师我换一个其他单词它就不行,只是我把这个 t 去掉,现在我再去右键去运行的时候,你会发现,哎,一二三好像是不能输出了。好,这个很明显像我们这个 print, 像这样一个单词, 它就是被我们 python 已经给它规范好定义好,规定了,人家是一定得是 print 这一个单词才带有输出数据,打印数据的一个效果。明白,好,那么老师给大家去给到这层意思啊,就是说 print 是 咱们这个是 python 中专门用于去 输出数据,就是输出咱们这个小挂的这个内容的单词,那别的单词它就不行,其实这个的话也是算作是 python 里面的一种代码规范,嗯,如果说我们要就是纠结的更加深入一点的话,其实后面要涉及到跟函数是相关的。呃,这个代码有没有点小,我所以给它调大一点啊,稍微调大一点 啊,调个二十看看,好,稍微大一点哈,好,那么这里的话就是对同学们,呃,就是跟同学们去解释一下咱们这个 print 它所带来的效果,为什么是 print, 而不是别的一个单词,包括很多我们在进行就是编辑一些其他代码的时候呢?很多的一些单词它已经是固定好的, pad 已经给你写好了,你只能根据人家已经写好的东西,你拿过来用。明白,好,那么在这里老师提到了啊,第一个是 print 它所带来的这个效果,这个单词的一个效果,第二个就是我们井号键,来看到我们井号键空格后面可以去接一些中文, 中文这个中文类似于像我们这一行代码,它的一个解释说明一,比如说我们去啊,去超市里面去买一个工具,对吧?这个工具你不会用的话,那么它是会有一个说明书的,它会附带一个说明书,那么这个井号键后面所跟的一些灰色的一些词组,它就是对于我们这个啊,这行代码它的一个 说明书,给它说明一下这是什么意思啊?让大家更好的去理解好。然后它在进行运行的时候,这个注视啊,这个所谓的这个灰色的一个字体是不会打印再控制它的,它不会有任何的这个执行效果,大家明白这个点就可以了哈,那么注视老师就讲到这里,就是不讲太多了,重点还是放在我们这个变量这一块,大家 ok 吗? 好,除此以外呢,关于我们这个代码的一个规则,老师还要讲一个点,就是大家有注意到我们在写一些打印输出的时候,比如说 print, 在 进行输出的时候, 来,我们说出同样还是一二三好,你会发现有一点点不太一样,哎,老师,我这里写的一二三好像是能够去输出,但是这个一二三好像是不行的,来,我们来运行看看, 哎,确实他会有一个问题,这里呢会去给你报一个错,并且呢你这个运代码运行的效果也没有了,对吧?好,首先的话他会提示你啊,教大家去看一下,首先他会提示你是哪个文件报的错,这里 file, file 的 意思就是文件,那么 具体是哪个文件呢?在 f 盘之下的,哎,这个路径之下的这个零一,哎,这个文件报错了,那到底是哪一行报错呢? lie, lie 就是 行的意思,那就是第五行报错,来,你来数一二三四五,哎,确实是第五行,这左边呢就是行号。明白, 好,那么具体这一行报什么错了呢?来往这看,它这里有一个垂直肩括号,那具体就是指出来了,哎,它是这个位置报错了,那么它指的是谁?来看看这里指的是谁?很明显就是这一对括号。 明白这个括号是什么意思呢?你发现这个括号和之前的括号不一样,这是因为老师在英文输入法之下括号长这样来,现在 shift 给他点击一下啊,给他按一下,再给他输入一个中文的一个括号,好,他长这样,那很明显中文支持吗? 中文是不支持的,英文才支持,所以老师要给他去讲的一个事情就是什么呢?咱们咱们这个代码的规则,我们在任何写代码,编辑代码的一个情况之下,一定要去选择英文的一个 就是英文输入法,嗯,英文状态的一个输入法。明白,就是任何啊。给大家总结一下,任何编辑代码的一个过程中,一定是需要咱们,呃,需要一定是在英文状态 下去进行的,嗯,你不能是中文,那么在这里的话包括哪些东西呢?就是英文它包括哪些东西?你包括一些括号,括号还有什么引号啊?这些都是最基本的,还有一些就是咱们这个, 嗯,咱们这些问号,你看这个问号中文的长这样,那英文的长这样,很明显就是不一样的。所以大家要注意一些,就是有符号它一个区分, 符号的这个区分好别的,你只要注意一下这个代码规则,那么之后你在写代码,呃的一个过程当中会避免大部分的一些问题,嗯,你要写代码,你肯定不是乱写的,你肯定有一个规则,一个规范的,对吧?好,那么这里是老师给大家讲的,呃,咱们第一个程序里面所有的内容,大家 ok 包来看看 piston 是 一个弱弱类型的这个编程吧,它是一个强类型的中文要去设置在这个编码格式的吗?现在目前还是不需要的,还没有设计到这一块啊,老师课堂上没有讲的话,那么之后才会给他去扩充,嗯, 这里 ok 不? ok 的 话来给老师扣一个三 ok 的 话给老师扣一个三。那么接下来老师给大家去介绍一系列的一些,嗯,快捷键吧,给大家去介绍一些快捷键, 有问题,把问题提出来啊,来给大家介绍一些大家常用的快捷键, 大家也可以帮老师去想想,就哪些快捷键老师没给他去补充到来。首先的话,常用的一个 ctrl 加 c, 那 么这个是什么呢?很明显大家都会用,对不对?它是复制的一个效哎,复制,复制好第二个,第二个是 ctrl 加 v 啊,加 v 什么意思?粘贴吧, 粘贴 cv 工程师对吧? cv 程序员直接粘贴复制好,还有一个 ctrl x, 那 么它是一个剪切的一个意思,剪切 好,那么还有啊,哦,这个同学提到了啊,成都的这个黄泽轩同学,他提到了一个 ctrl 加斜杠,这个的话是老师也是在这里给大家去补充的,它是一个注视的一个效果,注视指代的就是,哎,咱们这个什么呢?它指的就是 我们对代码进行的解释说明,那比如说是第一行,他就是一行注试,第四行也是一行注试好,那么注试也是有快捷键的,你比如说第五行代码,我想要把它注试回来,我就把我的这个鼠标,它有一个闪动的一个光标,对不对?好,把它停留在第五行,然后我康手加斜杠, 他就注视回来了。好,还有啊,然后你比如说想要快速注视掉的话,哎,我又把这个光标停留在第五行,然后再按一下 ctrl 加斜杠,比如说 ctrl 加斜杠呢?他可以注视,也可以取消注视,他是两个合二为一的。明白,取消咱们这个注视的一个效果。 还有没有 ctrl s 去保存啊?这个都是一些,呃,大家就是最都是需要去补充一些最基本的啊。 mac 的 一个注式, mac 的 一个注式,你下课找老师,老师单独给你一份。对, ctrl 加 s, 它是可以去保存,它用于保存一些文件里面的数据,对吧?你比如说你去编辑了一个作业啊,你忘记去写,呃,按一下 ctrl 加 s 啊,下一次给它打开之后也发现里面,哎,老师,我刚刚写好的内容怎么没了呢?因为你忘记保存了。好,还有什么 呢? ctrl 加 z, 它可以回撤上一步。上一步,你比如说老师现在按一下 ctrl 加 z, 哎,是不是把我们刚刚老师写好的给他回撤掉了?嗯,回撤上一步啊,老师要重新打一下。好,然后还有一个啊,还有一个大家不太知道的,哎, ctrl 加,看来大家知道很多嘛。 ctrl 加 a 可以 全选, 全选还有啥?嗯, ctrl 加。还有个 ctrl 加 d 啊, ctrl 加 d 可以 向下去复制, 向下下去复制行。嗯,这个是老师上课可能会用的比较多的,其他老师就不做过多的一个补充了。好吧,你比如说,呃, ctrl 加 d, 老师,大家去试一下,像我们第二行的话,把光标给他停留在第二行,然后按一下 ctrl 加 d, 嗯,他就会向下去复制这一行,再 ctrl 加 d 来看一下这个效果, ok 不 啊?这个的话大家看看。好,那么第一个程序老师就讲到这里了,嗯,大家有没有就是其他的需要补充呢? 他手抓笔啊,这个之后我们如果说会在课堂上遇到的话,再给大家去补充啊,这些就先先不说了,先不说了。好吧,目前的话大家就是这些常用的八个快捷键,大家可以去尝试去熟练,去给大家操作一下,这个其实不需要去记的,但能用上的你就用,对吧?主要还是自己方便自己去写这个代码了。 好,那么来我们熟悉一下我们这个程序,包括我们这个派叉姆之后呢,来进入到我们第二个环节,就是关于电量的一个认识以及使用了。电量呢,它是一个非常重要的一个知识点, 他是会贯穿我们整个 python 内容,包括包括我们之后的这个爬虫内容,基本上每一个程序他都脱离不了 电量他的一个使用。那么在学习这个知识点之前呢,老师要跟大家说一件事情,比如说关于某某知识点,他里面的一个概念永远都是非常重要的,我们所有的这个,呃,他的一个操作,包括他的使用都是基于大家理解了这样的一个概念,这样的知识点你理解他之后,你才能会会去用他。 好来看看变量它是怎样的。来,我们往下翻,在这里呢,我们是就是举到了一些生活当中的一个例子啊,我们没有去接触过变量的话,那我们就只能从生活当中的一些例子当中去引入这个变量,好来看看。 像我们变量这个字眼啊,大家是陌生的,但是不着急,其实在理解某个知识点的时候呢,你把它通俗给他记一下,就是非常 ok 的。 来看看 变量啊,他就类似于我们在生活当中,大家可以去看到很多的一些容器,什么叫容器呢?他只要能够去容纳一些物体, 可以去容纳一些东西,可以去装东西的,那他就称之为容器。那讲的通俗一点的话,你比如说,嗯,比如说有这么个人啊,他名字呢叫张三好,他就进入到一个小卖部啊,他去买了一瓶啊,老师就不打广告了,就买了一瓶水, 那么这个水的话,大家可以看到是一瓶水,那么一瓶水水是不是作为一个物体被放到了这个瓶子当中?你比如说, 你比如说这里是不是水,对吧?被放到这个瓶子当中,那瓶子是不是作为容纳水的一个容器而存在的?明白。好,这的话就以张三下单之后呢买了一瓶水为例。好,那么可以可以很清楚的理解到瓶子在我们这个, 就在我们这个喝水,你比如说买水的一个过程当中,他可以起到怎样的作用?他不是说直接把水拿在手上,而是装在一个瓶子当中,那么装在瓶子里面呢,可以方便我们去携带这个水。 那张三下班了肯定要回家,对不对?他没有喝完,他可以拿着这个瓶子把水带回家,那么这个就是咱们瓶子当中也说生活当中瓶子他起到的这么一个作用。好来举举到这个例子啊,比如说矿泉水, 老师先不要求大家去理解变量这个概念,你先理解。老师在这个例子当中,大家理解了这个瓶子的一个作用,不?来给大家看看啊?我们矿泉水它的这个瓶子是怎样的作用?对于水来说,对于它容纳的这个物体来说,它是起到一个怎样的作用? 是不是去容纳这个物体?容纳这个物体, 也就是所谓的把水装在里面装水好,那么装水的话是不就是方便水的一个携带?这里是老师举到的一个例子, 大家理解一下矿泉水瓶子它的一个作用。好,那么同理,在我们这个程序当中,老师在上上节课是给大家去说过,对吧?我们这个计算机里面是有哪些组成?计算机有哪些组成?它是等于 等于什么?老师,刚才,呃,之前有去提过,对不对?一会试一下。之前有去提过。对,我们是由软件啊,这个同学回答的非常的标准。呃,它是包括 cpu 以及中央处理器,还有我们这个什么什么 内存,呃,咱们这个处理器在里面的,那么给大家细分一下的话,就是软件和硬件,对不对? ok, 那 么在我们这个硬件当中,老师是有去提到有这么一个东西叫存储器。好,存储器的话,嗯,细分下来的话,一个是内存,一个是外存,那很明显它可以去存储一些文件以及一些数据。你比如说我们有一个视频,有一个音频,你要存到这个存储器当中,是不是会去选择一个内存卡去进行这个存储, 对吧?好,那么大家可以发现我们在这里讲到了,讲到了硬件当中有个存储器,它是可以去存储数据的,这是我们能够去理解的。嗯,内存卡去存储 数据。好,这个是我们能够看得见的一个存储过程。好,那么在程序当中,你比如说我要去运行某一个程序,其实里面呢?在这个程序当中肯定会涉及到很多的一些数据,那么这些数据在某一个程序当中想要去进行存储的话,我们不能说啊,老师,我这个程序拿一个内存卡过来,让我去存一个数据吧, 这个是不行的啊,那么我们在程序中会去选择什么呢?中去存储咱们这个数据数据,老师给大家去例举一下,你比如说是一个视频,或者说是一个音频,它都是算数据的。 好,那你在程序中正在运行的这个程序中存储数据, ok, 不 能去选择内存卡,我们就可以选择一个概念叫变量这个概念去进行存储。好,那么变量去存储 咱们这个数据, ok, 它就非常类似于矿泉水瓶子,它一个作用矿泉水瓶子,那么张三他去买的这一瓶水,你可能啊?张三回头又想一下,哎,这瓶水好像不够喝的,家里也没有水了。好,那么他会想,他会想着就是多买一点,对吧?他可能会买一箱,比如说这就是张三所买的那一箱水。 好,那里面一瓶一瓶的水来,比如说在这个地方,这是第一瓶,第二瓶,第三瓶。好,老师简单的给大家画一下,嗯,那大概呢?就是这个样子, 大家可以看到它是一个十二,就是一箱是十二瓶的一个,呃呃,就是,呃,咱们这个矿泉水,对吧?好,看看。 好,那么像我们这个变量在我们矿泉水当中的一个例子啊,就是这个例子当中它是充当怎样一个角色呢?来看这里, 那我们一个一个瓶子就是一个瓶子吧,这也是个瓶子吧,这也是个瓶子,这些瓶子就类似于变量在程序当中所起到的一个作用啊,变量在程序当中所起到的一个作用,而所谓的这个一箱一箱,那就是更大的一个存储的一个空间了。 好,那么可以发现一箱里面是有十二瓶水箱,第一以箱为单位,第二呢以瓶为单位,好,那么它的空间是从大到小的过程好,那么变量在这个 这个过程当中充当的就是屏这个单位,明白屏这样的一个单位,如果说大家可以理解的话,那么这样一个箱其实也可以理解成内存卡,内存卡 你如果说要理解的更加深入一点的话,那么我们电量在存储的一个就是存储数据的一个过程,就类似于就相当于是在内存卡当中去开辟,去画出来一块空间,好,然后里面呢去存储我们这个水或者所谓的这个数据进去。明白,你看现在是不是画了很多块区域, 指代的就是说变量可以由多个变量,然后去存储多个数据,这大家能够理解吗?这大家能不能理解来理解的,就关于概念这一块,老师最后再给大家去做一个总结,就关于变量的一个作用,概念是什么啊?概念作用是什么来理解的,同学来给老师扣一个四,扣一个四,总结一下,咱们这个 变量它的一个作用是什么?它是不是我们我们在程序中去存储数据的某一个?呃,某一块啊?某一块 内存空间,这里的话是需要大家去想象的,因为这一块内存空间是大家看不见也摸不着,所以你要想象一下巴老师刚刚所说的。 嗯,首先大家看一下所,呃,老师刚刚所说的这个大框框响亮成是一个内存卡,好,那么在里面 一块一块的,那么这个的话就是我们这个变量在这个内存卡当中会去划分一块区域出来,这个是我们的这个, 嗯,这这个圆圈他所画画出来的这一块区域。好,那么这块区域呢?可以看到他比咱们这块区域要大,那么最终他到你大还是他小,都是取决于你这个数据的大小的。比如说你存你你这个大一点的空间存出来的是一个视频,是一个 e g b 的 一个视频,那么他所画的这个大小,那肯定要大一点你才能存进来, 对不对?好,那么像我们这个小一点的话,你可能是一个图片了,图片肯定就没有那么大了,那他画的这个空间就会小一点,但也可以理解什么呢? 理解成你比如说我们现在有一个内存卡,对吧?这个内存卡里面你要去存一个视频进去,你不可能就是说直接一个 mp 三就放到这个,呃,放到这个内存卡里面,然后占满整块内存卡那个区域,不可能吧?你不可能就是一个 mp 三就把你的这个内存就占满了, 肯,肯定不会这样子,你除非说你这个空间太小了,对吧?好,那么它会怎么样呢?它就是利用变量这样的一个概念,在它里面划分一块小小区域,然后把咱们这个视频存储进去。 明白,嗯,那么视频就占这么一点点了,不会占很多的一些空间了。好,那么这里理解一下,变量的作用就是在程序当中存储数据啊,时,存储数据时去开辟 开开辟的某一块内存空间,这大家能够理解。不对,大容器里面可以有很多的一些小文件。 好,那,呃,有问题的话提问题。对,那么核心点就在于存储这样一个动词,变量就是存储数据的一个。呃,意思。明白,好,那么理解了,变量的概念中呢?大家如果说觉得概念有一点点抽象的话,老师还是通过具体的这个代码给大家去进行进一步的解释说明,好不好?来 来,老师给大家说一下啊,在我们变量的一个使用中,大家要注意有一个固定的一个格式, 固定格式,固定格式就提前告诉大家了啊,它是变量变量先写,写好了之后呢一个等号,等号,然后呢它的右边会接一个数据。好, 看到这样的一个式子啊,大可能就有点发懵啊,什么是变量?什么是数据?我们在写这个式子的时候应该怎样去呃,怎样去定义这个变量,怎样去定义这个数据,就有点发懵,对不对?好,那么老师就把里面的组成的这两个点告诉大家,变量你不能随便写,你比如说现在我们就写一个, 写一个,一作为变量可以吗?不行,他不能随便去写的,他其实会有一个规则,会有一个规范的规则, 也就是说我们在这个内存卡当中啊,你可以去划分这个区域,对不对?那划分这个区域,那里面必然是存储了一个数据。好,那么后续老师我比如说我要把这个 n、 p 三这个视频取出来,从内存卡当中给它取出来,怎么办? 肯定是要知道这块区域叫什么名字,对吧?啊?这块区域,你比如说叫张三,好,我知道了,我的这个数据被存储在张三这块空间里面。好,那我就根据这块空间名字给他把数据取出,是吧?好,那么注意变量啊,它的这个规则就是在起名字的时候,你给变量起名字的时候遵守两个点,第一个 它由什么什么去组成,由咱们这个数字字母下划线去组成。 来,注意一下,这里是三个组成部分。第一个是数字,大家都知道数字怎么打一、二、三,这个就算数字字母 a、 b、 c, 这就是字母下划线的话是 shift 加上一个按键。啊,看这里,咱们这个按键呢?呃,在这啊,在这 你单打是打不出来的,就这个按键单打是打不出来的,你要加上一个 shift, 看到没有?这个 shift 加上这个减号键,你才能打出这个下划线来。你比如说老师打一下。 好,那么它是由数字字母下划线去组成的。你比如说来,老师命个名字叫 a 一 杠可以吗? a 一 杠可以吗?大家觉得可以的来给老师扣一个一,觉得不行的给老师扣一个二。这现在我给咱们这个变量起了个名字,也是所谓的变量名,给它命名成 a 一下划线可以吗? ok, 它是可以的, 它是可以的,你看它的这个组成没有问题吧?由字母,由数字由下往上去组成, ok, 是 没问题的,它但凡多一个都不行,你比如说啊,我,我再多一个吧,我再多一个感叹号, 那这个就是超出这三部分以外的一个特殊字母了,它就是不支持的,那具体到底支不支持呢?来,我们把这个格式给它套进来,这个就相当于等号它左边的变量,那么在它的这个位置接上一个数据嘛?数据该如何去定义? 在我们现在已有的这个知识储备当中,我们就定义整数,整数类型,你比如说我们在生活当中 十接触过吗?十,像它作为一个数字, ok, 目前啊,老师说的是,目前咱们如果说要把某一个 数据存储到变量当中,可以以十或说以百这样的一些数字去充当这个数据。明白,好,那么现在老师就存储一个一百,看能不能存储成功。如果说通过我们这个等号它存储成功了,那么接下来我们现在想要把 a, 想把这个一百取出,只需要在 print 打印的时候把 a 一下线放进去就可以了,来我们这里去运行,看能不能取出一百。哎,老师可以取出一百,那么就证明了什么呢?证明这个过程是不是 一百就是第八行这个代码是一百,通过等号存储到了 a 一 当中,对吧?好,那么打印 a 的 时候就打印出来了一百这个数据,大家没问题吧? 好,那么打印出来之后呢?这个是属于变量的一个命名规则,那么刚刚老师也提到了,有对就会有错,对吧?来,我们再往下面走,看其他的命名,它是 ok 的 吗?来往这看,呃,你比如说老师起个名字叫 咱们这个一,呃,咱们来个二 b, 老师不是骂人,哦,那就让大家看一下,帮老师看看第十一行,比如说老师要存一个两百进去,大家觉得 ok 吗?十一行存一个两百进去,大家觉得 ok 的, 给老师打个一,觉得不 ok 的 给老师打一个二,这个空格不打也不行吧? 这个空格,你说这个空格是吗?这个空格可以可以不打的,你看在老师这里不打这个空格也是 ok 的, 也是 ok 的, 但是老师为什么要加呢?加上是因为老师首先是老师的个人习惯,第二 这后面如果说你不加的话,你会觉得这个格式不是好看,这代码不是很漂亮,就注意一下这个美观性吧。嗯,打打就是好看一点,就是为了好看一点,觉得打和不打都一样 好,对,看着清晰吗?你,你隔开了一点点了吗?好,那么现在可以看到其实是会有问题的。你看我们第十一行,它是有个下划线来进行运行的时候呢?它是不是出现了这个错误,并且我们这个垂直间框,哎,就指着这个字母 b, 哎,出现了这个问题,你看就它带个红色的下划线,对吧?啊,那么这里很大的一个问题,就是咱们第二个规则讲到, 其实我们在进行命名的时候,数字是不能打头的,就是不能写在第一个。明白,你但凡你这个二,你看比如说 ctrl 加 b 一下,这个我就注视一下好不好?你但凡你把这个二往后面挪一下,哎,现在去右键去运行, 哎,好像就 ok 了,数字可以加,但是呢不能去打头阵。明白,不能放到最开始的这个位置,你看我这里也加了,没报错啊,但是他放在最开始的就是不行的。好,那么在命名的时候呢,就两条规则,一就是由数字字母下划线去组成,就是别的包括在内都是不行的,因为现在老师再给大家去再举个例子啊,啊, 再举个例子,嗯 a 下划线,咱们来一个,嗯, a 下划线,咱们来一个嗯 a bb。 二,咱们来个井号键啊,井号键就起到一个注视的效果了啊,那么我们来一个杠吧,来一个杠,来这个杠,大家可以看到啊,它既不是数字,又不是字母,又不是下行线,那它就是特殊的这一部分,那么它就不支持了。明白,好,那么这个是一个命名错误的,一个命名错误, 错误的一个例子,大家可以看看。嗯,具体的话就遵守一下两条规则嘛,一二遵守这两条规则就可以了。电量命名的时候要小写吧,这个不区分大小写,就是大家可以用大写,也可以去用小写。 呃,具体在使用的时候,你比如说,嗯,现在是一个 a 里面去存储一个数据,老师存个一进去,好,你再用一个大写的 a 去存储一个数据。二,好,那么现在来老师去 print 打印 a, 好, 大家看一下啊,咱们十七号,大家猜一下他会打印一还是二,大家觉得打印的是一还是二? 觉得是一,来给老师扣一个一,觉得是二,给老师扣一个二,大家觉得是一还是二。来进行右键去运行,揭晓答案,它是一个一,明白它是个一,那就证明一件事情,就是大小写的话,它是会,就是需要去进行区分的。明白 大写就是大写,小写就是小写,在命名的时候如果是小小写和大写,那么他们两个是完完全全不同的一个变量名。好,这个是结果是一啊,结果是一 对大小写他是敏感的啊。这块大家注意一下。区分区分大小写。好,那么,呃,那么在这一块关于变量他的一个概念,以及变量他的一个命名规则,老师就讲到这里,然后给大家去总结一下,总结的话来往这里看啊,我们还是聚焦一下这一块, 老师刚刚所讲的这个概念和老师在使用的一个过程当中,他怎样给他关联在一起呢?大家不要脱节啊,我们来看看这两行代码,在这里的话,我们可以看到我们一百这个数据是通过了一个等号这样一个符号被存储到了名字叫 a 一下划线这样的一个变量当中啊,从而我们在第九行可以去获取存储在啊这个变量当中的一个一百这个数据,这是没问题的,对吧?好,那么这个存储的一个过程是属于程序当中的一个存储。好,那么实质它在内存空间发生了怎样的一个变化呢?来,我们在这里往这看 啊,我们第八行这一行代码,它是有一个存储的过程,那它会在我们这个这一行代码,它是有一个存储的过程,那它会在我们这个红色的这个方框框,大家可以把它理解成是内 存卡,好,内存卡比较大,对吧?你直接把我们这个一百这个数据存储到内存卡当中啊,你,你比如说我们直接把这个一百,一百这个数据啊,我就写这吧。一百这个数据你要直接放进去的话,好, 它会去占满一整个内存卡的空间,但实际上一百这个数据真的要占一整个内存卡的空间吗?你可能一个内存卡有几十个 g, 对 吧?一百有这么大的一个空间吗?不,它可能只有几 kb。 好, 那么正确的一个存储的话,应该是先按 先去画一块小区域出来,那么这块区域正好符合一百它的这个存储空间的,那么正好是个几 kb 的 一个空间。好,那么一百存几存储进去,这个是它的一个正确的一个顺序以及存储的一个方式。 好,那么大家可以发现一个是代码当中的存储过程,一个是实质上在内存空间当中去发生的一件事情,大家把它联系在一起。好,那么在这里面的话,一百作为数据,那么这个存储空间也是外面的这个小圈圈,它就所谓的一个变量了,变量, 所谓的一个变量,老师标在这个地方,所谓的变量。好,那么大家联系在一起,变量在等号的一个左边啊,咱们这个数据在等号的右边,通过等号交流符号去建立存储关系,这个是在我们存储空间里面发生的事情。 好,那么后面你想去存一个两百这个数据,那同理他又是在这一个内存卡当中又划一块区域,和你这个数据相匹配的一个空间大小。好,把这个两百啊给他,呃,存储在这个里面去,老师就不写了啊,就把两百存储进去,然后并且呢给这个,呃,小圆圈,有这个小圆圈,哎, 给咱们这个小圆圈,也就是所谓的这个变量给他起个名字叫什么呢?叫嗯, a 啊,不叫我们这个啊,两百个存数啊,应该是谁呢啊?这这两个都是命名不规则的啊,你不能给人家起个名字叫 b, 不 能啊,首先他是不礼貌的,其次的话命起命起名字都是要有规范的,就像大大家的这个姓名,他都是有名有姓的,那么姓都是根据我们这个百家姓啊,名字都是爸妈给的,对吧?他都是有这个依据的,那人家命名也没有那么随意了啊,你如果说随意的话,那么程序他是不支持的,就会出现问题。 好,那么这个的话就是把所有的这个知识点给它联系在一起,这里就是变量,它的一个使用,它的一个概念以及使用,再给大家去拓展一些点啊,就是变量它的这个实质,呃,实质的一个好处,它的一个优势在哪里?优势以及变量的一个其他使用规则。 好来看看。首先呢,呃,老师,就在这个地方,首先,嗯,这个标一个一,这个标一个二, 那么咱们变量的优势也就是它的好处在哪里?你看蔡老师,哎,我直接把我们这个数据一百进行打印输出,哎,好像也行,对吧?我干嘛要多此一举,把咱们这个数据一定要存储到 啊, a 呀或者 b 呀这样的一个变量当中啊,你你会觉得好像有点更麻烦了一些,比如说现在,我现在存储一个一,呃,两百进去啊,存储一个两百进去, 好,你会发现在这三行代码当中啊,好像并没有体现出来变量的一个优势。好,这个只是我们在进行简单输出的时候,大家看不出来,没关系。那么来,你如果是看不出来,来老师进行一个很明显的对比,大家去看看,好吧? 好,你比如说现在我们要去求一个数字的一个计算吧?你比如说我们现在要求一个数字三去加上一个数字五, 好,数字五。 ok, 现在很明显结果是一个八输出,在这里没问题吧?好,那么你你可以看到我们二十五行只能去做三和八的啊?不,三和五的一个预算, 他能去做二和三吗?不行他就固定死了。如果说来,你比如说我把这个 a 存储,就把这个三通过等号存储在我们这个 a 当中,然后把我们这个五存储到我们这个 b 当中。好,那么现在我们去进行运算的时候,怎么去运算? 是怎么去运算?是 a 去加上一个 b 吧,对吧?因为数据已经存到了 a 当中以及 b 当中,那我在进行输出的时候,是不是就 a 加 b? 好, a 加 b 来运行,大家看看现在是同样的是八 a, 老师好像也没差呀,但是现在不一样了,这里比较固定啊,我们这个数据是固定的, 固定,那么在我们二十七行、二十八行、二十九行的话,你看现在我要去求一个 b 改成一个三, 是不就右键去运行?是得出这个结果了,它的一个灵活性是更高的。比如说现在二、三和三都已经进行一个相加了,我还能去干什么呢?还能求求相减,你看 a 去减去一个 b, 是 不是灵活性会更高一点?大家能不能体会来,右键去运行看看,嗯,三减三还等于个零呢,是吧? 好,这里老师标一下它的一个结果啊,这个结果是一个,呃,六。好,这里大家能够体会到我们这个 电量它的优势在哪里?是不是啊?当数据它进行一个存储,我们在使用的过程当中就使用这个数据,过程中会更加的更加的灵活一点,对吧?使用数据时更加的方便,更加的灵活,用数据时 更加方便。嗯,更加的灵活,程序更加灵活一些。大家有没有问题?有没有问题还包括什么呢?你看,我们现在就是在这个地方, 在这个地方你看,呃,二十九行求的是一个和三十行求的是一个减法运算,对吧?好,那么现在我只需要去更改一下这个 a 的 一个局,我把它改成一个八。好,那么此时此刻两个运算都会翻,发生这个翻天覆地的一个变化,你看一下啊,我由于进行这个更改,呃,前面这个八我就注视掉了啊。 好,然后我们去右键去运行,来看看这里是不是更改了这个数据。好,一个结果是十一,一个结果是五,那之前是一个六和零,对吧?你看现在是不是计算的更加灵活一点了,只要更改一个数据,后面的这个程序的使用都会去进行更改。好,那么关于咱们变量的优势就讲到这里,大家 o 不 ok? o 不 ok, 来, ok 的, 来给老师扣一个五, 有问题,老师看一下啊。对,可移植性是更强的。 是的,乘法运算就是 a 乘以 b 就 好了,这个乘法我们用的是一个,呃,星号键,用的是一个星号键符号计算符这一块我还没给大家去讲,就先不着急啊。好,那最后一个,最后一个讲完这个变量的一个使用规则,咱们就可以中场休息一下,休息十分钟,好不好?来,我们第四个有问题可以跟老师提问题。 第四个就是变量他的一个使用规则,按理来说老师我知道他怎么去用啊?就是这个公式,固定的一个公式往里面去套,在使用这个固定公式里面的话,我会注意一下,变量在进行命名的时候,他有两个啊规则, 那么这个数据在存储的时候呢,我会去选择一些数字在进行这个使用,对吧?好,那么在此基础上老师给大家去扩充一下,就是呃,变量在使用的时候呢,会有一些比较花里胡哨的,其他的一些比较好玩,而且呢比较省事的一些方式。你比如说, 比如说他的一个标准的语法是 a 里面去存储一个十。好,老师我懂,这里面我们去打印 a 的 时候,那么输出的就是一个十,因为通过等号他去存储嘛,等号就是存储的作用好,那么这个是最标准的,就是 等号左边和等号右边对应的是一个变量,对,一个数字存一个变量,对吧?啊?老师这里就写一下,他是一,一对一的一个存储。好,那么与此同时肯定有不一样的,他会有什么呢?一, 呃,咱们这个多,呃,先讲多对多吧,对,多的一个存储,多的多,对,多的一个存储 啊,先讲一对多吧,一对多啊,一对多的一个存储,一对多,那指的就是等号的一个,左边就是一一个,那你比如说看一下啊,老师就来个 b, 来个 b 字母 b, 给他起个名字吧。嗯,你单起一个字母 b, 或者单起一个下角线都可以的,但是你不能单起一个数字三作为变量啊,不行,因为他不能打头嘛。 好,然后在这个地方来,我们去存储多个数据,多个数据我们就来个一逗号隔开,二逗号隔开三。好,那么 可以看到老师在这里用到一个逗号,逗号在拍子当中一般起到就是隔开的一个效果,你比如说现在我们有一个变量 a 以及变量 b, 对,好,那么在进行这个呃存储的一个过程当中,我可以用这个呃逗号去进行隔开,在打印咱们这个变量,你要打印两个的一个,同时我们也可以用逗号去进行隔开来看看,再进打印 a 的 一个结果,又打印 b 这个变量的一个结果来,现在我们去运行看结果。 好,这里是两组啊,首先是 a 输出了一个十,没有问题吧?好, b 他 输出的是一个咱们这个一二三啊,就是把我们这个多个数据存储在一个变量当中。嗯,如果说大家看咱们这个一二三啊,就是把你单独打印一下 b 嘛, 这里看一下啊,咱们代码是自上而下执行的,比如第啊,第三十五行走完才能走到第四十行,那么运行的效果也是自上而下去给他执行出来的,那么也就说三十九行对应第一行输出, 四十行对应第二行输出。大家看看三十九行是不是单独打印 b 的 一个,同时它输出的是一个小括号,里面放了一个一二三,这是一对多去进行存储的时候呢,它存储出来一个效果啊,存储出来一个效果。明白, 好,这里是一对多,老师给大家过一下就好。右边不需要引号吗?这是不需要引号的,为什么打印出来的时候带括号?因为它是多个数据,你可以想象一下啊, b 里面呢,你要么就存一组数据,要么就你要么就存一个一,要么就存一个二,要么就存一个三,但是呢,现在一次性把三个数据都存储给他,对吧?那他只能就是用一个小括号 给他括起来,就相当于把它作为一个整体了。对,就相当于把它作为一个数据的一个集合了,就是一个整体了。明白 啊,其他的我们就先不试了啊。其他的我们涉及到其他一些内容的话就先不试了。 a 和 b 可以 同时输出吗?可以的,数据可以用逗号去隔开,那么变量也是同样如此。明白, a 和 b 也是同样如此。好,那么最后再过一下,咱们这个多对多的一个存储,多对多的一个存储来往这看,那么就是等号左边有多个喽,那比如说我们起一个,呃, c 一。好,我们前期可以就是命名简单一点啊,就用一些字母去代替,这个都是无所谓的。我们后面习惯了之后呢,可以用一些拼音啊,或者用一些英文专业一点来代替一下,好不好?好,那么现在我们就存储一个十, 嗯,二十、三十。好,来看看这里的一个存储,前面老师就全部注视掉了啊。好,那么现在这多对多的一个存储,这里大家可以看到,确实啊,等号左边是三个变量,等号右边是三个数据,那么存储之后,通过等号完成这个存储之后呢?他们的一个存储数据应该是怎么样的? 大可能会猜测一下,你看十到底存给了这个 c, 还是存给了这个 e, 还是存给了这个 d 呢?大家猜一下,大家觉得它存给了谁? 右边是不需要引号的。如何通俗理解?这个一对多,一就是一个变量,一个变量去 存储。呃,对多个数据的一个存储嘛。好,那么多,对,多就是多个变量,对多个数据的一个存储, 这个相当于是什么呢?当然还是老师的那个啊,就是内存卡,对吧?好,然后他画的这块区域呢?啊, 只存一个,一进去, ok, 他 是 ok 的。 好,你,你又要把一存去存进去,要把二又要把三存进去,因为一次性我要存三个进去。好,他也是 ok 的, 只说他打印出来的这个,呃,你,你单独打印是个十,但,但是他多个数据打印出来的话,就是一个小号给他表示是一个整体了。对,他是一个整体,先把它理解成一个整体就好。 一对多的一个数据存储存 c 当中吗?老师给大家去运行看看。好像是的哦,就是十存到 c 当中,二十存到这个,呃, 来给大家去画一下,它是这样子的,十存 c 当中,二十存 d 当中,三十存这个 e 当中,可以发现它是一个,就是从左至右都是一个一一对应的一个存储关系啊,从左至右是一一对应的一个存储关系。嗯, 一对多的一个变量可以参与这个运算吗?可以的,这个后面老师再来跟我讲。现在不讲那么多啊。 好,那么这个是 ok 的, 来,我们给他去,给他把这个注。是呢,补充上。好,那么多。对,多的一个存储就比较省事了,你原本三个变量对吧?要写三行,那么现在三个变量一个存储只需要写一行就可以搞定了,甚至说你是五个、六个、七个、八个都是一行,可以去搞定,会更加省事,节省一下这个代码。 好,那么他是从左至右是一一对应的关系的关系。好,那么这个存储关系啊,那老师给大家讲明白了,尤其只有这三种规则,你比如说老师这里再给他去啊,再来一种 a、 a、 b、 b。 好, 里面去存一个二十二,三十三、四十四。好,大家觉得 ok 吗?这种存储关系大家觉得 ok 吗? 大家觉得 ok 的 来给老师扣个一,觉得不 ok 的 给老师扣个二。要是 c、 d、 c、 e、 d 就是 十二十三十了吧? 不是十二三十,不是的,等会老师给你试试,你可以,你可以自己去试试。数字算顺序不是从零到一吗?怎么从一开始,哪一行呢? 数字算起不是从零开始吗?这老师从一开始从零开始,从十开始,都是都是随便给的一个数字,你也可以去试试啊,你可以试试别的一个数字。 对,来,我们现在去。呃,现在我们就是还是给他打印一下吧,打印 c a, a 和 b b, 好 不好?来给他刷一下,你会发现有问题,然后他这里会出现一个错误,首先老师直白的告诉你,他一定会报错等号左边的这个数,数字的个数要和数字的个数他一定是相等的 啊,人家是三个,你就得是三个,要不然人家四十四存哪里去呢?存哪里去?没得存,对吧?你没,没得一个空间给他存,那他没得放,那就报错了,他,他这里报的这个错误信息,你可以看一下,太多的,你看咱们这个太多的一个值去进行,咱们这个啊,存储了,去进行咱们这个存储,报的这个错误也是值的一个错误。 对,一夫一妻制,对,一个锅盖一个锅,一个锅一个盖,对不对?好,那么这种就不行了。明白,那么我们有的也只有三种,一、二、三。首先一啊,第一种话是一对一的一个存储,第二个的话是一对多啊,一个变量多个数据, 好。然后第三个呢?是,呃,多个变量对应多个数据,在这个存储关系当中,刚刚同学们有提到一个问题,说,老师,我能不能把这个,呃,把这个什么一和这个 d 换一下? 换一下好换,换完了之后是不是把咱们这个三十存到一当中去了?这个二十放到 d 当中去了?不,他只是跟顺序相关,跟他的这个位置是没有任何关系的,跟顺序是是相关的。明白 啊,老师给大家看一下,三十十存到我们这个 c 当中啊。 sorry, 我 们在进行打印的时候啊,我们打印的时候给它换一下, 给它换一下来,用点选运行,你看是不是还是一样的啊?它是跟顺序相关的。明白 啊,永远都是最左边的存储到最左边当中最,呃,然后第二个存到第二个,第三个存到第三个当中啊,他是跟顺序相关的,好吧?好,那么这里的话老师就讲到这个地方,咱们就中场休息一下,我们现在是三十二休息,到四十二的时候我们再回来,好吧。啊,中间的话我们放一下歌,放松一下,休息一下, 什么圆组啊,下标啊,速组啊,这一周老师会给大家去统统都会带到,就是先不着急这些啊,先不着急这些变量的组成可以使用逗号吗?其他符号可以去使用吗?这是不可以的啊,老师有讲过咱们这个变量的一个组成的话,尤其只有数字字母下和线,就除此以外的都是会报错 组成,除此以外的都会有问题。你,你比如说啊, 这个老师给大家给你请一下,比如说 w, 对 吧?好好的一个 w 好, 然后 w 三都是 ok 的, 嗯,你去存一个实心进去都是 ok 的。 好,你中间去穿插一个艾特啊或者井号键啊,都是不行的,你看,比如说放一个百分号,你看它立马就是爆红了,其他的这个组成都是 ok 的 啊, ok 的。 嗯,呃,然后我们看看啊,课间当中还会涉及到就是第三个规则,说不能去使用内置关键字,这老师稍微给大家去提一下,其实大家在命名的时候不需要注意这个点,就直接把它带过就好了,不需要这个点。 呃,这样写了,还是提一下内置关键字指的是什么呢?你看像我们这个 print, 它是不是被 python, 嗯, python 它自己拿过来用了一个单词,那这个就是属于内置了,所以所,呃,所以我们这个内置的意思指的是 python 已经用过的一些单词。 嗯,老师给大家举个例子啊,比如说之后我们会学习到一个 ifif, 你 看他会有橙色这个颜色很明显和我们后面写的这是什么 a a, 他 长得就是不一样的,就是特殊的好。那么比如说像我们这个 if, 它就是属于内置的,已经被人家用过了, python 已经用过了,你就不能拿来用了?老师,我要强制存到二十二进去。好,你存不了,明白吗?你存不了。 嗯,所以大家避免一下,就是一些橙色的一些单词就不要去用了,下一集变量加数据类型下。

拍照零基础入门第二集,来,我们就先上这个重点来,直接去新建一个,大家在新建这个文件的时候一定是 python file, 我 有去看到有同学新建一个 file, 好 半天跑不起来。老师,我运行没有那个 red, 没有那个绿色图标啊,这个,这个 一定得是创建咱们这个 python file, 明白吗?好,我们去创建一个 python file, 然后这里我们写好,这是零一啊, input 的 一个输入输入。好,这里写好这个文件之后呢?你,你看到啊,这里的话是个批发文件,你去右键运行它,绝对是有一个 rand, 绝对是有一个 rand。 好, 来看看。 好,嗯,接下来的话,老师打算给大家去讲一下这个字母串的一个转换,把数据类型的一个转换,包括咱们这个字母串的一个格式化的一个输出效果。好,刚刚提到。呃,数据类型转换这三个函数,对吧?呃,老师打算还是给大家去演示一下啊。在这个地方, 首先第一个 int, 这个函数大家已经会去用了啊,直接就是小框里面点到一个数据,就可以将它去转换成一个整数类型,对吧?好,这个是第一个。呃, 老师给大家去多多去演示一下,很多一些,嗯,很多一些情况或者想法,可以大家去尝试一下。老师,对,在课堂上会去演示一些比较经典的一些情况。好吧?好,刚刚是对我们这个字母串进行引导一个转换,那如果说你看,比如说现在我有一个,嗯, string, string 一给大家写一个啊, string 一, 我们给他写一个十,然后呢?来一个咱们这个 int 类型, int 一 给他写一个十。好,然后再来一个 float 一, 给他去写一个十点 啊,十点九, ok, 好, 现在有三种不一样的数字类型,报了局的话是没有参参与到我们这个转换过程当中的。好,试一下刚刚所说的这个 int 函数,对吧?这个 int 函数对字母串类型已经能够去转换了,我们就先把它忽视掉,那么给大家去演示一下它。关于,呃,咱们 如果说是浮点型进行的这个转换操作来,我们直接就是把这个 int 这个有点卡啊,卡住了, 嗯,好, int 这个函数给它拿过来,然后把这个 float float 一 是不是十点九给它放进去就可以去达到转换的效果?好,转换之后呢,老师打算给它保存在 number 一 当中。好, 呃, number 一 当中保存之后呢?嗯,那我肯定是对这个 number 一 进行检测,并且打印它的一个结果啦,对不对?这里是转换成 int 类型,那老师现在呢,就是先看看它的这个类型有没有转换成功, 转换成功了,是一个 int 类型。好,其次呢,老师还有点疑惑,就是像我们这个十点九转换成整形,它该长成什么样子呢?好,那么老师会在之前就在这个第十三行打 印一下 number 一 去看看啊,十点九转换成整形,它会带个九吗?不如把九删了,或者说变成十一呢?那么结果可想可显而见,对吧?那么这里的话是直接把九去掉了,九其实是一个比较大的一个小数位数了。好,那么九都把它舍弃到了, 更何况一些什么四舍五入这样的一个结果,这样的一个情况会有吗?就不会有了,像我们这个辅点处转整数的话,他是直接把小尾巴去掉,没有四舍五入的这样一个情况。明白是去掉小尾巴好,那么这个是啊,辅点处转咱们这个 啊整数啊,福点数转整数整数, ok, 再来,再来的话还有第二个,对不对?第二个我就把咱们这个注是呢给他粘贴过来。好,第二个就是 float 类型, float 类型的话简单演示一下吧, 给他写个二,简单演示一下我们这个 int 类型的这个十转换成 float, 他 应该会长什么样子。好吧,我们 float 这个哎,小内置函数啊,把咱们这个词呃词群一啊,不 int 一 给它放进去,也就是把这个十放进去, 它达到一个转换的效果啊,转换效果我们保存在 number 二当中。好, number 保存之后呢,去打印一下 number 二,并且的话我们对 number 二呢进行类型的这个检测和打印操作。好,那么现在的话,前面两个就不看了,就看一下我们这 十八行,十九行的一个打印效果,一个是十点零啊,啊,小数福点型,肯定是带一个小数的,对不对?这个是毋庸置疑的。其次啊,类型是一个福点型,这个不多说了好吧,嗯,这里是一个十点零福点数整型整数 转福点数。好,其次的话,最后这个类型是一个 float, 给它写好。好,那么这个是 float 类型,老师就给它过掉了。来,再来。最后一个就是 int 啊,咱们这个 string 这个类型啊, string 这个类型, string 这个类型。把咱们这个 string 粘贴过来,这个就删掉了。好, string 类型去转什么呢?来,首先看一看啊,咱们这个 string, 也就是哦,这个 string 一 没有用起来哦, string 一 像这个也可以转整形了。好,那么如果说你要去把其他的一个数字类型转成字母串类型的话,那肯定是要么是 int 类型去转,要么是 float 类型去转,也就它两个好。废话不多说,我们就直接两个一起上啊,我们直接是 string 小 括号过起,把 int 一 丢进去。好,小括号过起,把 float 丢进去。好,那么这里会检测一个 number 三以及 number 四出来,对吧?嗯, number 四好。此时此刻我们只需要去呃打印一下吧,就直接先看打印结果。 好,现在打印结果哈来,直接去右键去运行,看看它打印出来一个结果是什么呢?十啊,就是这个十和十点九转换成字母上类型呢啊?还是一个十和十点九。这个。嗯,老师要跟大家去说一件事情啊,就是说我们如果说有个数据它是长这个样子,你们说我们来个呃 a 里面去存储一个 hello world, 肉眼可见他是一个字母串类型,但是呢,我们在进行输出的时候,你会发现他的这个字母串类型是不带引号的,那像这个十和十九他也是同样如此啊,即使他是个字母串类型进行一个输出,但他不带引号,对吧? 嗯,他字母串进行输出的时候就是不带引号的啊,老师,那我现在疑惑了,他到底是一个字母串还是一个啊?咱们这个呃整形或者福脸型呢?这个没关系嘛,咱们就是通过泰普还是去检测一下, 注意啊, type 只能一次性验一个,你不能说啊,就 number 三和 number 四一起去进行检测,你最好去隔开啊,咱们 number 四再往里面去丢,那此时此刻你看着像是一个整数类型或者浮点型,其实它是一个字母串类型,就跟刚刚我们那个长度和宽度是一样的,对吧? 好,这个很明显啊,是因为字母串在进行输出的时候会引掉这个引号,字母串输出时会取消啊,就是说会隐藏掉这个引号啊,就是双引号或者单引号隐藏掉啊。 好,那么以上就是关于字五串,呃,咱们这个数字类型和转换,大家有没有问题?没有问题的话给老师走一个。对,此时非彼时,对不对?好,没有问题的话给老师扣一个。二。怎么去控制咱们这个 flow 它的小数位数?这节课老师是不打算给大家去讲的,如果说你是比较疑惑的话,呃,你可以课后私聊一下老师,老师教一下你其他一个方法。嗯,这就是一个 其他的类似函数的一个使用,现在是不做过多的一个拓展,我们是一步一步来的啊,有问题的话把这个行号跟老师说一下就好了。 好,这里是就是视令,视令具体为什么要进行这个数据类型转换,都是在适当的位置合适的一个地方,就是你有这个转换数据类型的一个需求的时候,你才会用,对吧?你像我们在进行英特书的时候,你要去进行求相乘的一个面积,但一定要转换之后才能去相乘,不然就 直接就报错了,所以这个就是叫有需求的时候,有需要的时候用它,那没需要的时候我们就把这个知识点放在那里,我们很多的一些就是我们之后会去做这个,呃,程序啊,或者写这个程序大的一些项目的话,其实不会把所有的这个知识点都用起来,他能用的只是说这个需求当中他需要的知识点, 你给他用起来,对不对?那么我们学他的话只是说增加我们的知识储备,明白我们现在所学的就是属于啊 python 当中里面的分享的每一每个板块 啊,到了之后我们再讲这个项目的时候呢,会将这这些板块给它相对应的用起来。啊。好,那么这个是数字类型的转换,老师给大家过掉了。最后一个讲的是我们这个格式化的一个输出,讲完我们就可以休息下课。格式化的一个输出, 输出。好,呃,首先给大家讲一下啊,我们在就是做我们这个作业的一个过程当中,这个作业的一个过程当中有同学就提出这么一个问题,老师,我们这里求的是一个面积, 对不对?不说你求的是其他的啊,那么我们像一些数据,他一般是带单位的,二十,他有可能带个单位,三十,有没有可能带个单位? 好啊,他带了单位之后呢?他求的这个面积,他应该也带个单位,我才知道他是个面积。你比如说现在我们不带单位的前提,二十乘以二三十等于一个六百,那么可以看到这里确实是输出一个六百了。但是 如果说你直接把六百给到用户去看,只有六百孤零零的这一个数字,那他可能要思索一下这个六百到底是不是我求出来的这个值。那可能老师我二十乘以三十,那肯定是你求出来这个值啊,但是二二二乘以三三三 这样子呢?这样子,这么一串数字,你显示给用户去看,用户肯定得思索一下,哎,这到底是不是我求出来这个面积,那这个时候呢?我们最好呢就是增加这个用户的一个体验感,把用户的体验感拉满一点, 有没有可能就是在输出这个数据的时候不那么单调,输出一个 c m, 就是 它一个单位进行输出,那别人就知道,哎,它是一个面积,它一个值,或者更加详细一点,这啊,或者更加详细一点,对吧?那就更好了,有没有这种想法?大家有没有这种想法?有的同学来给老师走一个三,为什么长 这里两个字母串可以相乘?它不是字母串啊,我们在定义的时候,它是一个整数类型,你加上一个引号才是字母串。 对,这里没有输入操作,所以他不是自创啊,对,很多同学会有这样的一个想法,对不对?好,那么在这里给大家去讲到,还是在这样的一个练习题啊,这个练习题 好,我们简单一点吧,我们就不用那个输入操作了,输入操作就过了,还是用这个, 用这个进行格式化输出的时候,大家都想带个单位,更加明确一点,我这个数据是什么,对不对?但是呢目前这个情况他做不到。来,我们把那个答案, 这个答案呢,给大家去粘贴一下,给它粘贴到这个位置,好来看看我们这个答案的话,它所做到的一个效果就是输出一个六百,那当然是不行的,那么 老师要讲的是什么呢?你如果说你要去输出一个 cm 这样一个单位的话,嗯,就是厘米这样一个单位的话,其实普通普通的一个 print 输出已经满足不了你的一个需求了,就是如果,如果想要咱们这个单位 同时进行输出,输出啊,咱们这个普通的一个 print 是 满足不了需求,那为什么老师满足不了这个需求? 好来,为什么呢?老师看一下大家的一个聊天啊。呃,来,我们为什么说满足不了呢?来看看现在我们输出的是一个面积对不对?那大家肯定就是想要,就是输出的是正向货,是六百 c m 这种效果,对吧?好,那老师有想法。首先第一种,第一种老师会考虑直接在我们这个变量后面去加一个 c m, 这种写法 o 不 ok, 不 ok 就 直接报错了,对不对?就直接就报错了。好,那么老师会考虑第二种写法,就是用引号把我们这个面积给他顶起来,然后在他的后面加一个 c m, 大家觉得这种写法 o 不 ok, 觉得 ok 的 给老师扣个 t, 觉得不 ok 的 话给老师扣一个 f, 单词 ok 吗? t ok 吗? f f t, 就 这种写法怎么就不 ok 了?呵呵,带个引号进去说说怎么不 ok 了?老师要告诉你啊,什么时候带引号啊,什么时候带引号,如果说有的同学在纠结的话,引号啊,只有字母串才能带,那除了字母串以外的东西都不带你,比如说除了字母串之之外,我们会有变量, 会有数值类型,会有 bar 型的一个呃,类型的一个数据,那么这些通通不带,你可以看到老师在输出变量的时候,它是变量的吧,我永远没带这个 引号,因为它不是字母串,只有字母串才带明白,那么此时此刻第七行你带了个引号,那就把引号里面的内容作为字母串类型直接输出啦,这里输出的一个效果是不就是长这样子?那老师想了两种方法都没有办法去解决,带一个单位 怎么办呢?来,有请我们的这个格式化的一个输出,那么得升级一下了, print 它的一个输出,给它升级为咱们这个格式化的输出。先不理解,先不要去理解格式化输出它是什么,先看一下它的好处是什么,再给大家解释一下。好,来看 我们格式化输出它就能达到这样的一个效果来看啊,比如说咱们要输出的就是一个面积加一个 cm 嘛,啊,就长这样子嘛,呃,六百 cm, 就是 这么简单,对吧?好,那么升级一下的话,直接在这个位置,呃,我们对它进行一个输出, 直接 print 啊,在输出的时候呢,你注意啊,老师肯定要和之前的这个普通 print 进行一个区别,区分的一个写法,那不然还是一样的效果,还是会出错,对吧?好,那么我会就是给到一个固定的一个写法,就是其他的啊,进行区分的一个写法是什么呢?在进行输出时呢,我们还是得带一对引号 啊,带一个引号,但是引号的前面呢,我们得去加一个 f, 引号前面加一个 f, 好, 引号里面呢,我们肯定会存在变量,对吧?你比如说这个面积就是一个变量,我们会用一个大括号将这个变量给它输出就放在里面。好,后面再去跟这个 c m 来 看一下这个写法。首先我们普通的一个 print 升级为格式化输出的一个操作,格式化输出操作,那么写法就是在我们固有的这个引号前,引号前面这个位置加一个 f, 这它 就称之为 f, 格式化输出就称之为格式化 f。 格式化输出是后续老师的一个课程当中可能会比较常用的一种输出方式。好,然后在输出的时候呢,面积它明明是一个变量,但是它却被作为了字幕串内容净输出,所以要区分变量和字幕串内容的话。好,那么变量加一对大括号,那注意了,一定得是, 哎,一定得是大括号,你不能用小括号,也不能用中括号,一定得是大括号。好,后面就是不是变量的这个内容,你就加,你就直接往后面放就可以了。好,那么这个就是一个合理的一个输出来,直接去右键去运行。 哎,六十 cm 是 不是进行输出了,对吧?啊?输出的一个同时呢,你可以更加的就是就是让用户的一个用户看到这个六百,我知道它是一个面积,它的一个值,不是别的了。好,我可以更加的就是让用户的体验感直接拉满来,就是该 面积是这前面再进行一些补充说明的一个文字,该面积是来直接右键去运行,是不更加好看一点了,该面积是六百 c m, 这里 o 不 ok, 这里 ok 的 同学来给老师扣一个四这里可以的同学来给老师扣一个四。关于 f 格式化它的一个写法,它一般它的一个好处是什么呢? 它可以让我们这个代码呢更加清晰一点,其次可以去提高咱们这个代码呢更加清晰一点,其次可以去提高咱们这个代码呢更加清晰一点,其次可以去提高咱们这个代码呢更加清晰一点,其次可以去提高咱们这个代码呢更加体验感。 嗯,这其实用于很多的一些情况,你比如说什么呢?比如说老师在此基础上给大家去做一些升级,做一些升升级好不好?嗯,前面就重视掉了啊,重视掉啊,然后这个六十 cm 就 直接, 呃,这样子需求,这是我们的一个需求。好面积,面积在这啊, 哎啊,面积在这,好,然后再进行输出的时候呢,我们就把这两个输出的一个结果放到这个后面去,平方没加呢?平方我们现在不加啊,平方的话我们要通过其他的一些方式去解决 好,这个是我们这个需求吗?六百四 m, 然后其他的我们来一些小小的一些练习,好吧?练习,你比如说的话,我们要去输出一个一个人的姓名和年龄, ok, 就是格式化输出,格式化输出一个人的姓名和年龄。 print 该面积是可以,你这种也是可以的,你这种也是可以的,但是你要知道你这个变量和之前, 嗯,区别是什么呢?区别是你这种写法就是 print 输出两个数据了,而我这种写法是 print 输出一个数据,明白吗?它俩是一个整体,但你是分开的。 嗯,好。然后我们现在格式化去输出一个人的姓名和年龄,老师就会先用一个 name 去保存,比如说保存麦芽好,然后再来一个大括号,是按那个 啊,按那个字母 p, 左边那个啊?右右边,右边字母 p, shift 加上字母 p 啊, shift 加上字母 p 的 左右边那一个,自己去看一看好不好,尝试一下。哦,我给你找一下嘛。 键盘,我的键盘呢?键盘啊,知道了是吧?啊,那我就不找了啊, 哎,对对对对,好,那么 end 里面呢?我去存一个三十。好,现在我们对这个年龄进行一个输出,之前的一个版本是不是内幕和 end 隔开,我就直接输出了,那大家就是看到这个数据,是 啊,麦芽和三十,你也不知道这个麦芽是一个名字,还说这三十是一个啊,年龄,他没有一些解释说明这些文字,那用户看到就会匪夷所思。好,那么我们升级版本用一个 f, 这引号的前面加一个 f, 然后呢?我们先写好,写好我们要去输出哪些信息,你说。嗯 啊,我们这个我的名字是是什么呢?是内幕对吧?啊,我的,我的这个年龄是 年龄是,是 age, ok, 这样子进行输出的话,你注意变量确实参与了我们这个输出的一个内容,但是要和这些普通的一些解释文字进行区分的话,得用大括号给它括里面去明白。 你看之前是绿色的,立马就是变了颜色了,那么和变量的颜色是不是一一致的?好,现在去进行输出是不是合理的一个解释,那么它可以去提高 提高咱们用户的一个体验感,使用体验感啊。嗯,我们那个代码可读性也更强了啊,我的名字是麦芽,年龄是 age 大, 可不可以?这个可以吗? 可以吗?可以的,同学的话给老师扣一个四。老师再给大家去过一下,这个确实是非常常用的一个格式化输出了,但是除此以外的话,老师给大家去拓展一下,还会有其他的一些就是输出方式,还会有其他一些输出方式。好,呃,老师给大家去拓展两个版本吧。 老师给大家去拓展两个版本啊。第一个咱们这个 f 格式化的一个输出是我们最常用的,我就先放在这里了,然后第二个,第二个我们其实可以去用一个百分号加一个 s 去进行格式化的一个输出。第三个的话还有一个 format 这样的一个内置函数也是可以去进行使用的。 mate 这个内置函数也是可以去输出的。老师只是简单给大家去带一下啊。常用的还是我们这个 f 格式化。明白,简单带一下输出的一个效果肯定是一模一样的,只是说写法上有所不同,而且在以后我们可能在爬虫当中用这个 formate 会比较多一点, 还是带一下。嗯,有不同的一个情况,你可能使用的这个输出方式不太一样。明白,好,首先带一下百分号 s, 在 进行百分号 s 输出的时候呢,我会在前面准备好第一个,呃呃,咱们这个 name 和 age 就 直接输出了,再来一个体重, wind 这个体重 好,体重的话,呃,咱们就来个那随便来了,来个四十五点五。好吧,好,就是我们现在要去输出的这三种格式啊,三种数据类型,第一种字母串,第二种整形,第三种福袋型,我是准备好的这个数据。好,那么现在我们要去进行这个输出的话, 那之前用 s 格式化输出,老师已经讲过了,就不再重述了。那么百分号进行输出的时候来理解一下百分号 s, 他 请到的是一个站位,站位符就是站位符号 的意思啊,站位符号的一个意思。好,具体什么叫站位符号呢?大家有去就是,呃,去玩一些农家乐对吧?咱们去种萝卜以及偷萝卜,还有拔萝卜,对吧?啊?一片地里面呢,是不是种一个坑, 一个坑好,一个坑呢?我们是添加,就是说去放一个萝卜,一个坑对应一个萝卜,那么这个是一个坑,一个萝卜它是一对应的,那么像我们这个百方 s, 它其实也是这么个道理来往这看,比如说我们要去输出这个数据呢,同样是我的名字是,是谁呢?是 name 对 吧? name 好 啊,我的这个年龄是年龄是 age 好,然然后还有个体重是 wait 啊, wait 就是 翻译一个英文的意思啊,这个不中写好啊,然后我们现在的话 啊,我们就把它改写成一个百分号 s 的 一个输出方式来,我们在进行输出的时候呢,不直接去写这个变量,而是用百分号 s 去挖个坑,百分 s 挖个坑,这里就是挖个坑好,那么现在是不是有一个坑,两个坑,三个坑了,有三个坑了,但是萝卜还没到位,你可以发现二十三行这一行代码 跟这个变量好像没有任何关系,如果说直接这样子去进行输出的话,来看看这里输出的就是个百分二 s, 这话萝卜还没有拿过来放到坑里面去,那么怎么拿过来放进去呢? 来看,这我们不找前引号了,而是找后引号,找这个后引号,认准后引号的位置,然后呢来一个百分号,这个百分号就像一个中轴线 啊,就像一个中轴线,哎哎,有点丑啊,他就相当于是一个中轴线,那么中轴线的一个左边就是坑,右边就是萝卜,那么他的右边就是把变量作为萝卜一个一个放在这里。那他是三个吗?如果说他只有一个的话,你就这样直接这样写是 ok 的, 有三个的情况,最好还是用一个小挂给它扩起来, 用小扩给它扩起来好,那么直接放一个一个萝卜啊,第二个萝卜是 edge, 第三个萝卜是 wing, 给它放进去就可以了。嗯,这个百分号就作为一条线,左边是坑,右边是萝卜,一个萝卜一个坑。好,那么现在去运行看一看, 好,没问题吧?这有没有问题?是不是就是进行这个输出,输出效果和 f 格式化是一模一样的?就说写法不太一样,对吧?大家可能就是在别人这个代码里面会看到这种效果,就这种写法给大家去代过一下,体验一下,过一过就好了好不好?这一单 o 不 ok? ok, 来表示扣一个五,扣一个五咱们就给大家过掉好不好? 嗯,这个是百分号,百分号的一个站位符号,那么遵守的这个原理就是一个一个萝卜一个坑啊,百分号 s 就是 用来挖坑的,然后用这个变量作为作为萝卜去进行这个填充啊, 好,然后在这里的话,它和我们这个变量多对多的一个概念是一模一样的,你注意了啊,咱们咱们在这个位置 age 给它调换一下,调换一下,你得注意了,现在我们输出的这什么,我的名字是三十,我的年龄是麦芽了,你注意这个顺序位置,一定就是要 要给好了,你这个位置一定要考虑好。明白,注意,注意一下我们这个顺序问题。还有个数问题啊,个数你个数对不上也不行啊,你挖了坑,但是萝卜没填上去,对吧?有萝卜但是没有坑,那肯定是不行了,注意一下我们这个个数和嗯,咱们顺序的问题。 好,这里稍微注意一下就好了。好,那么这个是第二种,第二种,然后第三种,第三种比较好玩啊第三种比较好玩,嗯,他呃,会有一个就是数字去指代着这个位置来,直接去上这个代码给大家去演示看看。 百分号 s 后面可以去加个单位 g 吗?可以啊,这个地方可以去加个。加个 g 哪有按呢?你这个是一个解释说说明的这个文字都是可以的啊,有其他想法都可以自己去试一试,如果说有问题的话,你就找老师去解决就好了,好不好?嗯,这好麻烦空间,好了好了,你们随便去加嘛。好啊,这个确实有点麻烦,所以看大家去选择嘛,你要用哪个你就哪个,用的舒服你就去用就好了吧。 嗯,好,然后我们最后一个 format 的 一个格式化的一个输出,最后一个我们把它过掉,咱们就这里这一课就是到这里了,好不好?嗯,最后一个就是 format, 它是属于,首先你看一下它啊,它是一个内置函数, 内置函数,对吧?那么内置函数的一个使用方法是因为什么呢?那你看一下,你看一下,首先内置函数它有一个模板,那就是单词带个小挂,老是不是乱喊的,对吧? 单词带个小括号,那他就是个内置函数,你看其他的老师都没有没有说他是内置函数吗?对吧?好,然后再进行输出的时候呢?这个肯定不要了啊,他在进行输出的时候怎么去进行?呃,咱们这个写法啊, 首先的话,他这个作为一个函数,我们是放在聚焦啊?还是聚焦?我们这一个是我们引号内部,是,是我们需要去输出的这个内容,对吧?好,那么输出的这个内容后面注意还是后面 啊?后引号的后面,我们是需要通过一个点去用上 formate 这个函数的,通过一个点去用上它,你不要老问我能不能通过一个空格去用,不行,一定通过一个打点去 使用这样一个 formate 函数。明白,好,它在进行输出的时候呢,和咱们这个 f 格式化是比较像的啊,那在前面的话它不用摆放 s, 用个大国号啊,这个呢也是一个大国号,也是一个大国号 哎,多了一个啊,这个呢也是一个大括号。好,大括号给好了之后呢?啊,也是那个原理,一个萝卜一个坑,它相当于什么呢?它和它结合在一起了啊?两个融融,呃,合二为一的一种写法,对吧?既有它的一个痕迹,又有它的一个痕迹, 好,那么它这里就是挖坑,这里挖好坑了,通过这个 formate 为我们这个中轴线。好,那么这个小方里面就是萝卜往里面去填。好,那么第一个 大括号里面填第一个萝卜,第二个大括号里面呢,去填第二个萝卜,第三个大括号呢去填第三个萝卜。好,现在就填好了,直接来右键去运行,看结果好是不是一模一样的。大家觉得哪个舒服?这三种老师都给大家去讲完了,大家觉得哪个舒服,哪个哪个用起来最最好用的 啊?觉得是觉得是一扣一,觉得是二扣二,觉得是三扣三,代表哪个跟第二种差不多?对,第二种差不多,但是呢,第二种会有一个好处,它的好处在哪里呢?不不不,第三种它有好处是在哪里呢?来,老师对我们这个 formate 这样的一个内置函数呢,给它净化一下, 净化一下,它里面呢,会有一个它可以去指定位置进行输出的。 指定位置进行输出的什么意思呢?在我们 formate 它后面会有一个小括号,小括号里面放的是不是就是萝卜,对吧?我们这个萝卜呢,是不是排就是依次排好在小括号当中,那么你只要排好在里面,它就有一个编号了,像我们这个内幕所对应的编号就是就是, 就是零,不是从一开始给编号的来。什么叫指定位置去进行输出呢?啊?我们 formate 的 这个小括号 中的萝卜是有编号的,那么这个编号是从零开始,那么注意啦,只能从零开始,这个是他默认给的一个编号,你不能说老师我就写个一行不行呢? 啊?不行来,比如说从零开始的话,那么 name 所对应的这个编号就是零, age 所对应的编号就是一, wait 所对应的编号就是二。好,那么现在我萝卜虽然是这样的一个顺序,但是我在进行输出的时候,你比如说,嗯,这个这个位置我要去输出 啊,咱们这个内幕的话,我就把内幕的编号给进去啊,进行输出的时候就把编号给进去,他编号是零嘛?我就给个零啊,这里我要输出,我也要输出。内幕啊,我也给个零啊,这里我也要输出内幕,我也给个零,这样子大家觉得可以不?大家觉得可以给老师一个 t, 觉得不?可以给老师一个 f, 觉得可以不? 匪夷所思,对不对?匪夷所思,来,我们现在就直接走一趟,来看看是不是我的名字是内幕,我的 年龄也是内幕,值啊,体重也是内幕,是不是感觉更加灵活一点了?只要这个萝卜放在这里,放好了它的编号,根据编号可以任意去用这个萝卜, 对吧?你看人家用不用的了,这个百分 s 是 不是用不了它只能啊,还得去注意这个个数以及顺序的这个位置问题,对吧?它这里就会随便随便你去用啊,对吧?那么肯定正常的一个输出不是这样子,这样输出呢?那先把这个内幕锁定的编号放进去喽, 然后再把年龄的所对应的编号放进去喽。啊,这里就是我们啊体重所对应的这个编号,对,他可以去指定位置进输出,这个才是一个标准的。嗯,那么老师给大家去讲清楚内幕他的一个编号是 零,那么合理的一个输出啊,就是,嗯,老师把这个呢给他放到后面去,这个老师给他去扩展的一种写法,合理的一个输出,那肯定是我们第三十二号,而不是三十四号啊,像 h 他的一个编号,是啊,编号是一, 第一个是不是也可以?第一个可以,第一个,这个二十七行呢?也是可以的,因为它也是 formate 的 一个写法嘛,是不是?好,然后这个呢?是 wait, wait, 它的一个编号是二。好,那么可以指定位置去进行咱们这个输出啦,你想要输出的是哪个数据,就把它的编号拿过来就好了。那么通过下节课老师去讲的话,其实它这里专业的来说的话,它是一个缩影, 是一个缩影的一个概念。好,下节课再给大家去说,好不好?好,那么这里大家能够理解不在格式化的一个输出里面的话啊,方式方法还是比较多的,大家选用一下,自己就是用的比较舒服的啊,写法比较舒服的,那么前期我们可能用这个 formate 的 一个,咱们这个 f 格式化的一个输出比较多,因为它简单易懂, 写法也比较舒服,对吧?好,那么其他的你可能看到别人的写法,哎,别人写这样是什么意思呢啊?至少你学过,你也能看明白。其次的话,这个 format 其实还挺常用的,在后面我们的一个爬虫当中,或者说项目框架当中,其实也会去用到这种输出方式啊,你会发现其实它还蛮灵活的,对吧?只要把萝卜放在这里,我们这萝卜根据编号去用, 根据编号去使用,萝卜,根据编号去使用,咱们这个萝卜啊,想怎么用就怎么用,对不对?萝卜, ok, 好, 那么这节课的话就给大家去讲到这里啦,下一集四福站加列表加圆组上。