您使用 emp 破坏设备犯什么罪啊?同学们,我们来看解答, emp 啊, emp 是 什么?电磁脉冲,高能微波是一种什么?利用电子脉冲啊,破坏电子设备的武器。这就是为什么在游戏里面对应为 啊引领丢出这个 emp 手雷啊,可以使其他干员的电子设备啊,短暂的一个失效。那么我们现在来看啊,这个无线电或电磁体工作原理, 白书条幅调频、手机信号接触属于什么?属于一个电磁能啊,这些电磁能就跟你在这个日常生活中见到这些光啊,辐射啊一样,都是非常常见的一个能量啊。 那么同学们,我们知道电流可以产生磁场,磁场也可以产生电流,低强度的无线电传输啊,只能产生将信号传输的一个电流啊,就像你用手机给别人发消息,对吧?他只能产生一个 很小的一个电流,这个电流只够你把这个信号啊传送出去,对吧?但是若是你突然大幅增加磁场, 那么会怎么样呢?就像你使用了这个 emp 手雷,他突然大幅的增加了一个周围的磁场会怎么样?会损坏电子设备的半导体啊,电子设备就啊直接坏掉了,那么他现在损坏了这个电子设备的半导体,他犯了一个什么罪呢?我们来看啊,营运使用 emp 破坏他人电子设备,他的结果是使他人的电子设备无法运行。我们根据中华人民共和国刑法第十四条啊,营利明知自己丢出这个 e m p 啊,会使他人的电子设备啊进行一个破坏, 但是他仍然将其丢出去,破坏别人的一个设备,他属于什么?属于一个故意犯罪。同时我们根据中华人民共和国刑法第一百十四条, 一 m p, 他 能够对电子设备造成破坏啊。那么他属于什么?属于一个危险物质。那么一密使用危险物质,他破坏了他人的设备,这是什么?这是破坏公共安全啊! 所以我们得出结论啊,盈利触犯了什么?他可能触犯了以危险方法危害公共安全队啊。同学们,如果有在讲师这一节课当中有学到什么东西,记得给讲师点点赞,点点关注啊!同学们,我们下期再见啊,我们下课!
粉丝3975获赞4.0万

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

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, 运行的到底就是克拉斯斯锥就是制服串类型。 切记这张视频很重要,记不住数据的类型就会导致你后续学习数据的运算和数据的联动,学习非常困难。如果说还有什么没听懂,这里一起交流。

拍伞爬虫教程第十一天叉 pass 语法哈喽大家好呀,我是钱!前几期我们掌握了解析接伞和获取 h t。 妙源码的技巧,但在上一期实战中,大家可能发现了, 并非所有响应数据都是规整的接伞格式,更多时候我们面对的是一段融长且复杂的 h t。 妙源码, 此时若强行使用解析接送的方法显然是行不通的。那么面对这些层层嵌套的 h t、 m 标签,我们该如何精准提取数据呢? 比如在电商平台,你需要从杂乱的代码中精准锁定商品价格与商品名称。在招聘平台,你关注的是具体的岗位头衔以及对应的薪资范围。在小说平台,你想将成千上万字的章节内容整齐的剥离出来, 依靠人工肉眼查找效率太低。而简单的字幕串截取,不仅代码难写,一旦网页结构微调,程序便会立刻报错。 有没有一种像代码里的 gps 导航一样的工具呢?能直接穿透复杂的标签迷宫,精准定位到我们想要的那一行文字?答案是肯定有的, 今天我们就来学习这位主角,叉 pass。 如果把 html 网页比作电脑文件夹,那么叉 pass 就是 其中的导航路径。 正如我们通过 c 盘文档报告点 tst 的 路径找到文件一样,叉 pass 也能沿着网页的标签层级,一步步精准地找到你想要的数据。 下面这段代码展示了一个书籍商品的结构。大家可能会发现,代码的缩进看起来参差不齐,这很正常, 不要只看缩进,而是要看谁包着谁。这就好比家庭关系 diy, 是 家长直接生出了 h、 r、 p、 u、 l 和 a 这些孩子,也就是子标签,而 ul 又生出了 li 标签,所以 li 是 ul 的 孩子。 但对于最外层的 diy 来说, l、 i 就是 他的孙子,也就是孙标签。你清了这种上下级的包含关系,你就能轻松地写出叉 plus 了。 学习叉 plus, 不 需要死记硬背,每个符号的定义,只需掌握在哪里找,找哪个拿什么。这一条完整的逻辑链,我们就能将所有语法符号融入到这三个步骤中。 第一步,确定搜索范围,也就是在哪里找,是找哪一个标签,以及是在当前层级下往下找,还是整个 html 源码搜索。那首先是精准查找子节点,也就是单斜杠,它的意思是只找亲儿子, 例如 div 斜杠 h 标签,意味着 h 二必须直接挂在 div 下面,中间不能隔带,适用于结构非常严谨的局部查找。 其次是局域模糊查找双斜杠,也就是找所有的子孙。这也是常用的方式。例如 diy 双斜杠 li 标签,意味着不管 li 藏在 li 下的第几层,也就是儿子、孙子重孙子标签,只要属于他,通通抓出来。 第二步,锁定目标标签,也就是找哪一个。找到一堆标签后,需要利用条件筛选,把真正需要的那个挑出来, 可以按属性筛选,也就是中括号艾特属性等于具体的值。这也是精准的定位方式,很多关键的信息,比如价格链接都藏在属性里。我们可以这样写,双斜杠 p 标签,中括号艾特 class 等于 press, 它的意思是先找所有的 p 标签,然后筛选只保留 class 属性等于 press 的 那一个。当然也可以按位置筛选,那它可以这样写,中括号数字,它的意思是当标签长得一样时,可以按顺序获取。 例如双斜杠 li 中括号一,也就是在所有的 li 标签中,我只要第一个标签。第三步,提取最终数据,也就是拿什么 定位到正确的标签盒子后,决定是拿走整个盒子,还是只取里面的文字或者属性。 比如说先获取文本内容,那就是斜杠 test, 后面跟上括号,它的意思是打开盒子拿文字。例如双斜杠 hr 中括号 at class, 等于 title。 斜杠 test, 它的意思是获取 class 属性为 title 的 hr 标签里面的文本内容,那就是获取 python 编程入门,那如果说是提取属性值,那可以是斜杠 at 属性名, 它是不拿文字,是专门拿盒子上贴的标签,比如说链接地址哈弗,或者说图片地址 s r c。 那 可以看这个例子,双斜杠 a 标签,斜杠 at 哈弗, 那它的意思是找到所有链接标签,也就是 a 标签,但提取它们的 half 属性值,也就是网址。 现在我们将上述的逻辑串联起来,解决获取那本书的价格数字这个问题。首先第一步,全职搜索, 我们的价格是在 p 标签里面的,所以说先用双斜杠获取 html 源码中的所有 p 标签。第二步,条件锁定,网页里有很多 p 标签,我们需要的是价格,所以加上条件 at class 等于 press。 最后提取内容, 此时定位到的是 p 标签这个盒子,但我们需要的是里面的数字,所以要加上斜杠 test。 那掌握了这些基础语法后,你便拥有了在 h t m l 中精准定位数据的能力, 不再面对杂乱的代码无从下手,但真实的网页结构千变万化,无 plus 属性怎么办?层级嵌套复杂,如何应对?下期我们将直接进入实战环节,手把手带你提取图片与小说内容, 将双斜杠 at 中括号 test 真正转化为代码的生产力,亲眼见证数据被整齐提取的过程,敬请期待吧!

