python 编程中有一个常常被忽略但实用性极强的关键字 assert。 它的作用机制很简单,检查指定的条件是否为真,若条件成立,程序正常执行。如果条件不满足,则会抛出 assertionary 异常,在调试验证代码逻辑时极其实用。 它的基本语法为 assert condition message, 其中 condition 必选不,而表达式是你需要验证的核心条件 message 断言失败时的提示信息可以省略。我们来看一个简单的代码案例,代码首先定义一个变量 x, 并赋值为十,使用 s 二 t 关键字来判断 x 必须是正数,条件成立,正常运行,若条件不满足,则会抛出异常并提示。 需要注意的是, a 四二的仅适用于开发或调试阶段的内部逻辑会被直接忽略,因此核心业务逻辑绝对不能依赖 a 四二的。
粉丝6866获赞24.7万

泰森全套基础入门第五天泰森运算符在泰森中进行运算,与我们数学中的运算是一样的,加减、乘除,加减的表示都是一样的。乘除在编程中分别用米号键和斜杠来表示的,取用的是百分号进行表示, 双斜杠则表示争取,四方则是用双米号进行表达。大与小于是一样的,但是大于等于,小于等于则需要在后面加上等于号。 在排式中,整数和小数相加和我们的数学是一样的,没有什么太多区别,但是它和数学一样,也是有运算符优先级的, 先算括号的内容则是密运算,然后就是乘除,最后才是加减,也是和数学一样,比如我们看这行代码 print 六十六加八十八乘以二, 那么拍生会先算乘法,再算加减,得到的结果就是二百四十二,括号二十二加三十三乘以二,得到的就是一百一十段。接着我们看支付存的运算运行,得到的结果就是小张拍生,三个学习拍生。 这个时候我们就可以看到,在支付存运算中,加法和乘法是起到了支付存拼接和多次打印的效果。那么今天的重点来了, 前面的内容我们讲过,制服穿与数字是不能加运算的,因为拍三这个是制服穿,二十是数字。这个时候杰士奇就不知道你是要打赢二十次拍三,还是把拍三和二十拼接在一起, 所以就会运行错误。如果你需要表示二十次 pi 三的话,可以用乘号,如果你要表达 pi 三二十的话,就得给二十页加上引号或者 street, 改变它的数据类型。接下来开始我们今天的练习, 第一个练习分别运用加减乘除,用 print 打印出来。二、如果你要买苹果笔记本,价格是一万八, 你每个月收入减去开销乘以四个月用 print 打印出来。三、作业用第二个练习来计算你买一套房要多久时间,房子的价格是一百五十万,用 print 打印出来。 好,首先我们输入 print, 这里派生就会先匀算八十八,除以二,再加六十六,我们运行一下, 打印出来的结果就是一百一审。接着我们做第二个,同样用 pro, 用九千收入减去四千开销,再乘以四,这里净收入需要用括号破起来, 点击运行,那么得到的结果就是一万六,很显然,一万六是比一万八小,所以你四个月是买不起的。那么第三个作业呢?赶紧上手试试。

说实话,你有多少次教班进行代码,却根本不知道它的实际作用?今天就把这个问题讲明白。核心原理很简单,每个拍放文件都有一个特殊的内置变量 name。 如果你直接运行这个文件,拍放会把这个变量的值设为 name。 但如果这个文件被导入到另一个脚本中,使用这个变量的值就会变成该文件的文件名。举个例子,如果一个文件里写了打印 name 的 代码, 直接运行这个文件,输出的结果就是 main。 要是另一个文件导入了这个文件,输出的结果就会变成这个模块的名称。那执行代码的意义到底是什么? 有些时候,你希望部分代码只在文件被直接运行时执行,而不是被导入时就执行,这就是执行代码的作用。 its name 等于等于 main, 这行代码告诉 python, 只有当这个文件是主程序时,才执行后续的代码快,这能让代码结构更清晰,实现代码附用也是专业的代码设计思路。现在你不再是盲目教搬执行代码,而是真正理解了它的含义。而这就是单纯使用 python 和用开发者的思维写开放的区别。

pai 既然这么简单,第三天 print 告诫语法在 pai print 意为打印的意思,当我们输入多个 print 打印时,就会发现输出的内容是依次排下来的, 那是因为这个有个反斜杠,恩,它的作用在代码里面是自动换行,但是会被 pai 自动隐藏起来。那如果说你想在一排展示,只需要加上一个加号就能够进行支付船。凭借 在 parent 中,逗号是可以起到空格的作用,我将内容中加上逗号进行分割,那么打印出来的内容就会有空格。我们再看这行代码后面加上了 set 等于加号,那么这个 set 是 什么意思呢? 它是用来定义逗号的,你可以用 set 等于加号来定义逗号,是加号运行得到的结果就是两个字母串的拼接。同样的,你也可以定义成别的内容,比如表情,那么运行得到的结果空格就会变成表情。除了 set 能定义逗号以外, print 中 and 可以 定义反斜杠 and, 也就是它能定义换行。我们看这两行代码运行得到的结果不会改变,如果在这里加上 and, 那 么就修改了换行,变成了 and 定义的内容。再次运行, 我们就可以看到内容进行改变了,因为指令不是换行了,所以它就会变成 and 定义的内容。如果说我们输入这样一串指令,草莓,西瓜,菠萝等等,打印出来的结果就是依次向下排列,那么这个时候我们加上 and 等于和, 那么输出的结果就变了,草莓和西瓜和菠萝。接下来我们进入练习环节, 今天我们要完成的是打印一份采购清单,在这里我们可以看到需要打印的内容,型号,价格等等,我们先输入 print 手机型号,价格等等, 依次将内容输入进去,用逗号就是空格进行分割开,同样的,我们输入第二行 print, 将上面的内容填充进去,点击上方运行,得到的结果就是清单的内容。如果说你用两个 print 打印 嫌弃太麻烦了,我们也可以用三引号进行打印,不过这个三引号它会保留你的格式并行发现和之前的内容是一样的,你还知道有什么方法吗? 接下来我们定义一下逗号的内容,在最后面这里加上 sb 就 等于笑脸,同样的,我们将这个复制加到下面这行代码 运行,我们就会发现打印出来的结果,逗号空格就被替换成了笑脸,是不是特别有趣呢?最后我们再来试试定义反斜杠, n 就是 定义换行,同样的,在最后面加上 n 的 等于分别式, 那么换行就会被替换成分别式的支付串,并且将两行代码打印成一行,我们运行看看效果很好,打印出来的结果和我们预设的一样。如果说你还有什么没听懂的,欢迎这里一起学习交流。

这个视频我们学习 print 函数的基本用法,你有一个机器人,可以让他帮你处理一些难题,他很快就可以得出答案,但是他却不能开口说话,不能将答案告诉你。 print 函数就是 python 的 嘴巴,它可以让程序告诉我们信息,就像机器人开口说话一样。 print 顾名思义就是打印的意思,用来向控制台输出信息。 print 函数是 python 中最基本最常用的函数之一,这节课我们将深入学习 print 函数的各种用法。在前面的视频中,我们接触到了 print 最简单的用法, 使用双引号输出。 hello world 字母串儿也可以使用单引号,但是要注意配对 不可以,前面是双引号,后面是单引号。每个 print 打印结束后默认会进行换行,那么如果我想要在同一行输出多个值怎么办呢?别担心, print 函数是可以写入多个参数的,参数之间使用逗号分开。 打印的时候默认会使用空格进行分格。如果想要更改分格符,可以添加塞普参数设置分格符,像这样就是设置以两个短杠作为分割,也可以使用两个 print 函数实现在同一行显示。 只需要添加按的参数设置结束符,默认的结束符是换行,这里更改为箭头就可以实现在同一行显示。 我们平时在项目中肯定不会只有这样单一的输出,那么我们就要进行格式化输出,有以下几种方式,比如有变量 name 等于小名, age 等于二十。需要在控制台输出姓名冒号,小名,年龄冒号二十这样的效果。最简单的方式就是使用逗号拼接,最传统的方式是使用百分号占位符 表示函数串中变量的位置,传入的值要与百分号占位符中的变量一一对应。其中百分号 s 表示函数串儿,百分号 d 表示整数,百分号 f 表示小数等等。这种方式要求我们必须要知道变量的数据类型,使用起来比较麻烦, 我们只需要了解即可。在 python 二点六版本中新增了一个格式化方法 for 格式化,使用大括号替代传统的百分号格式化法,它的优点是可以接收不限数量的参数,参数的位置可以不按顺序。 python 三点六版本又引入了 fstream 格式化方法,它不仅比 format 更简单,而且效率更高。 在字母串儿前面加上一个 f, 就 可以直接在大括号中使用变量或者表达式了。下面我们一起练习实践一下。要求使用 print 函数 输出整齐的成绩单表格,打开我们的 python, 新建一个 python 文件,我们这节课是一点五 print 函数的用法,我们就命名为一点五 print。 这个效果中,第一行是输出三十五个等于号,所以我们可以直接写入三十五个等于号, 也可以在里面使用预算符直接乘以三十五,我们运行试一下看,这样就是三十五个等于号,第一行就输出了。第二行是标题,我们先将期中考试成绩这几个字输出, 这样运行的话它不会居中,我们可以在前面给它添加空格,调整到合适的位置。在这个效果中,文字和文字中间是分散的,我们也可以在中间添加空格, 这样基本就对齐了。第三行依旧是三十五个等于号, 这样这个标题就输出了,下面我们来输出,表头使用 f string 格式化输出。第一个字母是一个竖杠, 然后输出文字姓名,可以看到姓名和下一项语文中间有一段分格符,可以使用空格将它们分开,也可以将姓名看成是一个字母串。对象使用大括号进行输出。 字母串我们需要使用引号引起来,在这里我们可以给他进行格式化,使用冒号小于号六表示他总共占六个字母,对齐方式是左对齐,后面的也是一样,给他复制一下, 这里是语文 运行,试一下,这样我们就将每个对象所占用的字母固定了,来实现它的对齐。在这个效果中,这边还有一个竖线给它添加上去,下一行是三十五个短杠, 再之后就是输出各个学生的成绩了,我们直接复制这一行。第一个学生的姓名是张小明, 语文成绩八十五,数学九十二,英语七十八,很明显这些数字是又对齐又对齐,我们就使用大于号 运行,这样就实现了。我们继续下面两个学生,我们直接按 ctrl 加 d 复制,第二个学生叫李小红, 王大力,成绩这里就不改了,运行。最后一行是三十五个等于号,直接复制运行, 这样这个效果就实现了。除了小于号是左对齐,大于号是右对齐之外,我们还可以使用向上的箭括号进行居中对齐,也就是键盘上数字六上面的符号, 这样这个八十五就进行了居中。好了,这个案例我们就讲到这里,大家可以自己敲一敲,试一试这个视频,相信大家已经掌握了 print 函数的基本用法以及多种格式化输出的方式, 我们下个视频再见。

拍帧的学习过程中,我们经常会听到这样的说法,导入模块调包侠,安装库用框架开发,明明都是写代码调功能,为啥叫法不一样?其实这些概念就像编程世界里的工具四件套,各有分工,层层递进。模块是拍帧中最小的代码单元,本质就是一个后缀为点 p y 的 文件, 其中可能装着几个函数、几个类或者一些变量和可执行代码。它就像工具箱里的单个工具,功能单一,但针对性强。包则顾名思义,从直观表现来看,对应 ide 中的一个目录文件夹,但并非所有装 p y 文件的文件夹都是包, 基本质是一个包含 innit 点 p y 文件的文件夹,里面装着多个相关的模块。库则是为解决某类问题而整合的一组包或模块,功能更全面,覆盖范围更广。 库被划分为两类,标准库是派送自带的,不用额外安装,开箱即用。第三方库则是开发者们为解决特定场景问题开发的,需要使用 p i p 命令进行安装。框架则更为全面,它不仅会整合调用各类库荷包, 还定义了代码的组织方式、执行流程和核心架构。核心特征是控制权反转,用框架时框架控制流程,你的代码被框架调用,不用从零搭建基础结构,只需按框架的规则填充自己的业务逻辑即可。有意思的是,学习 python 的 过程也能被简单概括成从用模块到用包,再到用库,最后用框架的进阶过程。

哈喽,大家好,今天我们来学习 python 基础语法中的标识符和关键字。首先我们来了解一下什么是我们的标识符。 那标识符从字面上去理解,就是代码中用来标识指定特定事物的一个标记,比如说给我们的变量、函数类等去命名,那它就像我们在现实生活中给事物起名一样,通过这个名字,我们的程序呢,能够准确的找到并使用对应的一个内容。 不过代码中的标识符它并不是可以随意命名的,必须遵循几条规则。那首先第一条规则,我们的标识符第一个字母必须是我们的字母或者是下划线, 比如说我们的 apple banana, 下划线 apple 下划线 banana, 那 这些呢,都是我们的合法标识符。 那第二条规则呢?指的是我们标识符的组成只能有三部分,字母、数字和下划线。在满足第一条规则的前提下,我们可以任意的单个或者多个去组成我们的标识符,比如说这里的 apple apple e, apple 下划线 e, 下划线 a, 下划线 e, 它都是我们合法的一个标识符。 那第三条规则,我们的标识符是严格区分大小写的,哪怕只是首字母大小写的一个不同,也会被视为两个完全不同的标志符。 这里的 count 和我们大写字母开头的 count 就 不是同一个标识符,程序会分别去进行识别和处理。 那第四条规则呢?我们的标识符长度是没有限制的,一个字母 a 和很长的一个单词,它都可以作为我们的标识符,但尽量还是要保持简洁,优先去使用有意义的单词去作为我们的标识符。 第五条规则呢,就是除上述的一些规则以外,我们的 python 呢,它有一批有固定语法含义的标识符,我们把它叫做保留关键字,那这类关键字呢?它不能被作为我们自定义的一个标识符,没有办法为其赋予新的一个含义, 那这也就是我们要讲的第二个内容,保留关键字。那保留关键字呢?它都是放在我们 python keyword 的 包中的。在后续我们学习了 导包后,我们可以通过 keyword 的 包中的 kw list 去查看具体有哪一些关键字,这些关键字我们记住即可。 那么今天我们了解了基础语法里面的标识符和关键字的概念,那标识符就是指的我们在满足标识符命名规则的一个条件下,自定义构建那些标识,它可以代表我们程序内的一些变量、函数类等等的一个名称。 那保留关键字呢?就是指的 python 预先定义好的一个标识符,已经被赋予了特殊的含义,不能重复地再赋予意义的一个标识符,那它们都是放在了 keyword 的 包中,我们记住即可。

为什么这个在 python 里返回 false? 说些话,你本以为会是 true 吧,但 python 打印出的却是 false 等等, python 就是 连基础数学都算错了。其实并非如此, 这背后的原因很有意思,计算机存储数字的方式和人类不一样,人类用的是十进计,计算机用的是二进计。而问题的关键就在这里,有些十进计小数,比如零点一无法在二进计中被精确表示, 这就像一除以三的结果没法用实,竟计完美写出来一样。所以,当你在代码里输入零点一时,拍放实际存储的是一个近四值。 当你计算零点一加零点二时,得到的结果并不是精确的零点三,而是一个和零点三极其接近但并不相等的数。就是这微乎其微的差值,足以让这个比较硬算返回 false。 那 解决办法是什么呢?

类属性和类方法是什么?拍摄面向对象的概念中存在一些数据和功能,它是所有实力对象共享的,并不需要为每个对象单独存储一份。这类归属于类本身,被所有实力共享的成员被称为类属性和类方法。举个直观的例子,代码定义了一个草本植物类,类中包含两个属性,分别接收名字和类别,以及一个方法。 接下来我们创建几个实力化对象并打印出来。可以看到每个对象都有自己的名字,但他们的类别都是草本植物。如果把类别作为实力属性,每创建一个对象,就会重复创建一个相同的属性,既浪费空间,又不便于统一修改。这时候可以将这个属性定义为类属性,所有实力共享,又能通过类名统一修改。 与之对应的类方法则是与类本身绑定的方法,它需要通过 adclassmath 的 装饰器定义参数规范使用 cls 代表类本身。类方法的调用方式灵活,既可以通过类名直接调用,也能通过实力对象调用。熟练掌握类属性与类方法的使用,能让类的功能设计更贴合实际开发需求。

pythagin 既然这么简单,第二天变量和主式的作用。变量在 python 中是经常用到的一个元素,它的作用也非常简单,比如我们明明一个变量 money 等于六千,那么就代表了六千,复制给了 money, 这个变量也就代表了 money 就是 六千的意思。 这个时候我们加上 print 函数,打印出模拟,得到的结果就是六千。这个时候我们同时命名三个变量, m 等于三千, h 等于六千,等阶等于一万。 这里我们就命名了小明、小华、小俊,他们的收入是多少。这个时候我们想知道小华的工资,那么就只需要用 print 函数加上 h 显示屏就会显示 六千。如果说你想知道小军每个月比小明多赚多少钱,我们只需要输入 print h 减去 m, 得到的结果就是七千。接下来我们讲注式,泰森中是用井号来实现注式。 什么是注示?一半来说是写给人看的。标注这段代码的意思是什么?比如这段代码注示就给出的特别的解释,说明校长是教排生的,并且运行,我们会发现屏幕上只会出现校长,而后面的注示内容会自动被忽略。 所以注示还有一个特性,那就是不会参与代码的运行,会被自动忽略,只作为给人看的标注内容。我们来看这行代码,它就比较复杂,但是后面有注示, 你就能够明白这个代码的意思是什么。如果说需要注写的内容比较长,我们通常用三引号包括起来,从而进行注写。接下来我们开始实操环节,我们今天的目标呢 就是用变量算水果的价格,如果你要买十斤苹果或者草莓,那么需要花费的价格用代码变量怎么表示呢?这里我们可以看到这段文字,我们就可以用三引号进行注示,不然它就是标红的。注示好以后它就变成了绿色的,短的注示就是灰色的。 接下来我们写代码,我们写明明点亮 price 等于六, wait 等于十, print wait 乘以 price, 这里加上备注,表示 print。 这段代码运行得到的结果就是买十斤苹果的价格, 我们运行一下看看,显示的就是六十元。那如果你要买十斤草莓呢?重量不变,我们只需要修改价格即可,这就是变量的优势,我们点击运行得到的结果就是三百元。今天我们的变量和主试就讲到这里,下课。