为什么说领克幺零 e m p 是 一台被网络舆论吓怕了的车呢?这台车的车身够不够安全?它的混动四驱是不是假四驱,以及领克幺零 e m p 的 底盘是个什么水平呢?今天我就从技术角度呢来给大家讲一下这台车,看看领克幺零 e m p 跟比亚迪相比哪个更有优势?咱 们还是先看车身。领克幺零 e m p 的 前防撞梁为最高强度的七系铝合金材质,并且在内部还进行了加强, 两端呢为斜口木子型结构,没有像特斯拉那样安装偏置导向块,因为没有必要。普通车的碰撞结构呢,像一根木棍,在撞车的时候呢,容易造成硬力集中,一撞就断。领克幺零 e m p 的 防撞梁后面的吸能盒尺寸非常的宽, 最起码相对于这台车来说呢,是非常巨大的,比后面的后纵梁要宽出不少。这个吸能盒的后边连接了主纵梁和上副纵梁,前防撞梁呢只比吸能盒宽出那么一点点,所以当发生小重叠碰撞的时候,这根防撞梁的一端不会因为硬力集中而断裂, 所以冲击力呢,会先让这根铝合金的防撞梁和后面的吸能盒开始溃缩。然后呢,后面的主纵梁和上副纵梁还有车底的副车架等等结构开始同时承接冲击力, 并且会通过主纵梁后边的外八字结构和上副纵梁把冲击力尽量引导到车身两侧,减少对车内成员和 a 柱的直接冲击。另外呢,领克幺零 e m p 的 前减震器塔顶也是高强度钢材质,没有使用铝合金,并且两边的塔顶还通过一根顶八进行连接,这样可以进一步增加车身的刚性。 再往后看乘员舱,这台车的 a 柱和车顶横梁使用的强度为两千兆帕的热成型钢,并且还把 a 柱做成了四层结构,这四层钢呢,全部都是超高强度的热成型钢, 当然这四层结构不可能都是两千兆帕,里面的几层呢,是强度稍微低一些的热成型钢,因为强度越高,延展性呢就会越差。当 a 柱直接承受冲击的时候,比如常见的钻卡车车底, 假如冲击力非常的大,连两千兆帕热成金刚都给撞断了的话,那么这个时候还可以让强度低一些的钢材进行延展和变形,尽量做到万无一失。 领克在这里重点宣传了 a 柱的强度,其实就是被网络舆论呢给裹挟了,大家都害怕 a 柱断裂,那么我就把 a 柱给你加到最强。另外这台车还给你使用了十宫格铝合金的门槛梁,用来加强对电池包的保护, 从而可以应对能量更大的冲击力。当侧面冲击过来的时候,十宫格门槛梁也会进行扩缩吸能,并且由热成型钢材质的壁柱来减少成员舱的侵入量。在侧面碰撞过程当中呢,既可以保护电池,也可以保护成员舱。好车身呢,咱们就说这么多,接下来呢再讲讲领克幺零 e m p 的 混动系统, 这套系统主要包括一台一点五 t 的 发动机,一百六十三匹马力,一台三档 d h d 变速箱,前轴两台电机分别是 p 一 和 p 三电机,还有后轴一台 p 四电机,中间呢还有一块动力电池 系统,总功率呢是三百九十千瓦。很多刚刷到我的朋友,不如我的粉丝们更专业,我先给大家解释一下这个 p 一 p 二 p 三电机是什么意思,其实很简单,大家就记住一点, 距离发动机的位置越远,那么这个字母 p 后边的数字呢就越大,比如领克幺零 e m p 这套混动系统,上面的 p e 电机就直接装在发动机的曲轴后边,只要发动机转它就转,那反过来 p e 电机转,发动机也得转。 p e 电机呢跟发动机的转速是捆绑着的,主要用来启动和发电用。 而 p 三电机呢就放在了变速箱的后面,只要电池有电,这个 p 三电机呢就可以单独驱动前轮,不需要经过变速箱。 p 四电机呢就放在了后轴上,离发动机呢就更远了,用来驱动后轮,这样不需要转动轴呢就可以实现四轮驱动,当然前提是电池得有电。 所以这套混动系统呢,非常的灵活,可以实现四驱和两驱的纯电模式,还可以实现发动机单独发电的增程模式,还有发动机直驱模式,更有发动机和电机并列输出的模式等等等等。有人说这台车的后电机呢,只有九十千瓦,是个假四驱, 与其说这是个假四驱,那倒不如说这是一套以前轮驱动为主的电四驱,就像燃油车世界里边那些横置发动机的四驱车,这并不是假四驱,准确来说呢,是工程上的一种选择。 后轴放一个小功率的交流异步电机呢,对于消费者来说有就比没有强,而对于车企来说呢,以可以接受的成本增加一套四驱可以提升产品的竞争力,那么小功率的后电机的转子不需要稀土永磁体,价格本来就低, 后电机功率越小,逆变器就越小,高压线呢也可以做的更细一些,然后动力电池也不需要更大的放电能力,这些成本全部都可以省下来。 领克幺零 e m p 这台车本身价格就不贵,这套四驱呢,用来增加防滑能力和增加提速效果绰绰有余了。最后呢,再来看看这台车的底盘怎么样。 首先这台车的轴距特别的长,达到了三米零五,轴距越长呢,横摆惯量就会越大,所以长轴距的车天生就不擅长高速过弯,所以在悬架形式上必须要得用最好的。 所以大家可以看到,领克幺零 emp 的 前悬架为双叉臂,后悬架呢是五连杆,前后仰角都是铝合金,前后副车架呢都是钢制副车架,前悬架所有的摆臂和拉杆全部都是铝合金。后悬架的这个四根拉杆和摆臂为钢制材料,剩下的一根拉杆呢是铝合金材质。 双叉臂呢可以更好地控制外倾角的变化。在弯道中,普通的麦弗逊悬架呢,会让轮胎的外倾角变正,最后导致轮胎的接地面积变小。 而双叉臂呢,可以让轮胎一直保持负的外倾角,接地面积更大,过弯的时候呢,抓地更强。所以在这里就可以得出一个结论,轴距只要超过三米的车,横摆惯量更大。所以如果想要保持操控性呢,那就必须使用双叉臂的悬架, 五连杆的后悬架呢,可以同时提升车辆的舒适度和操控性,还可以让车辆在加速或者是刹车的时候,轮胎位置更加稳定,更不容易出现轮胎的跳动。总之,五连杆和双叉臂呢,已经是最好的悬架形式了。好,领克幺零 e n p 呢,咱们就说到这,下次希望我再讲什么车呢,可以打在评论区,咱们下次再见啊!