type n 既然这么简单,第四天,数据类型在 type n 中有非常多的数据,有数字、小数,英文、中文。它们主要有三大类,一、整数用 inch 表示,十十八幺零八幺零零等等,主要以整数为主。 二、小数用 float 表示,带有小数点数字,如一点八,三点一,四五点二,以小数为主。 三、制服串,用 starf 表示,如 python, 校长,校长叫 python 等等。只要用引号包裹的都是制服串。最后一个就是不二字,用不二表示,通过获取的数据来判断真假。重点来了,我们看这两行代码, print 流,虽然打印出来的都是流,但是这个是不带引号的,打印出来的是数字的流,而带了引号的打印出来的是支付串的流,因为后面这个加上了引号。接着我们看这个代码,前面的流是数字,后面带了引号的流,这流是支付串, 运行的话就会出现错误。系统显示整数和支付串不能进行相加,因为它们不是相通的类型,如果要相加的话,需要进行数据转化,把它们变成相通的数据类型,在六前面加上 street 进行转化即可。所以这就是为什么要对数据进行分类。 对数据分类是编程的基础,它决定了数据可以执行哪些操作以及其他数据交互。这些数据的类型 一定要记好,因为后续很多数据匀算都需要用到这些知识。收藏好,接下来我们开始实操,今天的目标是用变量分别定义四种数据类型,并且打印出来,以及用 type 进行数据类型的查询。 好,首先我们命名 a 等于八十八,并加上指数,接着命名 b 等于三点一四小数伏洛特, c 等于学 python 制复串, d 等于两数相加,是否正确?命名好以后我们用 print 来打印一下,就能看到结果。 首先打印 a, 得到的结果就是八十八是整数 in, 再把 print 里面改成 c, 得到的就是学 python 是 制复串。然后就是的不二之判断,七十八大于六十八运行得到的判断结果就是 two。 接着我们写第二个,用 type 进行数据类型的查找,同样的我们随便进行变量的命名,命名 a、 b、 d 四个变量。然后我们输入 print type 进行查询数据类型,我们要查询 a 的 数据类型的话, 在里面输入 a 就 行。运行的到底结果就是克拉斯 float, 表明它是 float 就是 小数类型,换成 c, 运行的到底就是克拉斯斯锥就是制服串类型。 切记这张视频很重要,记不住数据的类型就会导致你后续学习数据的运算和数据的联动,学习非常困难。如果说还有什么没听懂,这里一起交流。

好,各位小伙伴们,大家好,接下来我们开始讲 python 中的第三个虚列,那就是源组了, 源组是由一系列变量组成的,不可变的虚列容器。那什么叫不可变?其实我后面我给大家写了一句话,不可以再进行添加、删除以及修改源组啊,这里要注意一下源组了,你不能对它进行添加、修改和删除。 讲到这里估计有些人不爽了,说,那我就想修改怎么办?那你就不要用原组,用什么?用列表好不好?它一旦创建就不可以再对它进行添加、删除以及修改。 那原组特点使用小括号,且逗号隔开各个数据,数据也可以是不同数据类型的,那这点和列表是一样的,所以它和列表最大一个区别是什么?是不能进行添加、删除和修改不可变。 好吧,那圆组的定义,我们可以定义空圆组,定义一个元素的,多个元素的其实都行。来,我给大家写下代码,让大家体会一下来。回到我的拍唱中,那我得新建一个新的 p y 文件了, 这个 p y 文件叫十七圆组啊。回车,那首先我们创建一个空圆组,跟之前我们讲啊,创建一个空列表是一样的吧?好,圆组给他取个变量名叫 t 空圆组,小高扩起来,这就是空圆组。 或者是接下来我们再来一个提议,那我给他指定一个元素中一个元素,比如说元素里面存放了一个自复串 abc, 我 这样子写吗?这样写其实不行的,其实准确来说了,不是说完全是错误的,只是它违反了批发规则,因为大家想想,这个毫好比是类似于这个小括号,不把它当做原组看待,把它当成分组来看的,那小括号是一个分组了。 注意,所以当你的原组中只有一个元素的时候,一定要在最第一个元素,因为只有一个,在这个元素的后面加个逗号,这个灰色的波浪线才会去掉,因为你不加这个逗号就违反了皮衣废话规则啊。好,加个逗号,这表示我们当前这个原组中只有一个元素。 好,好,那还有一些特殊的来创建源组的方法,其这两个就是特殊的。那正常情况下是这样子的,第一,第一个源组,它是假设源组里面一样的,我们多搞几个,第一个是 a、 b、 c, 第二个是十二,第三个是三点一四,第四个还是十二,这里面能不能再嵌套一个圆组了?可以,甚至你再嵌套一个列表都是可以的。好,我们代表一个列表,你可以的,没问题,这就是定义了一个圆组。还有一些特殊情况,比如说,哦,我的圆组是这样子的, t 一 等于我不加括号,比如说圆组里面有一个 abc 等号,再有一个十二, 再有一个十三,这,这,请问这是不是 t 一, 是不是原组啊?是的,只是这里面用到了原组的展开式,这个展开式你们先不要去管他啊,怎么样,这,这种情况也可以的,但是大部分的程序员不会这样子写,这是极个别的情况呀。本来按道理说我讲这个段,不想讲这个 很偏棉的指点,因为大家所有的程序员都会严格按照编程习惯。什么叫编程习惯?就是让别人一看到代码就知道这是什么东西,这叫编程习惯,因为你程序写的代码不是只是给您自己看 的,是要给别的程序员看的,要不然你的工作怎么别人怎么交接?所有的大公司都非常强调这一点, 如果说你这个人技术很强,但是技术很强,但是编程不规范,对项目近的来说是一票否决的,直接把你开掉了。 技术强没用,因为技术长,你自己写代码,只有你自己看的懂。那你的工作没办法有人去接你,对不对?那你要请假了,你要离职了,那怎么办? 所以这个很重要,所以这种很少有人去这样子写来定义一个原子,因为别人一看就好像不像原子,原子我们印象中都是小壳括起来的,是不是? 所以这种大家了解一下就可以了,不要去钻六角尖说我就掌握这个,靠靠别人,没必要。好,接下来我们要对源组啊进行一些相关的操作,源组的操作就没有那么复杂了,因为源组不允许我们进行添加、修改, et 删除, 所以原组的操作了,你看就一二三四五,就五五个。那第一个下标和切片啊。下标和切片嘛,只能做查找以及做截取。截取不是做修改了吗?这不是的,截取是截掉了一个新的原组了,就拿着一个原有的原组,比如说原组里面原来是有一 二三,那我要截一下,我可能得到了一个新的原作,是个新的原作,是只有爱好三是吧?那这是两个原作,这是原始的原作,这是得到一个新的原作,就并不是修改原始的原作。原来的这个原作一二三还在还是一二三? 我只是基于原来的这个原作,通过切片的截取得到一个新的原作,这不算修改啊, index 还是一样,这个讲了太多遍了,就是查找某一个元素,它的下标, 如果没找到报错,那他说也是讲过了,统计在原组中某个元素出现了多少次啊?一样的原组底透的东西 以表原组底透的元素是可以重复的来,是返回原组的长度,就表示我们的原组中的数据的个数循环式变量。这个也讲过的, 所以其实原组的相关操作我之前都讲过了的,没什么接下来没什么可讲的了。原组没有什么的暗的色泽,没有什么的删除 pop, 因为它是不允许在原来的这个原组上进行添加、删除以及修改。你说老师我串了一个新的原组,但没问题, 只要一创建,你就不能再对他进群修改删除了以及插入新的数据了,这些都不行,这就是我们原组的规定。好吧,好,这就是原组。那原组我们就先讲到这,感谢大家再见!记得点赞关注哦!

type n 就 这么简单,第一天 print 语法 type n 使用 print 函数来实现打印功能,在 print 后面加上括号和引号,在引号里面加上中文,跟校长学习,点击运行就能够在屏幕上看到这个文字, 当然这里还支持英文数字和别的语言,你只需要将引号内的内容替换即可。 但是在这里要注意的是, print 函数语法中,这对括号和引号都是不可缺少的,如果少了引号就会被当做是变量。我们被有命名变量的话,会导致程序报错 或者不显示,而且它们都需要是英文的格式,否则也是一样的会报错。学会了 print 输出,那么你就可以加入变量进去。我们命名 name 等于校长,那么这里的意思就是 name, 这个变量就是校长的意思。 我们将 print 里面的内容换成 name, 这个时候需要去掉引号,因为如果不去掉引号,打印出来的就是 name, 引号的作用就是远峰不懂得打印引号中的内容,也就是制服串文字。这个时候我们运行得到的结果就是校长。同样的你还可以把变量命名别的东西, 我们明明称 age 等于十八,这个时候 print 输出 age 得到的结果就是十八,变量是任意的。接下来我们来到拍墙实操一下。第一步,我们先创建文件,点击这个加号,这里有许多文件格式, 我们只需要选 python 就 行,这里我们输入 python 基础,这样你下次复习或者不动的时候就可以回来看,方便学习。首先我们输入 python, 在 这引号中输入我们想要的内容,点击上面的运行,在显示它就会出现你好, 同样的还能输出数字,八八八以及各种语言都能实现输出,还能支持混合输出。接着我们创建一个变量, a g 等于十八,将括号里面的内容替换成 a g, 运行控制台就会出现十八。 如果说我们要实现数字相加,那么先进行变量的命名,最后再将 print 中的内容改成 c, 点击运行,我们就会发现控制台输出了 a 加 b 的 数字。如果说 我们想打印一个字符串三遍,那该怎么办呢?很简单,直接在后面加上乘以三就行,这个时候控制台就会打印出三个 percent。 percent 是 不是超级简单?

这节我们开始讲的是排成的运算符,主要是以下这么五种,分别是算数运算符、双算数运算符,其实就是做一些数学计算,什么加减乘除啊之类的,当然还有逆运。算。好,第二个赋值运算符,这里面只有一个,就是一个等号,比较简单。 第三个叫复合赋值运算符,其实就是把这个赋值运数运算符进行整合,所以第三个运算符就是前两个运算符的 综合运用好。第四个叫比较匀算符啊,那就是比较大于、小于等于之类的逻辑算符,那就是与啊,或者还有非等等跟离三数学有关的那些逻辑运算符。我们一个个来, 总而言之,判断中的预算符比较简单,没有那么复杂。好,我们先从第一个开始说起。算数运算符,做一些数学计算,什么加减、乘除之类的,那我就不一个个去讲了,分别是前四个就是加减乘除,尤其是加减, 他也一定没问题。加号减号就是加减法,那比如说一加一,还是把加号,加号放在两个数字之间,行了,那乘号是星号,除号除这个斜线。好,接下来我要重点讲后面这四个,一个是整除, 整除的意思是什么意思?就是说除法计算了之后除整取,这个我们叫取商,好吧?取商叫整除, 比如说九除一次除不来,对不对?那商为二于几于一,对不对?那我指取商,这叫这个叫整除的意思。所以取商号结果为二,就是九,去除之后,他的结果就是二 啊。这个魔运算把括号其实也叫魔运算,也叫取运算。还一种说法叫魔买个魔运这个模型的魔运算, 魔运算其实跟整除了刚好有点类似,不过他取的是余数,比如说还姓亚,九除以四,商是二,余数是一,所以九和四之间的魔运算,它就是一指数计算。所谓的命运算,比如说 二的四次方,记住加两个星号,代表二的四次方,二的四次方是多少?十六,那如果是 二的平方根,也是两个信号,首先写两个信号,那左下角是命运算,命运算都是两个信号。好吧,那记住,我是要算二的平方根,这里面要写多少?写二分之一,那其实你写零点五也可以,零点五就是二分之一, 对,就二,后面两个信号后面借零点五,这其实就是相当于数学计算中的求二的平方。平方根 大概是一点点。好,小括号就不用说了。在做一些加减乘除计算的时候,你可能还要去考虑优先级的问题,因为加减乘除啊,那这些相关的计算,加减是优先级最低的。那我想把加减先算,那我就要把加号加减计算用小勾扩起来,我相信这个大家在数学里面都学过了。 好好,那关于面黄根,其实我这个代码其实有,我再给大家去详细的讲讲前面的价底沉熟了,我就不再多赘述了。好,来回到我的派叉中,我的派叉中我现在新建一个 p y 文件,叫零七算数运算。好,那我在这里做什么事情?这给大家讲讲。关于命运算以及 魔运算。说实话魔运算用的比较多的,因为未来我们要求一个数字,它是不是偶数,其实我们就可以用魔运算任何一个值,比如说 a, 它的值是多少无所谓,比如说它 a 值是十七, 那我要判断 a 是 不是一个偶数,我只要拿着 a 和什么和二进行魔运算,魔运算的结果,如果你等于零,它就是能被 i 整除, 那就是嘛,那就意味着你这个 a 是 整数,如果不能被 i 整除,那你就就是,那你就是基数。但这里不能加等号,这地方后面不能加等号,加等号错的。好,来,我们来算一下,算一下他的结果, read 就 直接打印错了,等于十七。加个 print 者 包括起来。把 a 和二进行算,魔音算之后,它的结果里应该是,一来我们运行一下走魔音算,未来用的比较多的,他又只输入计算了。比如说我要计算 i 的 平方,那就是直接 print i 的 平方,那二 二两个心后面接二,那就是计算二的平方,二的平方就是四。好,那一样,到底二的平方是多少?就把后面这个二了改成三,这表示计算二的立方, 那一样道理。我要计算这个八的平方根,记住,我要计算八的平方根,那这里就写零点五,后面这个只写零点五,零点五其实也是二分之一,就这两种写法都请来来,我给大家再写另外一种写法,把零点五来用二分之一替代,这就是二分之一吗? 对,一除以二,不就是二分之一吗?对吧?好,我来括号括起来。好吧?好,我来括号括起来。 喝起来之后了,然后我们再运行走,你看来这就是求八的平方根,二点八字,这后面好多,这是一个无限,可能是一个无限不循环小数啊,无限循环小数,从这里还看不出来啊?好,接下来了我们来继续。 那我要求这个八的立方呢?我相信大家根据刚刚我所说的应该明白,八的立方,那就是三分之一呗,哦,不啊,八的立方,立方,这三立方根啊,那就是八分之一,我们我们说的立方根,我三分之一对三分之一,这就是八的地方根, 所以大家都知道了吧,八的地方根是二,是不是?所以随便你求求他的多少多少的密密。呃,一次方其实都是可以的,对吧? 好,那我还讲一个替代方法,就是如果你不,你不想使用这种双数运算符,你可以用一个函数,就拍算里面类制的一个函数叫和, 那这个函数呢?也是来计算来做这个命算的,比如说我要计算八的立方根,记住啊,八的立方根,那二他是要传两个参数,因为这是函数传前面,传个八后面的立方根的嘛。传个三分之一,那这个三分之一的不用加参,不用加参数了,因为他是一个立方根 啊,立方根它是作为一个函数参数的方式传进去的,知道吧?不用,不用把这个三分之一小勾扩起来了,这里为什么要加小勾?扩起来仍然是小勾,是提高它的优先级,知道吧?计算了优先级, 因为这是除号,对不对?那这个是指数计算的符号,那这个指数计算的符号了,它其实它的优先级要高一些,所以呢,如果你不加这个小括号的话了,那其实是算八的一次方,然后再除以三, ok, 那 是不对了,不是我们想要的,所以我这里加小括号了,其实是把一除以三了,把它的优先级提高,对吧?提高,那也就是说先算三分之一,然后再是 八的零点三次方实现。我们零点三不是一个精确值,是零点三三三三三三。好了,那这边呢?因为它是一个函数,所以了不用加括号。好了,你看这人也可以,那一样道理啊,如果要计算啊 九的假设和计算九的平方,有的平方啊,这里改成改成九,第一个像素乘九,第二个像素的九平方嘛,乘二就行,对吧?啊?然后 print, 这里后面没打印,这边也没打印,来,我们来运行一下,走, 你看是不是都可以的,对吧?九的平方是不是八十亿?这个是按吗?二点零二,二点零七只有啊,对吧?没错吧, 这叫算数运算符啊。关于算数运数符了,我就讲到这了,接下来了,来,我们继续回到我们的文档中,我们要开始讲赋值运算符了。赋值运算符了,非常简单,就一个等号,记住,在计算机编程语言中,等号了,不是我们平常意义所说的那个等号,这是那个等于符号,不是的, 那单个等号就是这种单个等号。其实了,在我们的计算机语言中,不管是 python 程序还是其他的程序其实都一样的。这个等号呢,是赋值符号,它就是把右边的值赋值给一个变量啊,前面我们在做定义变量的时候,其实也就是讲过有个等号是赋值符号。 好吧,好,我我就快速过了。那三呢?第三,这个第三个预算法就是复合复制预算符,就是把这个等号以及前面的那些算数预算符啊结合在一起。好吧,大家可以往下看就知道了,比如说 加等号,加等号其实是什么?就是加法赋值运算符,那是啥意思?就先算加法,再赋值,就这意思。我们举个例子,比如说,比如说 c 加等号 a, 那 这句话的意思就是说先把 c 和 a 来加一下,加完之后的结果了, 赋值给 c, 所以 他等价于 d, 等价于 c 加 a 都比较简单,那其他的一样的就是你掌握了第一个,后面的都是以此类推的。好吧,所以这个了,我就不再举例子了,我相信大家一看这个就明白了,好,所以,但是呢,我希望大家呢,记住一个口诀, 就是记住先计算,后赋值,而且你要把这个口诀印到你的脑海中, 好吧,为什么呢?因为接下来我要举几个特殊的案例,就正普通案例我就不说了, 举一个特殊的案例,特殊案例是这样子的,来回到我们的拍差中,那这个了,我们还是换一个复制一下啊,零八交复合,复制预算符,复合啊,这个代码了,不要了。好,比如说,比如说接下来了,我有一个,一开始了,我有一个 x s 了,等于十,等于一百都行,无所谓,等于十一吧。好,现在呢,我要对 x 的 进行一次计算。做什么计算?你看我是做这样计算, x 加本号, 然后呢,后面借个二,再乘以一个个位,你也发现这个就复杂了,就如果我不乘以四的话,前面我们我把这个,我把这个去掉,我相信大家都看得懂, 是吧?那无非就是把 x 的 这个十一了,先和 i 进行加法计算,得到十三,再复制给 x, 所以 最后你打印的这个 x, 最后你在这打印的 x, 它有多少了?是十三是吧?我相信大家也看得懂。没错,那现在我这里加个什么了?再再加个乘号,再加个其他的算数运算符,乘以四。 好,那你要记其实很简单,你只要记住我刚给你说的口诀是还记得不?先计算,再复制,也就是说复制放到最后面,先算了,再说 算怎么个算法了?他是先计算后面的这些 i 乘以四去写运算符,就我把这个注式写一下,先计算负值,我号右边的表达式的运算表达式,计算表达式吧, 再再复合计算。那啥意思了?就是你先这个,这是复合赋值计算符对不对?先放一面,先把它右边的表达式计算出来, 那二乘以四多少? s 得八,对吧?然后得到一个八代和 x 进行加好加法赋值计算符。 好吧,那实际上是拿着 x 先加八等于十,呃,十一加八等于十九,再复制给 x, 所以 最后 x 的 值呢?是等于十九, 明白吗?不要紧的,总而言之呢,还是那句口诀,先计算了,先再复制,最后一步再复制。好吧,其其他一样的,把这个符号换成其他符号也是一样的 啊,我这再举一个例子就可以了,其他的相相对来说不难。接下来了,我们再讲。回到文当中了,我们要继续讲最后不是最后一个,是第四个比较运算符。比较运算符了,他顾名思义了,就是做一些关系的计算, 他主要是用来做判断的,通常我们做判断,比如说未来我们要用这些比这比比较计算符,放到那些,放到 if 表达式中, 放到 if else 上的逻辑。呃,运算的表达式中,那就可以用这个知道吧。比如说判断两个东西是不是相等,碰到两个变量是不是相等,那就使用等号双等号啊。这里是判断两个变量是否相等, 那如果相等,它的结果了就是处,如果不相等,那么它的结果了就是 boss, boss 就是 假,不就是真。之前我们讲过这个变量类型的时候说过的,比如说 a 等于三, b 也等于三,现在我要判断 a 和 b 是 不是相等,使用双等号,那么它的结果了肯定是处好,不等于符号, 不等于符号,是感叹号加等号,它是不等于符号。就如果这两个变量它不相等,则返回真。 如果这两个变量相等呢?则返回假。所以其实刚好跟前面这个等号判断了是不是相反,是不是?比如说 a 还是三, b 也是三。我现在要判断 a 不 等于 b 吗?他不等于吗? 他是等于的,所以他不满足不等于条件,那他是在在这种这个情况下,在这个情况下,其实了是假,除非你的 a 等于 e, b 等于三,那这个时候才是不等于,对吧? 后面的是大于大于小于小于小于以及大于等于大于或者等于以及小于或者等于。这个我相信在小学的时候你都已经见过了,然后我就不再多说了,这就是比较运算符,比较运算符了。我相信各位你最, 你可能很多很多小朋友们最比较比较麻烦的或者不好理解的,反而是这个不等他这个地方因为和我们的思维了是立下的,是吧?来我们讲几个例子,一样的, 在这叫条件熨算符啊,这叫零九了。好吧,来,商量好,有两个变量,一个是 x, 一个等于,一个等于十一。好了,一开始了,我也等了十一,现在了,我想做一个条件判断,做一个条件比较,就是 x 和 y 是 不是不相等, 那就这样写 x, 然后呢?感叹号,顿号后面接 y, 这是判断 x y 不 相等, 那我们把这个结果打印出来,记住这种条件表达式,这种条件运算符,它返回的结果了,只有处和 false 哦,没有其他的,只有处和 boss, 你 看就是 false, 对 啊,看它这个时候是不相等的,对不对?哦,这个时候相等的是,所以你不相等的话呢,那就是 false, 对 吧,因为它是相等的。 好,那大于符号跟小于符号了,我就不再说了,那个比较简单。好,我们接下来了继续讲。这接下来是最后一个回到我们的文档中,往下 逻辑运算符,逻辑运算符了,只有三个比较简单,就如果在在座各位,你在大学的时候学过那些一项数学,回到这非常简单。逻辑运算符,记住三个是宇或和非,那宇了就是安的。 好吧, and 就是 把左边和右边两个不耳直来进行语音算, 如果两个都为处,那则为处,对吧?那其中有一个为假则为假,就这么意思。好吧,你看,如果是一个处和一个 false 做 and, 那 它返回的一定是 false, 因为它有一个 false。 是 不是只要有一个 false, 但 n 的 最后的结果就一定是 false, 除非两个都是处,就 n 的 左右两边都是处, 那么才返回处就是语音算。后音算呢?刚好刚好有点相反,就是如果两个对象就是左边一个,右边一个,就是 o 的 左边和右边这两个只要有一个,不管是谁,只要有一个是处, 那我们就是处,除非这两个都是 false, 那 么才是 false, 是 不是?哈?好,那 not 呢?其实就是非的意思,它它它就没有所谓的左右两边,它只有右边有一个,这 loft, 什么什么 loft? 什么什么 loft, 后面也是接一个布尔的姓, 那么 lot 处,那就是反过来就是 false, not false 了,反过来就是处。这里要给大家说一下,所以这个不难,就是说白了就是取反的意思,这个 lot 就是 取反的意思。好,那关于这五种预算符,我就讲到这儿, 理论上来说没有什么难度,希望大家呢,就是把这个文档保留下来,未来你万一忘记了哦,我不知道不等号怎么写了,回到这个文档就是查一下,不等号就炸,感叹号加等号。好吧,所以牛突然忘了,没关系,或者说我突然忘了,老师这个命运算我不会,不会运算了, 没关系,我这里面也有代码,也有文档,是不是?你看一下这个代码,我相信你把这种法相是知道,而且我这代码上面呢,都写了注示, 是不是?不管你做什么样,什么样的命运算,比如说我做一个复杂的,比如说求十九的二零三零次方,今年是二零二三年,那我要求十九的二零二三次方, 可以,对不对?怎么做?九十九,求十九的,那后面心心两颗心,后面再接二零二三,或者你用这个炮, 用这个炮也是也是这个函数,也是可以的,对吧?非常简单,忘记了,没关系,回回扣再去查就行了。好,那关于这个五个预算符我们先讲到这,接下来了我们要讲一个大的案例了。好,感谢大家,再见。