在 excel 中可以直接使用 python 了,无需额外安装 python, 即可通过 python 代码在 excel 中分析和处理数据。本期聊一聊如何在 excel 中使用 python。 第一,如何启动 python? 在 excel 中启动 python 有 两种方法,可以依次点击公式,插入 python 命令,或者在当前单元格中直接输入等于 py, 就 会显示 py 函数。 此时输入左括号,或者直接按下 tab 键,单元格左侧就会显示两个绿色背景的字母 p y, 表示 python 启用成功,接下来就可以直接输入 python 代码。第二,如何执行 python 代码? 比如在 c 二单元格中输入一加一,如果按一下回车键就会换行。如果按 ctrl 键加回车键,就会执行这段代码,并显示结果,也就是数字二。 当插入多个 p y 函数时, excel 会按照从左向右自上而下的顺序执行。比如在 c 二单元格中定义两个变量,数量等于一百,单价等于十。然后在 e 二单元格中再插入一个 p y 函数, 输入数量乘以单价,按 ctrl 键加回车键,得到的结果就是一千。如果把 e 二单元格的内容移动到 b 二单元格中,就会显示一串井号,而不会显示正确的计算结果。 这是因为 excel 会从左向右先执行 b 二单元格中的 python 代码,而此时代码中的变量并没有被定义,因此就会出现错误。 如果移动到一二单元格中,因为 c 二单元中已经定义了变量,因此就可以正确执行。另外,在 python 代码中还可以直接引用 excel 中的数据,比如在 c 四单元格中输入百分之九十,然后修改一下 e 二单元格中的 python 代码, 先输入乘号,再点选 c 四单元格,就可以直接引用 c 四单元格中的数据,按 ctrl 键加回车键后,得到的结果就是九百。 仔细观察这段 python 代码,可以看到 c 四单元格都被一对小括号包裹,并且前面都有两个字母, x 和 l, 我 们称之为叉 l 函数。以上就是 excel 中 python 的 基础用法,关于 py 函数与 excel 函数,咱们下期会详细讲解。