py 函数是在 excel 中起用 python 模式的启动器,在单元格中输入等于 py, 然后按一下 tab 键确认,选择 py 函数,就可以进入 python 模式。此时单元格的编辑栏就会被转换为 python 编辑器。 py 函数有两个参数,并且都是必要参数。 参数一用来存放 python 代码,必须是静态文本。参数二用来指定 python 函数的返回类型,有两个可选值,零表示 excel 值一表示 python 对 象。 和其他 excel 函数相比, py 函数的两个参数无法被直接观测到,需要通过 formula text 函数来查看 py 函数的公式结构。 比如在上期案例中,咱们直接在一、四单元格中输入 formula text 函数,然后点选一二单元格,最后按回车键,就可以看到 py 函数的公式结构和参数。这部分就是参数一,它被一对双引号包裹起来,也就是前面提到的,参数一必须是静态文本, 这是参数二,此时是一表示 py 参数,返回的结果是 python 对 象。那什么是 python 对 象和 excel 值呢?比如在这个案例中,咱们输入 py 函数,然后点选左侧的所有员工信息,结果就会显示 data frame。 这里的 data frame 就是 一个 python 对 象,用来代表整个员工信息表。咱们点击编辑栏左侧的下拉按钮,可以看到有两个选项,然后再点击 excel 值, data frame 中的数据就会被解压释放出来, 得到的结果就是所有的员工信息。再次点击 python 对 象,所有的员工信息又被压缩到 data frame 中。总结来说, python 对 象和 excel 值是同一个结果的两种不同形态。

零基础入门 ai 编程一百讲第十七期,今天我们来讲 python 核心数据类型中的数字类型。别觉得数字简单, 百分之九十的 python 新手报错都栽在整数和浮点数上。后续学 ai 调餐 百分之八十的参数,困惑根源也是没搞懂这两个最基础的数字类型。今天这期视频,我花五分钟给你讲清楚 python 数字类型的相关细节。学完这期,你将有以下几点收获, 第一,能搞懂整数和浮点数到底怎么定义,怎么区分。第二,能搞清楚 ai 编程里哪些场景必须用对数字类型。第三,能掌握基础运算怎么操作,以及如何避免踩两个高频坑。先从一个你每天都在经历的场景说起。 刷短视频的时候,你肯定会关注两个数字,一个是点赞数,比如这条视频有一百二十八个赞,这一百二十八是能一个个数清楚的,没有半个赞。另一个是视频时长,比如这条视频长一分二十三点五秒,这个二十三点五秒是可以无限细分的,不是只有整秒。 python 里的整数和浮点数道理一模一样。整数,英文叫 integer r c n, 在 python 里写作 int r m o t。 它的定义很简单,没有小数部分的数, 比如一一零零,负五零,这些都是整数。你在代码里写 but 下划线, size 等于三十二,这个三十二就是整数,因为它表示一批次里有多少条数据。这东西不能是三十二点五条,对吧?你只需要记住一句话, 能数清楚个数的用整数。浮点数,英文叫 float, 它的定义是带小数部分的数, 比如零点零零一,三月十四日至二月五日,这些都是浮点数。 ai 调餐时最常见的表达式,如变量 learning 下划线 rate 等于零点零零一, 这个零点零零一就是浮点数。因为学习率是个比例,可以是零点零零一,也可以是零点零零一五,它不需要是整数,你只需要记住第二句话,表示比例、精度、连续值的用浮点数。在咱们玩 ai 写 ai 相关代码时,这两个类型到底怎么用啊?我给你举几个一学就会的真实小场景。第一个场景, ai 生成图片的张数, 你用 ai 生成头像时,得告诉 ai 生成几张,这时候你写生成四张或者生成八张,必须是整数。为什么?因为图片张数是数出来的,你不可能让 ai 生成四点五张图, 半张头像根本没法用。像这样写错成小数代码就是有问题的。第二个场景, ai 修图的亮度调整值。 你用 ai 把暗照片调亮时,会控制调亮多少,这时候你通常写零点三,稍微亮一点,这是浮点数。为什么?因为亮度是可以无限细分的,不是只有全暗和全亮两档。第三个场景, ai 识别图片的致性度。 你用 ai 识别照片里是不是猫时, ai 会输出一个有多确定是猫的数值, 比如零点九八七六,百分之九十八点七六确定,这就是浮点数。为什么?因为自信度是个精度要求很高的度量,差零点零零一,可能就意味着识别对了和识别错了的区别。 你想看看 ai 识别准不准,经常要把这个浮点数打印出来,看有没有提高。说完了定义和场景,咱们聊聊基础运算, python 里数字的基础运算就那几种,加减乘除、取余密运算, 我直接给代码示意,你照着就能用。注意看图,加减乘除最简单,但这里有个坑,两个整数相除,结果会变成浮点数。十除以三等于三点三,三三不是三。 如果你想要整数结果,用整除计算符,两根斜杠表示整除,还有一个取于运算百分号,用百分号表示,这个在 ai 里也很实用。好,核心知识讲完了,现在来讲两个高频的坑。第一个坑,整数和浮点数混用导致精度问题。 你以为一加零点七等于零点三,实际等于的值有很多个小数,可以看图中的值,这是有误差的。为了避免这些误差,你可以使用一些内置的函数来处理,例如比较浮点数时,用 max 点 is close 这个函数来处理。第二个坑,整除和除法搞混,你想取整数商写了 result 等于十,除以三,以为结果是三, 后果结果其实是三点三,三三的无限循环。后续代码如果依赖整数就会报错,防止踩坑。你需要明确你要的是什么, 如果要浮点结果,用单斜杠除法,要整数商用双斜杠整除。最后总结一下今天的内容,整数是能数清楚的个数,浮点数是带精度的比例或连续值,使用时注意浮点数的精确问题, 搞清楚概念就问题不大了。下期内容我们讲 python 核心数据类型中的布尔类型, ai 逻辑判断必用 布尔值,就两个值, true 和 false, 但它是 ai 里所有条件判断的根基。怎么用布尔值?控制模型训练流程?怎么避免那些让你代码跑飞了的逻辑陷阱,咱们下期见,有不懂的在评论区问老黄,给你一对一回复。