大家好,欢迎来到派森编程语言基础课程前面我在学编程的过程中呢,用了输出,输出的指令,但是每次都用的是死的,数据不太灵活。今天我们学习编程中最基本的一个概念,变量,变量就像是一个贴了标签的一个盒子,你可以往里面放东西, 也可以取出来用,还可以换成别的东西。那理解变量是编程思维的第一步,今天我们用通俗的这个比喻让你彻底搞懂它。学习的目标是 理解变量的概念和作用,创建变量和它的使用,理解变量名与值的关系。最后一点呢,理解 python 变量的动态特征。那首先什么是变量?我们把它跟生活中的例子做一个比较呢?就是 想象你有一个储物柜,柜子上贴着我的书包这样一个标签,那么今天我可以把数学书放到我的储物柜里,明天呢,我也可以换成英语书,标签呢还是我的书包,但里面的东西已经变了。编程中的这个变量就是这样, 变量名就是一个标签,柜子里的东西呢,就是变量的值,可以这样映射着去理解一下,储物柜的标签呢,就是变量名, 那柜子里的东西呢,就是变量的值,那我把里面的这个东西换掉了呢,就是给这个变量名重新赋值。我们看一个例子啊,创建一个 a 值等于二十五,那这就是在创建一个变量同时,我给这个变量赋了一个值二十五。这个变量呢,我们怎么使用?我们可以在函数里面,我们可以打印它, 比如我们这样看,进入 python 的 交互实名,面向我们有一个 age 等于二十五,那我怎么使用它呢?我在这个 print 函数里,一传入这个 age, 它就会把这个值打印出来,那 print 是 一个函数,那它的使用呢?就是把这个 age 的 变量传给一个函数, 那函数最终打印出来,它不是 h 这个变量名,它是二十五。我们用这个变量的时候呢,其实它就 python 解释器呢,会把这个 h 这个变量给我们,把它的值拿出来,就是关联到这个值上面来,那这个我们还可以通过 呃这个变量进行计算,比如我给它加一个值,加个五,或者我给它乘以某某值,我给它放大多少倍, 那十倍,这都是这个变量的使用。那变量它还可以作为另外一个表达式,这是一个表达式,这个表达式计算到的结果呢?我纯复制给这个新的变量,又创建了一个新的变量,叫 new age, 可以 把它打印出来,这是我们变量的创建和使用。第三点呢,就是变量的核心特性,这个大家要了解变量里面的值是八十,第一次把它打印出来, 那我们可以给这个变量更改一个值,比如说我们给它更改一个九十,我们再打印出来, 我们继续给它可以更改一个值,叫, 哎,是吧?我们可以给变量创建一个变量,完了给变量进行更改值,那这就是变量的第一个特性,变量的值是可以更改的,这就是它叫变量的根本原因。 橱柜还是那个柜子,但是里面的东西变了。第二个特性,变量可以储存不同类型的数据。再来一个 x, 我 们首先给这个 x 复制了一个一百,那它的类型是什么呢?我们可以通过这个 python 有 一个内置函数哈 type, 我 可以通过 type 这个函数看它的类型,它的值是一百,那它的类型这样表示出来,里头这个引号里面是叫 int, int 就是 intender 整数,那我可以继续给它,因为它有个特性,它的值是可以改变的。那我可以改变值的时候,可以给它一个 hello 这样一个括号,那我们再去通过 打印 x, 并且去查看它 x 的 变量类型的时候,它打印出来的是 str 和 string, 它是变成字母串,那我可以再给它去复制。比如我叫三点一四,我们再去看它的类型,它又变成 float 了,它的类型是可以变化的。 但是这个地方啊,咱们需要注意一点,就是 python 很 灵活,同一个变量呢,可以先从数字后存文字,就像橱柜里面,我们可以放书,也可以放衣服。但是需要注意的一点是,虽然 python 允许这么做,但是实际编程中 频繁改变变量类型会让代码难以理解。在真实项目中尽量不要这样使用,在需要的时候,我们根据需要创建不同应用场景的变量,不要这么拮据。第三个特点,变量就是一个标签,他不是盒子。咱们再看一个例子,咱们把屏幕清一下,看一下这个,他又创建了一个绿色一啊,里面只是一 二三,它又来创建了一个 list 二, list 二是 list 一 就相当于有个储物柜,它里面存的是一二三,但是给储物柜贴了两个标签, list 一 和 list 二。那我们来看 list 一 和 list 二, 它都对应的是一二三。那好,我们通过 list 一 比这个这个函数大家还不太了解哈,咱们不着急,后面咱们会继续去学到这个知识点,是列表的知识点, 我们给这个通过 list 一, 给这个列表里面追加了一个元素,它现在有四个元素,再去看 list 一、 一二三四,那我们再通过 list 二这个标签去看这个里面存的什么东西,它还是一二三四, 这个例子非常关键,这个语句 list 二等于 list 一, 它不是复制,不是拷贝的意思,而是给这个同一个列表贴了两个标签, list 一 和 list 二就像同一个人有两个称呼,我们把我们把这个 地方呢叫做引用啊。后面学到列表的时候,我们会详细讲这个引用这个概念,在这里我们讲到这个变量是一个标签,它不是盒子。下面呢,我们再讲一下这个变量的创建和使用,前面简单讲了我们的这个变量是怎么创建的,那现在我们详细的看一下它这个变量是怎么 怎么去创建的,怎么复制的。第一步有一个引号括起来,这个叫 alice, 这个字母串呢,我们给它复单等号,就一个等号叫赋值。我们把后面的值复制给前面的这个变量,我们也可以把后面的这个表达式计算出来的这个十加二十表达值,这个计算出来的值复制给前面的这个变量头头表达式。这个变量创建出来之后呢, 我们也可以把变量参与的这个数学运算表达式复制给另外一个变量,通过其他的变量赋值。而且我们也掺杂了一些数学运算,我们也可以把一个函数,这个棱是一个函数,它可以计算这个自变量 里面字母的个数啊,也叫字母串长度,计算出来之后呢,复制给前面这个变量,愣死,我们可以看一个屏幕的那个情况,可以看,可以有这样一个变量,也可以有,比如说我们一加二,我们有一个 price 十,我们可以通过 plus 给它打一个八折,我的变了新名字和那个 fun 没关系,它也是可以的。我们可以通过 这这样一个函数,我们计算,它计算的是 hello, 那 我们计算 name 吧, name 是 我们刚刚创建的,这个变量叫 alex, 那 我们把它把这个,那我们把这几个变量 name, toto, 这几个变量还有什么? ctrl, 我 们把一二三四, press, 不要了,我们把这些变量呢?可以也可以打印出来,看一下它的值。 name 等于 alice, 套套是多少?套套加出来一加二等于三 三,愣死,愣死,这个 name 的 长度是多少来的?一二三四五,它有五个字母嘛?就五,它的字母的长度就是五啊。 price 是 十,它的八折呢,就是八,它这个通过赋点数计算出来呢,它把这个数据类型得到的是赋点数八点零。变量的使用哈,大家看一下这我们具体它的一些常见变量,我们看一下一些常见的一些 用途哈。我先创建两个变量,它的宽高宽高这两个变量是可以参与数学运算的,它的这个姓和名是分别是两个字母串, 那星和明的这两个变量呢?也可以参加这种,可以参与这种。这个地方的这个加号不是数学运算,是自复串拼接的运算,拼接出来以后呢,它的新的自复串叫张三, 咱们先看完例子再演示哈。有一个变量,这个变量是 message hello, world, 我 们可以打印,这就其实就是我们第一节课的内容,只不过它把里面的内容 print, 里面的内容是通过一个变量传进来,变量也可以参与条件判断, h 是 十八,那这个 h 参与了条件判断。接下来我们说一下,虽然在这个啊,非计算机专业,其他的专业其他的同学,比如说数学,数据分析啊,其他的一些同学在学习这个 python 的 时候呢,不是特别可以不去深入的了解 这个变量在内存中的这个模型哈,但是建议还是去了解一下,如果是即刻相关专业的同学呢,强烈建议去了解这个 概念哈。在计算机内部变量是这样工作的,看一下,这样如果我们有一个变量 x 等于十,那这个 x 等于十这个变量呢?它其实指向了内存里面的一个空间,那内存里面这个空间它存的是什么呢?它存的是是一个地址,零 x 开头,这是表示是一个十六英寸的值啊,因为 内存地址我们我们经常用十六英寸来表示,零 x 是 一个前缀,幺零零幺是一个十六英寸的值,它表示的是一个内存地址。 那真真这个内存地址是存的是什么呢?是还有一块空间,他存的数据是十,这个值本身从十的这块内存,他的内存的地址是这个地址,所以说你看他是这样的变量是 存的内存地址,它里面其实存的是内存地址,内存地址指向的是真正存十的这块内存的内存地址,它是这样的,好,我们来看一下,其实在 python 里面呢,有一个函数叫 id, 后面有个括号哈,我们把变量传进去,就可以查看 这个变量在内存中的地址。比如我有一个,你看例子中变量是十,我们可以看一下这个变量的地址 id, 我 们可以看 x, 它的值是我们这个地方是十六进,但是我们在这个 id 函数,它打印出来的只是个实进值,这个没关系,它这个实进值再有个变量 y 等于十, 我们再去打印 y 的 内存地址,咱们看 x 等于十, y 等于十,又打印出来这个地址,那细心的同学可能注意到了,这两个地址的内存地址的值是相等的,那为什么呢?是 python 做了一个优化,因为这个十本身其实就是一个 固定的值,这个值能改变吗?那不能改变,我们给把这个十给他打了一个标签,是 x, 我 们给这个十又新打了一个标签, y 就 相当于十,他有两个标签 x 和 y。 潘森因为他知道他就在没有去重新再开辟一块空间,把这个重复再存一个十,这样的话,那 x 指向的这个十是一份, y 指向的十是另外一份,这是不是有点浪费?这个时候呢?潘森做了一个优化,潘森做自己做的优化, 就让 x 和 y 两个标签,两个变量指向了同一块内存地址,那如果说我们给这个 y 附一个新的值, 那这个时候,哎,我们去看 y 的 这个内存地址,是不是和刚开始等于十的时候的内存地址已经不一样了,对吧?那我们继续再看 x 的 内存地址,他没有变化,因为 x 值,我们 x 的 值我们在这个过程中没有做改变,这就是他的内存模型。 id 函数显示变量指向的内存地址哈,当变量的值改变时,实际上是让变量指向新的地址,这就是标签的含义,这就是这个标签的含义, 标签可以贴在不同的对象上,标签可以贴在不同的对象上,对吧?那咱们看一下下面的这个例子哈,我定了啊,矩形的这个宽和高,棱次和 y, 它的宽和高分别是十和五,那我们在计算面积的时候,可以通过变量来取到它的值进行计算, 那当然我们也可以说这个例子这么简单,那我们可以直接把十放在这,把 y 和这个棱次直接用十和五来表示, 可以的,但是变量有他用变量的好处,那如果说下面还要用这些变量的时候,那我们用变量就比较方便。如果说我们要重新计算在这个宽高发生的变化,我们在这个变量的后面我把它只更改了就可以了,我们没必要去 把它涉及到五和十的地方全都改一遍,是吧?那变量的好处呢?我们总结一下呢,就是你看它的可读性比较好,那我们在这种表达式中我们就知道它是啊宽和高,在计算它的周长的时候呢,也是宽和高加起来二倍的宽,高和计算面积的时候宽乘以高,我们就很好的理解它是在做什么。 但如果说我们要用数字的话,是十乘以五啊,你能看出来它是计算面积吗?如果没有这个注数的话,大家很 难想象到他是在做面面积的计算,也看不出来他是在做周长的计算,还而且还是异于修改。如果说我们要修改宽和高的值的话,我们直接上这里就改一个地方就好了,我们没必要下面再去把每一个地方的这个值都改一遍,而且他还可复用,对吧?关于变量的常见的一些问题啊,咱们总结了这么几点 啊,给大家讲一下。变量名可以随便起吗?这个是不可以的,我们下节课会讲这个变量名名的一个规则。简单说啊,它里面只能包含字母、数字下划线, 而且还不能以数字开头,不能是 python 的 关键字。第二个问题呢, python 的 变量需要声明类型吗?不需要,因为 python 是 动态类型语言, 它会自动地去推断类型。我们在整个这个演示的过程中,没有指定它的这个变量的类型是整数还是浮点数还是指数。那 c 语言和 c 加就是一个需要声明类型的,但是 python 是 不需要的。第三个问题,一个变量可以存储多个值吗?这个是可以的, 我们现在了解的这种整数啊,字幕串、福点数,这种是不可以,但是我们后面会学到这个列表、源组、字典等这种容器类型就是可以存储多个值,因为它是个列表,可以存储变量,会占用多少内存呢?这个根据不同的数据类型是不一样的。整数类型呢,通常会占用四到八字节。 哎,字串呢,它取决于你你字串的长度,比如说一个单词或者是一段话,这个是不一样的,取决于你的数据的长度哈。 python 会自动管理内存啊,我们现在,呃,在 python 编程中,我们不太不不要去担心它的内存管理的问题。 好,第五个问题,可以不用变量直接写值吗?可以啊,但是不推荐。就像我们刚刚上面的这个例子里面 求这个矩形的面积和他的周长的时候创建了变量和没有创建变量那差别会很大,但是没有使用变量的这种代码是难以理解和维护的。今天这节课的内容就讲到这里,谢谢大家。

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