今天带大家三分钟学修,学完所有编程基础。我们输入 print hello world, 点击子星后,屏幕上就会显示出 hello world。 如果你想输出别的内容,只需更改引号内的文字,无论是中文、英文还是其他语言都可以。 我们打开 part 看一下效果,控制台上就可以输出我们要的内容,那么这个时候你就学会了 print 基础。但有一点要特别注意,在 print 语句中,括号和引号都是必不可少的,缺少任何一个都会导致程序无法运行。 下面我们继续学习 input 语句的用法,它主要是获取数据的,不过输入的数据需要被保存下来,这就涉及到了变量的概念,比如我们可以定义一个变量, a 等于一万五, 那么 a 就 代表了一万五这个数值。通过 print a 便能在屏幕上输出一万五。接着我们可以用 a 等于 input 输入你每个月的收入来获取用户输入的信息。点击运行就会显示让你输入收入。同样的来到劈叉,我们运行一下看看效果。 这里让我们输入收入,我们随便输入一个数字,他就会存储起来。如果说你想存三个月买电脑,那么就得到这样一串代码, a 获取用户每个月的存款, b 等于存款乘以三个月。这里要注意,三乘以 a 需要在 a 前面加上 i, n, t, 因为它们数据类型不一样,需要进行转换再计算, 再用 print 输出三个月的存款。运行以后,它显示输入金额,我们输入三千,它就会打印三个月能存九千元。 尽管这个视力看起来基础,但历劫其中的逻辑对于掌握编程思维非常关键,得到数据我们就可以判断,如果你想三个月买苹果电脑,价格是一万五,如果能够存够幺五零零,就答应可以买苹果电脑,否则就答应不可以买电脑。 得到的代码就是这样的,我们运行一下代码,输入四千,运行得到的结果就是不可以卖电脑,输入五千,运行就会得到三个月可以买苹果电脑。这个时候恭喜你学会了一副 判断语法,喜提来了,如果说你今年过年前要买一台车,价格是五十万,请问你十个月收入要达到多少才能买呢?用代码如何表达,可以发在评论区一起交流。接着我们学习如何制作一个随机点名系统。 开始之前,我们需要先学习列表,先命名一个列表,您等于这里要用括号包裹起来, 里面存放上人名,用英文逗号隔开。列表也可以单独用 print 获取,不过是有位置的,从零开始, 一二三排序的。如果我们需要获取这个,就输入 print a 三,就可以获取我们要的人名。接着来到 pr, 我 们导入随机模块, input 导入模块, 导入 random 随机模块,再把我们刚刚的列表放进去,最后再用 print 输出,在内幕中任意取数据。每次运行得到的名字都不一样,那么恭喜你学会了制作一个随机点名系统。如果说你最近也在学习 python, 这里一起交流。

下面呢,我们来讲讲 python 中的变量,那么提到变量呢,很多同学,尤其有开发经验的同学,那么会想到我们任何的开发源中呢,都是有变量的,变量的主要作用呢就是来存储数据,我们后续对数据的操作都是通过变量名来进行实现的, 那么在 c 语言或者是 java 语言中呢,我们去声明一个变量,都需要给这个变量明确一下它的类型,比如说我定义了一个整数的变量,它就不能存小数了, 但是 python 跟他们不一样, python 中的变量呢,是不需要声明变量的类型的啊,比如说我们 python 变量的类型是根据值来自动进行变化的, 那这点操作呢,其实和 gs 是 很像的啊,比如说我们的变量是没有明确它是什么类型的,那它存什么类型数据都可以,然后根据你存的值来决定它是什么类型的。 那首先呢,我们来看一下,在拍存中,我们一个变量到底可以存储哪些值啊?那么这些值也决定了它能存储哪些类型的数据。我们打开我们的编辑器啊,咱们通过代码演示的形式给大家讲解一下,我们是可以存储哪些值的。 首先呢,咱们从最基础的讲起,我们说的数字啊,那么在数字中呢,一般我们至少要有两种数字,一种呢叫做整数。 好,那么还有一种叫做什么叫做浮点数,或者说我们可以认为叫做什么叫做小数,对吧?叫做小数。那么整数如何进行存储呢? 好,我们存整数的时候呢,大家去定一个变量,比如说定一个年龄等于多少呢?等于二十五啊,这时候呢,我们通过一个整数值赋给我们这个 age 这个变量,这时候这 age 变量的 啊,类型就存成整数类型了啊,那么浮点数的话呢,我们可以通过小数的形式进行赋值啊,比如说我们存储一个身高 一点七五,对吧?那这时候这个身高这个变量呢,就是我们说的浮点数啊,浮点型的变量,这时候呢,我们可以通过打印的形式啊,打印出来我们变量类型,那么在这呢,我们要知道一个函数,这个函数叫什么?叫做 type 函数,这个 type 函数的主要作用呢,就是帮助我们 去查询或者说返回啊,我们变量的类型,这个变量到底什么类型呢?我们用 type 就 可以,这是我们用这个 type, 然后把你的变量名字放到 type 里去啊,我们分别打印一下啊,看一下我这两变量什么类型的,这会咱们执行一下, 好答案出来。结果呢,我们看啊,第一个年龄,它类型什么是 int 类型,第二个啊,这个身高它是 float 类型,就是我们说的浮点型啊,浮点型,这是两个不同的类型,那浮点型呢?大家注意一个问题,浮点型呢,它是存在精度的问题的,比如说我们做一个浮点型的匀算, 好,我们做一个,比如说零点一加上零点二,好,那我们看下这个值等于多少啊?我执行一下,那么很多人会认为是得零点三,其实不是,因为我们 float 是 存在它什么啊?它的精度的,有时候带小数嘛,所以你看它得的结果呢是零点三,中间很多零,最后有个四, 这就是它的一个精度的问题啊,精度的问题,这是向量型,算的时候大家要特别的去注意啊,那这两个是咱们数字中比较常见的,那还有呢,我们比较常见的就是字母串类型,在 python 中呢,并没有字母这个类型,所以我们用的都是字母串,比如说定一个名字, 我们叫 tom, 那 么在使用字母串的时候呢,大家可以用双引号,它也支持什么呢?支持单引号 啊,也可以去输入单引号,这是可以的啊,就双引号,单引号都可以,但是不能混着用啊,只能啊同样的样式用在一起啊,那我们还是通过打印的形式啊,看一下我们这个名字什么类型的 呀?这个名字就是 str, str 指的是什么呢?我们的字母串儿类型,字母串儿呢是咱们后面要重点讲解的一部分,因为咱们在开发中用字母串儿用的还是比较频繁的,再往下呢就是布尔型 好,那么波尔的话呢,其实就是真还是假啊,真还是假,就说它的值呢,就两个,一个处,一个 false 啊,那么我们还是可以通过负值的形式啊,比如说我们负一一只 student, 是 不是学生,我们复给一个处,大家注意这个 t 是 大写的啊,那这时候呢,我们这个 is student 啊,它的类型就是布尔类型了啊,那布尔类型呢,除了可以设处和 false 以外,我们用整数也可以去代替布尔,有时候布尔值呢,也可以变成整数,如果作为整数的话,啊处就是几啊,处实际上就是一 啊, false 实际上就是零啊,这个跟咱们其他圆都很像啊,就整数代表真假的时候,一代表真,零代表假啊,我看一下,这是布尔型, 那么这些类型呢,是咱们其他圆中也经常会用到的啊,这些都是咱们也都知道的,那么在 python 中呢,除了我们说这些基本类型以外啊,它还有几种类型是比较特殊的啊,但是咱们开发中用的比较频繁啊,第一个呢,就是列表 啊,列表,那么如果学过 java 同学应该知道在 java 中有个什么,有个 list, 我 们叫容器,是吧,就是列表。列表其实跟宿主很像啊,就是它可以存储很多信息,在一个内存空间内,对吧?然后有下标来去指引它。 那么我们在 python 中呢,也可以用变量啊,去指向一个列表,比如说我们指向一个成绩, 那么列表怎么来赋值呢?在 python 中的列表啊,它用的是综合号,跟宿主就很像,对吧?综合号我们给它赋值,比如说九十、八、十、九、七十五、六十。那就说现在呢,相当于我存了有四个值,在一个内存空间中 啊,把它赋给了一个变量,这个变量呢,它存储的就是一个列表型的变量,我们同样呢,把它的类型打印出来, 好打出来啊,你看它类型什么是 list 类型对吧?列表类型好,那么关于列表具体什么特征,咱们后续来介绍啊。列表它是可以往里加数据的,加数据的, 然后再往下还有种类型呢,这个可能在其他语言中比较少, python 中是有的,叫什么叫源组,可能其他语言的时候大家可能听得特别的少, 那么原组的话呢,它跟列表很像啊,但是跟列表有一个区别,就是它的值是不能修改的,就是我们这个列表中啊,这个值,比如说我现在有四个值,我可以给它加一个值 啊,动态加,比如说咱们用这个 time a pan 的 方法,比如在后面咱们再加一个八十八,那这相当于什么含义呢?就是我之前这个列表中有四个值,现在八十八加到后面变成五个值了,这个大家比较好理解,比如说列表是可以改变它的值的,但是原组是不能改变的啊,比如说咱们定义好的一个原组, 好,我们我们用这个,呃,年龄,年龄原组吧, 原组在定义的时候呢,用的是括号啊,括号啊,比如说我们给他几个年龄,二十二、二十一、三十三十五啊,大家知道这时候这个原组定义好之后,我这个原组能不能修改它里面这个值?比如这个最佳一个值能不能呢?它是不能操作的, 说定义好之后它就不能变了,这种叫原组列表的话呢,是定义好之后还可以修改啊,它叫做列表,所以这个呢,原组可能大家在其他原中定义的并不是特别多,它有好处呢,是可以帮防止我们去修改值 啊,比如这个指令要受到保护,对吧?啊?可以防止他被我们代码中其他方式所修改了,其他的特性呢,和列表特性都很像,就是咱们到时候具体来讲我们还是一样,但是把它的类型打印出来 啊,看最后一个是什么呢?是这个原组的类型啊,这是原组还有一种结构呢,是咱们其它原理也有,尤其像 java 中有,就是以 k 和 yu 的 形式存储的,我们在 java 中呢,管它叫做 map 结构,是吧?但是在这呢,管它叫字典 啊,四点结构,这个四点结构呢,它就是 key 对 应的 v 流啊,你可以理解为咱们 java 中的 map 很 像啊,那么在存储它的时候呢,要存一个 key, 一个 v 流,怎么去存?比如说我们存一个学生的信息,然后它用的是大括号,用的是大括号啊, 存的时候注意先存它的 key, 比如说 name, 然后叫汤姆啊,然后逗号,这是一个 k, 一个 y 六,然后再写一个 k, 年龄二十五,身高一七五啊,这是一个学生信息,这时候大家发现它是以 k 和 y 六形式来存的啊,那么它这个类型呢 啊,我们管它叫什么?叫字典,叫字典啊,字典呢,咱们在后续使用中也用的比较常见,因为它有个好处,可以通过 k 值来取 y 六,很方便。 ok, 好, 再往下叫集合,这个集合呢,如果学过 java 同学应该有印象,那么在 java 中呢,我们同样有一个类型,也是集合这个类型啊, set 这个类型啊集合, 那么集合这个类型呢,它具备的特征就是它的数据是不重复的啊,说我们在集合中存储数据,它是不能从的啊,那它的一个最大作用就是可以进行去从的操作啊,去从操作,我们来定一个,比如说水管 apple, 这是一个 banana orange, 比如说这个里面大家注意点,我是不能给它 再去定义一个 r 值了啊,定义了之后它也自动给你去重,最后只有三个值,因为它本身 set 里就是没重复的,那么它使用的呢?也是这个大括号啊,也是大括号啊,但是跟我们这个字典很像,都是大括号,区别呢?字典是有 k 和 y 六的,这个只有一个值啊,这种结构呢, 叫做集合结构啊, set 这个结构, set 啊,这是集合。 ok, 那 么从集合到字典到源组到列表啊,这四个结构, 可能咱们学习其他源同学呢,遇到的并不多啊, java 中呢,列表,字典,集合 这三个是必学到的啊,我在加我中这个字典叫做 map, 那 么原组可能不太常见,原组大家就理解为是一个受保护的列表就行了啊,列表可以改它的值,但原组不能改,不能改就是受到保护的列表。好,那这四个是 我们在后台开发中啊,用的比较普遍的一个复杂的类型,当然在实际开发中呢,可以有更加复杂的类型啊,怎么复杂呢?就把我们前面学这类型啊,可以做一些组合啊,给它组合成复杂的类型。如果一个一个类型功能既可以有字典,也可以有集合,或者说也可以有 串啊,这种叫什么呢?叫做千套型的数据类型数据结构啊,这特别复杂的千套数据结构,这个结构就按照你自己要求去定义就行了,你看你需要什么样的,我们来写一个,比如说存班级, 这时候呢,我们大的结构呢,给它存成一个 set 啊, set 啊, set 第一个里面呢 啊,我们给它存成存成这个字典吧,存成字典啊,我们说这个班级里呢,它应该有两部分信息,一个就是学生在班级里,对吧?我们用字典 k 和 y 六型来去存储,这是一个信息啊,另一个信息呢,就是老师的信息, teacher, ok 啊, 首先呢,这个外面这个结构,我们存成什么结构呢?存成字典的结构, k y 六, k y 六啊,然后学生来说呢,学生他会有很多个学生,对吧?会有很多个学生啊,所以学生呢,有很多个。好,我们给他存成什么?存成列表, 存成列表,那么老师呢?可能只有一个老师,但是老师可能有很多的属性,他有名字,有年龄,是吧?等等等等啊,他可能有很多属性,所以这个老师呢,我们存成一个 字典啊,存进一个字典,所以大家看啊,这个结构,整体这个 classroom, 这个结构是一个字典结构。那么字典结构的第一项,学生呢?是一个列表,拥有很多学生,老师呢?只有一个老师,所以老师呢?他的值是一个字典结构 啊,接下来我们再看啊,这个学生呢,每一个学生会有很多的属性,对吧?名字,年龄什么的,所以每一个学生,我们在列表中再去存储一个字典,代表两个学生啊。然后第二个学生也是有什么呀?名字, 年龄,身高, 这就是在一个列表中去增加两个什么呀?两个字典啊,那么对于老师来说呢,那他只有一位老师,所以他只有一个字典结构。王老师 啊,比如说我们存一下这个老师,呃,他教什么课?比如他教的是 computer 吧 啊? ok, 大家看下,这个结构呢,它就不是咱们前面所说的单一结构了,它就是一个什么啊?签套的结构了,外面是一个 字典,字典里呢,第一项啊的值是一个列表,列表里再写两个字典,老师呢,它的值直接是一个什么啊?字典的结构啊?字典的结构。这时候我们打一下这个 classroom 的 类型啊,你看一下它会打出什么? 我们看下 classroom 什么类型的啊?这时候你打印的时候呢,它会只识别一层,对吧?那识别第一层是个什么结构?第一层就是一个字典结构,所以它认为它是一个字典的结构啊,不会往里再进行访问了啊,比如说我们想看一下里面这个学生是什么结构。 好,我们在这呢,就按照字典的方式去访问它。字典访问呢,就通过 k 的 形式,所以我们要加一个 k 啊,这 k 写谁呢?写这个学生啊, 执行啊,你看这个学生什么结构?是个列表结构,那学生里面是个列表,对吧?那老师呢? 老师应该也是一个字典结构,对吧?也是个字典结构啊,所以这个 type 呢,只能识别一层,它是什么类型的啊?但总体这个结构我们认为是一个嵌套型的结构,那么这种嵌套型结构呢,在在后续实际开发中用的是特别普遍的, 比如说你解析 ai 返回的信息,那这个信息肯定不是一个嵌套结构来组成的,对吧?我们按照嵌靠形式给一层层拨开就可以了 啊,那这是我们说的我们 python 中的一个变量啊,它是什么类型的?那跟你赋的值有关系,那么到底可以赋哪些值呢?我们就可以赋这些值啊,有什么呀?有整数 赋点数啊,自负串布尔列表,原组字典集合啊,我们也可以做什么呀?做一个复杂的一个这样的结构出来,也可以赋给我们这个变量啊,所以这个变量什么类型的?跟你赋的值是有密切关系的。