yo 大家好,我是程序员老王,这次我们讲犯行中的逆变与邪变,上次我们定义了宠物店犯行 store, 并且讲了犯行的不变性。没有看过上一期的小伙伴可以暂停看一下代码,或者从视频简介中找到上个视频的连接。最后我们停在了 by animal 函数, 摆 animal 函数接受一个 animal store 的 参数。当我们把王这个 store dog 变量传进去以后, 买派会提示我们 store animal 与 store dog 不 兼容, 因为 animal type 在 默认情况下具有不变性。意思是说,虽然 dog 是 animal 的 子类型,但是 store dog 和 store animal 是 没有父子关系的。那我们要怎么把这件事告诉 python 呢? 我们把 animal type 的 correlate 属性设置为 true, 这就相当于告诉 python, 如果 dog 是 animal 的 子类型,那么 store dog 也是 store animal 的 子类型。我们回到 by animal 函数,由于现在 store dog 是 store animal 的 子类型了,于是我们给 store animal 传入 store dog 的 操作 也就变得合法了。我们再来试试买派 可以看到现在已经没有错误了,顺便以说,系统类型 list 是 variant, sequence 是 co variant。 所以 当我们写 list dog 和 list animal 的 时候, list dog 和 list animal 是 没有父子关系的,而 sequence dog 则是 sequence animal 的 子类型。 我们一直在说类型的父子关系,但注意,这里说的类型的父子关系不一定就是继承关系。如果是继承关系,比如 dog 与 animal, 那 么子类 dog 就 一定是 animal 的 子类型, 但 store dog store animal 本质上是同一个类,它们就没有继承关系,但 store dog 依然是 store animal 的 子类型, 并不是说标注了 corarin 的 属性就能称为子类型的 pep 四八三这份文档中定义子类型要符合两个条件, 一、父类型要包含子类型所有的值。我们的 store animal 显然是包含 store dog 的。 二、子类型要支持父类型的所有方法。我们子类型 store dog 的 拜方法 是支持复类型 store animal 的 拜方法的。因为虽然 store dog 返回的值是一个 dog, store animal 返回值是一个 animal, 但是由于 dog 也是 animal, 所以 二者兼容。 而这里我注视掉的 restock 方法是不兼容的,因为 store dog 只支持把狗当做参数,但 store animal 也可以把其他动物当做参数,所以 store dog 的 restock 就 不能完全包含 store animal 的 restock。 于是有了 restock 方法, store dog 就 不能是 store animal 的 子类型了,也不能用 coherent 来进行标注了。现在我们把 restock 的 注式去掉,来试试有 restock 函数式买派的运行。结果 my pad 提示不能用一个 concurant 类型来当做参数。原因刚刚我们已经聊过了,那么 int 和 union int float 是 不是子类型呢?有兴趣的小伙伴可以用刚刚的两个条件判断一下,留言告诉我你的答案。 好,现在宠物医院倒闭了,我老王改行当宠物医生了。医生是一个范型 treat 函数,用来给 animal type 指定的宠物看病。 因为我老王对猫过敏嘛,所以还是只能给狗看病。那么这时有个人在找医生,他想给他家的狗治病, 我老王当然是可以给他治的,我们来运行一下买派, 这时有个兽医老张,他什么动物都能治,所以类型用 animal, 那 他能给那家的狗治病吗? 逻辑上应该是可以的,但是代码上好像不行,因为章的类型是 doctor animal, 而 doctor animal 不是 doctor dog 的 子类型,所以不能当作参数来调用。 treat my dog, 我 们来试一试。 不出所料,买派报了类型不匹配的错误。那如果我们把 animal type 改成 variant 呢? 好像也不行,因为如果改成了 variant, 那 么 doctor dog 就会变成 doctor animal 的 子类型。但是我们希望的是, doctor animal 是 doctor dog 的 子类型啊,它是反过来的,这时我们就需要设置 control variant 属性, control variant 跟 co variant 正好是相反的,设置了这个属性, doctor animal 就 会变成 doctor dog 的 子类型。我们再来试试麦派 错误消失。好,我们来总结一下,如果 dog 是 animal 的 子类型, 那么在参数变量为默认的情况下,也就是 in variant 的 时候,范型 store dog 和 store animal 是 没有父子关系的。 当参数变量为 co variant 时, store dog 是 store animal 的 子类型。 如果参数变量是 contrarient, 那 么 doctor animal 将会是 doctor dog 的 子类型。 coarrent 子类型关系和 dog 与 animal 的 关系是相同的,叫做协变 contrarient 子类型关系和 dog 与 animal 的 关系是正好相反的,所以叫逆变。 covariant 和 controlvariable 这两个概念在实际应用中是比较容易弄混的。我的个人经验是,如果不是必要就别用,咱们别给自己找事儿。要是用的话,如果类型变量是返回值, 一般我们就用 covariant。 如果类型变量是参数 或者范型本身是一个回调函数, 那么一般我们都用 control variable。 好 了,我们的类型标注系列大概就到这里了, 如果大家对我的视频有什么建议,或者有什么想听的其他话题,都可以留言给我。如果你喜欢本期视频的话,希望点个关注,我是程序员老王,我们下期再见!

学车载测试没有台架怎么办?我这边呢用 python 写了一个桌面窗口化的 g u i 程序,将这个程序当中的一些变量和数据 和看 o e 当中的豹纹信号进行了一些绑定。当这个程序在运行的过程中,我这边使用呃看 o e 中的 i g 模块儿 对它发送一个信号,这边呢可以直接显示到对应的这个程序窗口上, 这样呢就脱离了这个 color e 本身自带的这个盘头面板。然后我们在自己创造的面板中可以呃定制各种各样的一些功能,就比如现在这是一个座椅加热的一个 呃信号窗口,这是一个按钮。然后当我去控制 i g 面板呃发送豹纹的时候,大家看当我现在的状态,它是指示一,它的这个座椅加热呢是关闭的,然后我现在 呃点击二,那么大家看这个信号状态直接变成了高亮显示。

picasa 爬虫教程第三集 request school 的 使用浏览器向服务器发起请求,然后获得到服务器响应的页面内容。这个过程我们可以想象成去奶茶店买奶茶,奶茶店就是服务器,奶茶就是我们想要获得的内容。 如果我们想用代码模拟这个行为,就需要借助一个非常实用的 python 库 requests 库。接下来的时间,我们就来学习怎么使用 requests 库,并通过它发起请求,抓取并保存百度首页的页面。 request queue 是 一个第三方库,所以我们需要先在终端中以命令的形式安装它。打开终端,在终端内写上 pip install requests, 然后按下回车就可以下载安装最新版本的 requests queue。 安装完成后,如果终端显示 successfully installed requests, 说明安装成功了。如果之前已经安装过,就不会出现这句话,而是显示 requirement already satisfied 表示你之前下载安装过这个第三方库。你也可以在终端用 ppleist 的 命令来查看当前已经安装了哪些第三方库。 成功安装好 request 库之后,我们来看看怎么用它。发起请求使用第三方库之前,除了下载安装,还有一步很重要,那就是在 python 文件中导入模块。 大家还记得之前讲过的三种导入方式吗?第一种是直接导入整个库,第二种是只导入库中需要使用的方法, 第三种是导入库并给它取一个别名。这里我们采用第一种方式直接导入整个 request 库。上个视频我们已经了解了发起 http 请求两种常见方式, get 请求和 post 请求。在 request 库中发起 get 请求就用 request 点 get 方法。 发起 post 请求,就使用 request 点 post 的 方法,当然光写这两个方法还不够。 request queue 不知道你想对哪个网站的服务器发起请求,所以我们需要在方法的括号里传入参数。第一个参数当然是最重要的,也是不能省略的,就是传入你想抓取的网页的网址。 比如我们想向百度首页发起请求,那么就以字母串的形式把网址传进去,告诉 requestcool 我 们想访问哪个地址。现在我们对服务器发起了请求,我们发起请求,服务器会对我们的身份进行甄别。而现在我们是以 requestcool 爬虫的身份发起了请求, 就相当于一个机器人想要去奶茶店喝奶茶,奶茶店老板看到后觉得机器人没有味觉,不想浪费自己的奶茶,就不会给机器人奶茶。那么作为机器人如何伪装自己成功买到奶茶呢?还记得之前我们在浏览器里看到的请求头吗? 浏览器发起请求时,会在请求头里带上自己的身份信息,也就是 user agent 发送给服务器。我们只要让 requests 也带上这个浏览器的身份信息,就能成功伪装成浏览器。那么我们怎么获取浏览器的身份信息呢? 在浏览器里右键点击页面,选择检查,进入开发者模式,然后切换到网络这个选项卡, 刷新页面,然后找到这个蓝色的图标。三 w 点百度点 com, 我 们在右边的标头中就可以看到浏览器发起的请求,以及响应 上个视频学习的浏览器发起 http 请求,找到请求头内会写上的 user agent, 用户代理复制上这一串浏览器的身份,然后在我们的代码里把这段身份信息放进 header 参数中, headers 表示的就是标头, user agent 和浏览器的身份存在对应关系,所以使用字典的形式储存,然后作为参数的值放入了 request queue 发起请求的方法中,这样我们就将 request queue 发起的请求包装成为了浏览器发起的请求。 写好这个方法之后,你就会获得服务器的响应。以 get 请求为例,我们把响应的内容保存到一个变量里,这个变量我们叫做 response 响应。那么我们现在打印一下这个 response, 发现 request 库将响应的内容打包成了一个对象。在这个响应对象里有两个我们最常用的属性,第一个 http 状态码, 使用 response 点 status code 属性,我们就可以查看 http 状态码,通过状态码我们可以知道发起的请求是否成功。第二个 response 点 text, 这个属性里面装的就是服务器响应给我们内容中响应体里的具体内容。 学习了怎么发起请求,怎么获取响应内容之后,我们来通过抓取百度浏览器首页的形式来实践一下如何使用 request cool 成为一名爬虫吧。 在拍唱中,我们需要新建一个项目,所以我们在这个主菜单中选择新建项目,然后在这里写上你新建项目的名字,在这里我不做修改。爬虫项目需要使用到虚拟解释器, 所以我们创建项目的时候需要做出一点修改,我们需要将环境勾选这个生成新的解释器,解释器的类型选择这个虚拟环境。简单来说,你可以把虚拟环境想象成一个独立的干净的项目。专用工作间,你之后可能会同时开发多个 python 项目, 不同的项目可能需要同一个库的不同版本,为了避免版本冲突,所以我们需要使用到虚拟环境。 接下来我们点击创建,打开这个新窗口。大家需要注意的一点是,虚拟环境是独立的,所以在不同的项目中使用同一个第三方库,例如 request 库都需要重新下载,那么现在我来重新下载一下 request, 点击到终端,然后在终端以命令的形式写下 pip install requests, 然后按一下回车。现在终端就开始下载 requesttool 了,成功显示了 successfully installed。 那 么我们使用 piplist 来看是否成功地下载了 requesttool。 在 这里我们可以找到 requesttool, 那 么说明我们已经成功下载安装了 request 第三方库。 接下来我们就可以完成我们的第一个爬虫项目了。在这里我们新建一个 python 文件,取名为 catch。 百度创建了这个 python 文件之后,我们在这里需要做的第一步就是导入 request queue, 写上 import requests。 现在我们已经成功在 python 文件中导入了 request queue, 使用 request queue 发起请求,那么我们需要使用到的就是 request 点 get 方法。 因为我想要抓取的是百度的首页,不需要传递密码和用户名给服务器,那么我直接使用 get 方法输入百度的网址,然后将抓取的内容给变量 response, 复制给 response 之后,我们将响应体的内容,一般来说都是网页中的原始 html 文件,我们将网页中的 html 代码写入到我们自己创建的 html 文件中。 写入文件,我们需要先打开文件,写上 whatsopen, 使用 w 写入模式创建一个百度点 html 文件,并且在这个百度点 html 文件中写上我们获取到的百度的网页 html 文件。 现在我们来运行一下这段代码,可以看到这里出现了报错,这是为什么呢?因为我没有将文字编码形式改为 utf 杠八, 所以在这里我们一定要记住将 encoding 改为 utf 杠八。再次运行这段代码,可以看到在这里已经自动创建了百度点 html 文件,点开这个 html 文件,已经成功写入了一些 html 代码, 那么我们在这里使用浏览器打开,可以看到我们已经成功抓取了一个类似百度首页的页面,但是还是出现了一些乱码。为什么我们已经将 encoding 改为了 utf 杠八,还是会出现乱码呢? 那是因为服务器已经识别了我们爬虫的身份,触发了反爬机制,没有给我们准确的信息。那么我们在浏览器中打开百度,点击检查, 找到网络,然后重新加载数据包,查找到这个三 w, 点 baidu 点 com 这个蓝色图标, 将 user agent 用户代理复制下来,点击复制,然后我们以字典的形式粘贴到这里面,直接粘贴的话,我们需要给它们加上双引号和冒号。成功粘贴好用户代理之后,我们记得在请求的时候,将用户代理写入到标头中,再次重新运行这段代码,打开百度点 html 文件, 现在我们再次在这里打开浏览器运行,得到的就是和百度首页一模一样的内容。大家可以看到在这里是三 w 点百度点 com, 也就是百度自身的网页,而这个是我自己创建的百度 html 文件,网址是这个样子的,我们抓取的页面和浏览器发起请求获得的页面是一致的, 使用这种方法你就可以抓取到大部分网站的原始网页了。不过爬虫的最终目标并不是保存整个网页,而是从网页中提取出我们真正想要的有效信息。所以下个视频我们就来学习如何从这些原始内容中解析出自己想要的数据,我们下个视频再见。