排审既然这么简单,第七天一夫判断语法。在排审中,一夫的意思是如果他能够根据你给的条件进行判断,如果符合条件就执行代码,非常简单。 接着我们来看一下代码,先明明一个变量来获取用户的成绩,当然你也可以获取别的信息。 接着我们用 if 来写条件,如果成绩小于六十,则用 print 打印成绩不合格。那么这个时候我们就完成了一个简单的 if 判断语法。不过这里需要注意了, 如果我们用 input 获取数据,则需要在前面加上 int 进行整数类型转换,因为 input 获取得到的信息是制服传。接着就是 if 后面跟条件判断,最后加上英文的冒号。 在写执行代码的时候,在需要在前面加上 tab, 就是 四个空格来表示 print, 这串代码是属于 if 的。 接着我们继续讲,如果说用户输入的成绩大于六十呢?我们就加上一手以示作为, 如果小于六十,打印成绩不合格,否则打印成绩合格。这个时候我们就多加上了一个条件判断和执行代码,我们运行一下 显示屏就会让我们输入成绩,这里我们输入五十,那么他就会根据条件判断输出成绩不合格。我们再次运行输入八十,打印的结果就是成绩合格。接下来我们开始今天的练习, 我们先看第一个题目,如果你想买一台摩托车,价格是两万,用你每个月的收入减去开销,如果三个月能买就打印,可以买摩托车,如果买不了就打印,买个蛋。 课外作业参考题目一,你三年能首付四十万买房吗?如果能,就打印三年能买,否则打印还得努力。现在我们开始做第一个题目, 明明摩托等于两万,先定义摩托车的价格是两万,接着我们用 input 获取两个数据, a 是 每个月收入, b 是 每个月开销。得到数据以后,我们明明一个 money 用来代表三个月的存款, 存款等于收入减去开销再乘以三个月,那么 money 就是 你三个月的存款。我们再用一副写条件,如果存款 money 大 于摩托,也就是大于两万元,就打印三个月可以买摩托车,否则打印买个蛋。我们运行一下,它会让我们输入收入, 这里我们输入一万五,接着输入每个月开销是六千,然后程序就会根据我们的数据计算并打印出来, 结果就是三个月可以买摩托车,那么请问固定开销是六千,那么最少要收入多少才能买摩托车?最后作业根据这个题型就可以写出来,记得交作业下课。

大家好,我是程序员老王,今天我们来聊聊 python 中的类型标注。假如我写了这么个函数, add a b 与 return a 加 b。 我 的本意是求两个整数 a b 的 和, 但因为 python 是 动态类型语言,实际上 add 的 用法比我设计的求整数和要多得多。比如我下面注示掉了代码 add 可以 求小数的和,可以连接字母串,甚至可以连接两个列表。 别人用这个函数的时候就很容易出错,时间长了没准我自己都不一定知道当时设计的本意。解决这个问题的方法当然有很多了,比如说我加一个注士, 但注士这东西不是人人都会读的,特别是像这种一看就特智障的函数,我一般就直接拿来用了。当然我也可以给函数起一个好一点的名字,比如我把它变成 at int, 这 好,这样名字虽然清晰了,但依然避免不了手抖。我用的时候没准还是一不小心就传进去了一些奇怪的东西,比如传进去了一个字母串,当然我还可以在 at 里面判断一下 a b 是 不是整数。 这种方法也不错,但可惜必须到了程序运行的时候才能发现问题。拍上的类型标注能更好的解决这个问题。当然,在实际工程中,我建议前面的修改我们还是保留,但是为了演示呢,代码有点乱,我们还原一下代码。 在拍上中,我们可以用冒号给变量和参数标注类型, 比如说 a 和 b, 我 们就标注为 int, 然后可以用横线和尖括号给函数的返回值标注类型。这样一来,变量和返回值就非常明确了,都是 int, 一 看就明白, 但人嘛,总会出错的,即便我们标注了类型,可能还是会有人手抖写出了错误的调用。 比如这里我传入了一个 float, 就 不是 int。 注意啊,类型注式是不会影响程序的运行的,即便是这种错误的调用, python 还是会照常运行,它并不会给出错误,我们可以试一下。 好在我们可以用静态类型检查器找出这类错误。拍丧的社区中有很多的静态类型检查器,它们的功能都大差不差。这里我用的是 my pad, 如果没有安装的话,可以用 pip 来进行安装 好,这里我已经装好了。现在我们用 my pad 来检查一下刚才的程序, 可以看到 make 找到了两个错误,说是 add 的 参数一和参数二类型不匹配, 它期待的类型呢,是一个 int, 但是却得到了一个 float。 于是在程序运行之前,我们就找到了这个错误。 现在我们来加强一下这个寒酸的 i 的 函数,让它除了能做整数 int 的 加法以外,我还想让它支持浮点数 float 的 加法。 函数题我们不用变啊,因为加号本来就支持浮点数。类型注示,我们可以用 union 表示一个变量,既可以是 int, 也可以是 float。 好, 我们来看代码。 首先我们从 typing 这个 package 中来 import union, 然后把 int 变成 union, int float, 这样就表示 a, 这个变量既可以是 int, 也可以是 float。 我 们把其他变量也改一下。 好,这样我们的函数就支持 int 和 float 两种类型了,再运行一下,买派 好,没有报错。不过这样有个问题,看着 uni, int, float 这一大堆代码重复了三次,我就浑身难受啊。于是我决定再给它们起个别名叫 num。 我 们可以用等号给类型起别名, 然后我们就可以用 num 来代表 uni, int float 这个类型了。 哎,这样就顺眼多了,我们再来试试运行买派 好正常工作。三点一零以后的 python 还提供了另一个语法堂,我们可以用竖线来代替 union, 代码就还能再简化一点。 我们可以把 unit 改成 int 竖线 float, 然后这个 import 就 不需要了,再运行一下。好,依然是没问题的。 下面我们介绍一下 non 的 处理,还是这个 i 的 函数。假如这个时候我们有个奇怪的需求,要求这个函数只能处理正数,如果 a 或 b 是 零或者负数的话,我们就返回 non。 先来实现一下这个逻辑, 现在函数的返回值就不仅仅是上面定义的 num 类型了,还有可能返回 num。 union 同样可以处理这种情况,只要把 num 放在 union 里就可以了。 当然,你可以不用竖线,直接用 union number, num 也是一样的。 除了 union, python 还专门提供了 optional 类型来处理这种情况。 我们先来从 typing 这个 package 中 import 一下 optional, 这种 optional 写法和 union 的 写法是完全等价的,不过我觉得 optional 更容易理解一些。为了验证一下这段代码的有效期,我们定义一个新函数,负责打印出 num 的 值。 当函数没有返回值的时候,我们就标注它的返回值是 non。 这也符合 python 运行时的行为,当一个函数没有返回值时,那它返回的值就是 non。 然后我们用新定义的 print num 来打印一下 add 的 返回值。我们来运行一下 make, 这时它会提示我们的 print num 函数想要一个 int 或者 float 作为参数,但是我们给它了一个 int, float 或者 num。 很 快啊,买派就帮我们找到了一个 bug, result 没有判空,马老师都直呼内行。 好,现在我们来修一下这个 bug, 我 们可以在 print num 之前加一个判断。 这次我们再来运行一下买派, 好,没有问题了。 最后我们再来看看如何处理列表。 list 代码有点乱,我就把没用的部分删掉了。 typing package 同样提供了列表的对应类型 list, 我 们先把它 import 进来, 然后我们就可以这样标注一个包含 num 的 列表。 好,我们再写一个打印 numlist 的 函数用来做测试。 我们再来运行一下 my pad, 好, 没有报错,一切正常。 python 三点九以后也可以直接使用小写的 list 类型来进行注式, 这样我们就不需要从 typing package 中 import 这个大写的 list 了。不过我个人更喜欢大写的注是,因为我觉得它和其他的类型注是比如 union 啊啊, optional 啊,风格更统一一些,所以我这里还是改回去。 最后我们来看一下这个列表,一个 int 型的列表,那么如果我们用 int 型的列表来调用 print name list 会不会成功呢? 从直觉上感觉应该可以啊,因为 num 类型它包含 int 呀。如果 print num list 函数连 num 的 列表都能处理的话,那么 int 列表应该也可以处理才对。我们再来运行一下买派, 可以看到它报错了,说是 list int 和 list union int float 这个类型不匹配,并且它还建议我们用 sequence 来处理这种情况。 为什么这种情况会不兼容呢?我来改一下 print number list 这个函数你就知道了。 这次 print number list 最后在 l 中增加了一个小数, 因为 list num 这个类型是支持小数的,所以 print number list 这个函数这么做是合法的。那么如果买 pi 允许把整数列表 int list 当作 num 列表的话, 就有在整数列表中加入非整数元素的风险了。所以说这两种元素不兼容,那么解决方法是什么呢?就是使用 sequence。 sequence 可以 看作是一个只读的列表, sequence 的 定义中没有像 append 这样可以改变列表内容的方法, 我们来试试看。首先从 typing 中引入 sequence, 然后把 print number list 的 参数类型也变成 sequence, 这时候我们再运行一下 myp, 可以看到他又报错了,这次他报错的内容是什么呢?说 sequence int float 这个类型里面没有一个叫做 append 的 方法。好,这次我们把 append 的 方法去掉, 再运行一下 my pad, 好 错误消失。除了今天说的类型以外, typing package 中还有很多其他的类型,比如说 tuopictset 等等,用法都大同小异,我就不一一介绍了。 下次我们来介绍 python 类型中的范型以及 list 和 sequence 的 实现原理。今天的视频就到这里,如果对你有帮助的话,请点一下关注,我们下期再见。

拍森中隐藏的趣味彩蛋,带你学习这些冷知识!拍森作为一门开源编程语言开发者,社区里总是藏着不少有趣的小秘密,你知道吗?在拍叉中,其实藏着三个有趣的彩蛋,玩起来既神奇又好玩。 第一个是 hello 模块,只需要在拍唱里使用 input 导入它并运行,控制台就会自动输出 hello world, 全程不用敲 print 语句,是不是很神奇? 第二个是 this 模块,也就是经典的 python 之馋。运行它,你会看到一首诗, the son of python, 它用简洁的诗词道出了 python 的 设计哲学和核心美学,每读一遍都有新的感悟。第三个更有趣,事事导入 antigravity 模块并运行, 这时会立刻弹出一个漫画网页,上演一场幽默小剧。场地上的人望着天上飞行的家伙,惊叹道,你怎么做到的?空中那位潇洒的回答,因为我用了 python, 既形象又自带幽默感,让人会心一笑。如果说觉得有趣,记得支持主播哦!