pencil 学习三十天,从入门到精通第二十五天 range 函数学 python, 我 只看糯米哦 hello 宝宝们,今天我们要学习的是 python 中的 range 函数,那么 range 函数是什么?它又有什么作用呢? 其实简单来说, range 函数就像一个数字生成器,你告诉他你需要哪些数字,他就会在循环中按顺序一个个吐出来。它的主要作用就是配合否循环快速生成整数。训练 糯米再讲解一下 range 函数的两种书写方式。第一种是直接在 range 函数后面的括号添加一个数字, 比如 range 函数五,表示从零开始生成五个整数,这五个整数分别是零、一、二、三、四,不包含数字五。 再比如 range 函数时,就是生成十个整数,它们分别是零、一、二、三、一直到数字九。 第二种书写方式是在 range 函数后面的括号添加两个数字,比如 range 函数二九,表示从数字二开始到数字八结束,也就是生成二、三、四、五、六、七、八。这两种就是 range 函数的基本书写形式。 糯米再带宝宝们实操一下,假设我们要计算从一累加到一百的总和,如果没有 range 函数,我们可能需要手动写出一个从数字一到数字一百的列表,这样会非常麻烦, 当我们用 range 函数的时候就可以轻松搞定。我们要计算数字一加到数字一百,那我们这里先变量命名一个 total, total 是 总和的意思, 就是数字一加到数字一百的总和,因为这里是重复的加法计算。我们这里就用一下 four 循环,这里先打个 four, 临时变量的话就变变为 number, 接着打个 in, in 后面就放我们的 range 函数,接着在括号里面输入一和一百零一, 意思是分别提取数字一,数字二,一直到数字一百,接着就要写执行代码了,就是数字一加到数字一百,也就是 toto 总和,等于这里要从零开始加,就是 toto 加 number。 接着我们来打印一下 toto, 看一加到一百的总和是多少。这里先打个 print, 括号里面输入一到一百的总和, 再打个逗号,逗号后面加个拖拖就可以了。我们来运行一下代码,可以看到运行结果就是一到一百的和是五千零五十。 那么今天的课程到这也就结束了,下一期糯米要讲解的是 while 循环,关注糯米三十天,带你掌握 python。

这个简单的 python 小 技巧会让你一联盟。咱们先从简单的例子说起, false 等于 false, 当然结果是 true。 这没啥奇怪的。现在咱们换个不一样的系系,空列表会怎么样? 在 python 里,我们可以把各种集转换成真 true 或假 false, 所以 你觉得把一个空列表转换成布尔集会怎样? python 会判定它是 false? 好 吧, 这也说得通,空列表里啥都没有,所以它的表现就像 false 一 样。那现在仔细想想,如果空列表被认定为 false, 那 这个比较的结果应该是 true, 对 吧? 空列表等于 false。 先花一秒钟琢磨一下这个表达式会返回 true 还是 false。 大 部分人都会说 true, 因为我们刚验证过空列表的表现和 false 一 模一样,但 python 打印出来的结果却是 false。 等等,啥情况?为啥某个东西表现得像 false, 却又不等于 false 呢?

排序既然这么简单,第十一天列表 list。 在 排序中变量可以储存值,但是当我们需要存储的值非常多的时候呢,如果还用变量的话,那么我们需要写很多个变量来存储数据,这样的话那就太麻烦了。在排序中有一个列表 list, 它就相当于是超强版的变量,可以一次性存储任意的数据,不论是中文、英文数据等,同样的也可以用 print 输出,这个时候呢,打印出来的就是整个列表里的内容, 如果说你想单独打印某个数据也是可以的,在此之前我们先要了解,所以所以就相当于列表中元素的取列号,从一个元素为零开始,依次是一、二、三等等。 print list 四点,那么这个时候 我们运行打印出来的结果就是厉不厉害。在类似列表语法里,有一个 index 加上括号,括号里面加上列表中的内容,就可以查找到这个元素在列表中的序号,不过这里要注意查询的是制服船,要记得加上引号。如果说 我们想吃饭,而这个菜单里面有很多元素,鸡蛋、牛奶、清蒸鲈鱼等等,而我们想吃小炒牛肉,但是列表太长了找不到,这个时候我们就可以用 index 来查找小炒牛肉的缩影,那么运行就会显示小炒牛肉的缩影是 八,这样我们就能够知道它的位置。如果说列表中没有这个元素,这显示屏就会报错。接下来我们开始今天的实战练习吧。 我们先看题目,第一个创建一个同学的名单,用列表表达,第二个用缩印打印出小王的名字。第三个,查询小杨的缩印号是多少? 首先我们用 store 创建一个列表,这里用中括号,用逗号进行分割开,只复制用引号,其他的数据就不用,那么这个时候我们就创建好了列表。接着我们做第二个题目,通过缩印打印出数据。前面我们说了,缩印是从零开始的, 所以你想要哪个位置上的内容要注意这个,这里我们输入 print 加上列表明。如果我们要打印小王,那么在列表中小王的缩影是二, 那么中括号里面就输入二,打印得到的结果就是小王。好,我们做最后一个,通过已有数据查询对应的缩影。如果我们要查询小杨,那么就输入 print 列表明加 index 加括号,括号里面放上数据,这里我们列表的名字叫 student, 就 对应上以及查询的数据,同样的也是用 print 打印出结果 运行,这个时候我们得到的数据就是四代,那么就说明小杨这个数据在列表中对应的缩影就是四。那么今天的内容就讲到这里,下课。

哈喽,小伙伴们大家好,欢迎收看大雄课堂,我是安迪。在前面我们介绍了 python 中的多线城,那今天呢,我们来介绍 python 中另一个比较重要的概念,叫做携程, 包括现在越来越火的发 c p i。 为什么说它的性能堪比 go, 就是 因为它的底层核心使用了携程。 ok, 那 本节课我们来介绍一下什么是携程,以及它的特点。我们来举一个生活中的例子,假如说我要做饭,在做饭过程中,我需要先烧水,烧完水以后,我再洗菜、摘菜,然后再煮菜, 这是一个顺序的流程,但是大家肯定不会这么做,因为这样太浪费时间了。通常我们的做法是,在烧水的过程中,我们就去洗菜、摘菜,等水烧开以后, ok, 我 们再去煮菜, 所以这就极大提高了我们的运行效率。这里有一点特别需要大家注意啊,就是我们整个过程中烧水的速度没有提升,洗菜的速度也没有提升,但是整体事件的效率提升了,这是因为什么呢?因为我们充分利用了 在烧水过程中这个空隙去做了另一件事,也就是说我作为这个事件执行的主理人,在做第一件事情的过程中,如果这个事情比较耗时, ok, 我 不会在这里一直停留,我会从这里抽身出来去做另一个任务, 那么当第一个任务结束以后,我再去执行第一个任务后面的事情,这样的话整体的效率就提升了。那么计算机也是如此啊, cpu 就 相当于这个调用者,他会去决定执行每一项任务。但是对于一些常见的 i o 操作,比如说去请求网络,比如说去读取数据库,比如说去写入文件等等,这些内容都是比较耗时的,那当然是对计算机来说是比较耗时的, 那么 cpu 没有必要在这里等待,我在这个过程中把这个事件给它挂起,让它在这里自动执行,等它执行完成以后, ok, 系统会通知我,然后我再去执行余下的任务, 这样整体的效率就有一个极大的提升,这就是携程它的意义。 ok, 那 么我们前面还介绍过多县城,携程和多县城之间又有什么区别呢?前面在介绍多县城的时候呢,我们会发现,在一个主进程中,有多个县城, 每一个县城之间可以数据共享,但是拍森有 g i l, 也就是管理局解锁,他在同一时间只能去执行一项任务, 那么这样在不同的县城之间,它要来回切换,这样呢就比较消耗这个性能。但是携程就没有这个问题了,因为携程是只能运行在一个县城中,它无法进行切换, 它的作用是把一个比较耗时的 i o 事件给它挂起,让它自动在这运行,然后 cpu 去集中做其他的事情,它是通过这样的方式来提升效率的, 所以说呢,他也没有锁,他的切换成本就比较低,这是他的优势。对于拍森的携程,大家理解起来其实也是比较容易的,但是写起来却不容易,因为什么?因为拍森携程的版本变化太多了。 好,我们看一下这张列表,从拍森三点四到拍森三点一二之间,这里他变化了很多很多的内容, 比如说 python 点四当时使用的是 yield from 这种形式,也就是生成器的模式,而且还要配合这个装置器和 sink 点 cartridge 这个装置器来使用这 yield from。 这是最开始三点四版本的携程,那接下来 python 三点五才将 a think a wit 引入作为关键字。接下来在 python 三点七版本,它又引入了新的内容,引入了 a think i o 点 run, 使用 a think i o 点 create tasks 来创建任务。 然后 python 三点八对底层进行了一个优化。接下来 python 三点一零又移除了这个 loop 参数,也就是使用更高层的 api 接口了, 原来是需要自己去创建一个主循环,然后传递这个 look 参数的。接下来 python 一 引入了 task group, 也就是任务组以及异常组。 接下来三点一二又正式删除了 year from 的 旧学生支持,然后在三点一三又引入了 a sync i o 点 s completed 增强。所以你在看到 python 中的学生代码的时候会非常的混乱,因为每一个版本它使用的方式都不一样, 这就让大多数初学 python 的 小伙伴摸不着头脑,尤其是网络上的教程,甚至是你使用各种 ai 软件,因为它搜索的数据都是从以前的数据中获取的,进行训练的,所以说每个用法都不一样。 那么我们在学习的时候,只要抓住一条主线,也就是一步编程,只学习最新的。 前面的咱们可以不用去管,你只要了解就 ok, 就是 你知道别人代码这么写是没有问题的,但是让你写的话,你直接用最新的,因为最新的用法它使用了高度封装,也就是对我们的开发者更加友好了, 那么后面我们会使用最新的语法来学习 python 的 携程。好,那本节课我们先介绍到这里,小伙伴们,我们下集再见。

你听说过偏函数吗?在编辑派送程序的过程中,你可能会遇到这样的场景,需要反复调用同一个函数,但每次调用都要传入一批重复的参数,如果每次都手动传参数就很麻烦。这时候就轮到偏函数登场了,它的作用是固定函数的一部分参数。返回一个新的函数,后续调用这个新函数时, 只需传入未固定的剩余参数即可。偏函数的实现方式很简单,通过调用派送标准库 function 中的 pass 函数 r g s 表示想要提前固定的位置参数, t word 则表示想提前固定的关键字参数。举个简单的例子,如果需要高频处理二进制字串转整数,用偏函数能大幅简化代码。 这里需要特别注意,偏函数不等同于函数默认参数,两者之间存在本质区别。默认参数是定义函数时提前设定的,参数值固定且全局生效。偏函数是在原函数定义后要用前由使用者动态创建的,可针对不同场景生成不同的简化版函数,灵活性更高。

今天带大家三分钟学修,学完所有编程基础。我们输入 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, 这里一起交流。