一分钟用拍访实现 ai 点外卖最近 ai 点外卖特别火, up 主也是体验了一下,经过研究发现用 up 学的拍访就可以实现。废话不多说,跟着 up 主实现一下吧。 这是输入部分,然后是 ai 的 回答部分。加速 x 四 我们用一分钟时间已经完成了,主要功能大须让我们测试一下, 一模一样,完全一致。 有人问这是失败的情况,那么成功的情况呢?成功的情况就推迟到二月二十八号再实现吧。
粉丝1获赞9

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

一天,学习一个 python 基础第一天, python 历史如果说你英文不好,也想学编程的话,那么 python 我 强烈推荐给你在众多编程语言中一起简单快速上手的优势,获得了大量学者的喜爱,那对于新手来说,上手速度很快, 且又自动补全功能,当你输入第一个代码,他就能迅速显示你要的代码。这里老师还有一个超强的补全插件哦! python 的 诞生呢,源自一个圣诞节,一名程序员极多方罗苏姆因为在家无聊敲代码,突然觉得用起来好麻烦,当即他就想创一个简单且通俗易懂的编程语言,便创建了 python。 潘森呢,他的意思是蟒蛇,但是这个和他可没有关系哦。潘森名字的由来是因为当时作者非常喜欢看喜剧,有个团队就在猫听潘森,于是便用潘森来做名字。 潘森秉承了极多的初衷,就是简单快速上手,且能轻松处理大量的复杂工作, 却不失其强大的逻辑,让初学者能够更快的理解和应用。随着时间的发展,排序逐渐在很多领域被使用, 衍生出了丰富的第三方库,从数据分析、行业搭建、人工智能等等。如果说你有不懂的第三方库,也有非常多的学者分享代码和解答等,让你比写代码更加从容。 学好 python 可以 衍生学习的专业非常多,且当今很流行哦。不管是数据分析、网页开发、人工智能等等,学习的前提都是需要用到 python, 就 比如 deepsea 大 模型。那如果说你不想从事这些呢? 对于工作党来说,也同样的有非常多的好处,比如批量处理文件,它能够自动化把重复的工作完成,而且还会处理数据。当你使用有效, 它可以帮你进行大量的数据分析,获取你要的数据。随着现在 ai 的 迅速发展, 不管是在当今的数据时代还是未来的 ai 时代,学好 python, 现在能帮助你在职场更加如鱼得水, 在未来 ai 时代能够让你使用 python 快 速的学习。非常感谢大家对我的支持,下期我们接着讲如何安装 python 环境。

pason 对 于新手非常友好的功能,如何导入第三方库?这期讲清楚 pason 的 模块和包,让你从此告别 import 混乱,轻松调用海量第三方神器。先搞懂最基本的概念,模块就是一个 p y 文件, 你的工具帮手包就是一个装着多个模块的文件夹,是你的工具箱。他们分三种,派送自带的系统模块,你自己写的自定义模块,还有全球大神贡献的第三方模块模块包都给大家准备好了。 想用别人的轮子,就得学会下载下载用 p i p, 但默认源在国外,慢如蜗牛,默认镜像源是国外的一个网址一键切换国内高速通道。记住这个命令, p p install 减 i h t t p s 每次输命令麻烦教你一劳永逸。 pop config set global 相当于把默认的镜像源改为国内的网址模块。怎么用三大导入法适应不同场景? 第一是指名道姓是 mean port module, 用的时候必须 module function 清晰,不重名。第二是直呼其名是 from module import funk, 直接用 funk 方便,但小心名字冲突。第三是全部拿来是 from module import funk, 慎用,容易名字打架。总结一下,模块是单文件,包是多文件文件,家用 p i p 加国内原飞速安装第三方库,按需选择三种导入方式,现在就去检查你的项目,试着把一个超大文件拆成几个模块,用包组织起来。

刘木陪你每天进步一点点!哈喽哈喽,宝宝们欢迎来到刘木老师的拍森小课堂,今天给大家带来的是字典的增加、删除、修改、操作。在上节课的视频中,我们学习了如何使用字典数据类型来清晰 简洁的保存购物清单。那么现在让我们把这个简单的购物清单升级为更加实用的购物车功能吧。类似于淘宝、 京东、天猫等购物平台,购物车中的商品信息,比如名称和价格,我们可以使用字典来存储。不过购物车中的商品常常会动态变化,因此对应的字典内容也需要实时更新。接下来我们就通过三个具体的操作来学习 如何实现这些更新。首先,第一个,增加商品信息,例如电竞仪。第二部,修改已有的商品信息,例如更新电脑的价格。第三步, 删除不需要的商品,例如移除手机。那么这些操作在代码当中我们如何来表示呢?一起来看一看吧。首先,字典的增加方法非常简单,格式为字典 中框键等于值。例如,当我们需要在购物车中新增商品电竞椅时,可以这样写, gift price, 中框电竞椅 等于三千一。只要电竞椅这个键原先不在字典中, python 就 会自动将它与对应的值组合成一个新的键值队添加到字典里面,这样购物车中便成功加入了电竞椅的信息。而在实际购物中,商品的价格也常常会变动,比如遇到节假日促 销或是享受国家补贴时,那么假设现在的电脑价格应该调整为六千七,我们并不需要重新定义整个字典,只需要修改对应键的值即可。 gift price, 电脑等于六千七,这种通过键直接赋值的方式是字典中更新数据最直接也最常用的方法。如果购物车中更新手机,这样 与手机这个键关联的整个键值队都会被移除,那我们如果想要清空整个购物车也非常的简单, 直接调用 client 方法即可。 gift price 点 client 方法执行后,字典中就只剩下了一个空的结构,等待下一次被填入。通过增加、删除、修改这些灵活的操作,我们的数据就不再是一份静态的清单,而变成了一个能够随时响应变 化,贴合实际需求的动态管理系统。只要知道键的名字,就能简单高效的完成各类操作,这也正是字典数据结构的魅力所在。好的,接下来就是实践时间,我们一起实现一下这个购物车的管理操作吧。首先我们在这个地方先出示化购物车 点,用来保存我们最开始的商品信息,那么这个字典上个视频咱已经写好了,我就直接给它复制过来。现在我们在当前的字典当中添加一个商品数据, 我们只需要写上 gift price, 在 中框当中写上商品的名称为电竞椅等号后面写上我们商品的价格三千一。那 么现在我们打印查看一下,会发现确实已经多出了一个电竞,你的商品价格为三千一。只要当前的这个键在字典中没有出现过,那么 python 就 会把键的名字和等号后面的值组 组合成一个新的箭指队添加到我们的字典当中。好的,我们再来完成一下修改操作,我们把电脑的价格进行一个修改,同样的 gift price 中框当中写上电脑等号,后面写上我们电脑的新价格为六千七, 再来打印查看一下。当电脑这个键在字典当中已经出现过,那么 python 就 会把它对应的值进行一个修改,会发现原来的七千二已经变成了六千七,这就是我们的修改操作。最后我们再来清空一下当前的字典, 清空购物车操作非常简单,同样的是我们的购物车后面写上一个点来调用可量方法。同样的我们打印查看一下,会发现字典当中的内容全部已经消失掉了,只剩下来了一个空的大括号,那么这个大括号表示的就是字典的意思。 现在我们已经学习了列表、字典等数据结构,它们各有特点和优势,但不管是列表或是字典,只要我们想把里面的内容拿出来一个一个使用,都离不开一个使用的工具。 f 循环,下一期我们来学习 f 循环的基本用法,我们下个视频见。

大麦王抢票,同学们大家好,今天给大家带来一个新的派送,派送技术,用 slogan 来实现抢票软件的一个功能。好吧,好,那首先的话呢,先跟大家说一下我们今天的目标的话,就是这个大麦网站,来看一下, 打开官网,这个如果你经常去买演唱会门票,应该知道这个网站是吧?很多啊。好,然后其次呢,呃,我们待会来做一个效果实验。好,那接下来我们来看下这个程序,这个程序的功能呢很简单,他呢可以直接抓取这个页面的票, 直接抢票,抢这个网址的票,大家看一下打开,那就这个叫开心麻花的一个独角音乐曲。 ok, 好, 那接下来我们来试一下。好吧,这个我们现在是把它来重新运行代码走, 运行之后,首先他会直接打开这个页面,然后的话呢进行这边关于座位的选择,你自己选一个,比如随便选一个啊,就这个 点进来,然后呢点加的好支付就进入到支付页面了,好吧, ok, 在 这里的话呢,可以看到刚刚那一系列操作的话呢,除了你选座位之外,其他的都是直接通过程序自动的进行点击来实现的,对吧? ok, 那 么对于这部分的话呢,需要大家说一下,就是我们所看到这个里边啊,哎啊,这个我们暂时停一会,先不意识了,终止一下, 在这个里面的话呢,你要注意就是关于它登录的问题,那其实大家可以发现我们这个程序也是没有进行登录的,是吧?但为什么它能够进行抢票呢?而原因在于它呢是借助 cookie 的 这个事项。 ok, 大家可以看到在我们这边呢会生成一个关于 cookie, cookies, 点 keep, 点 pkl 文件, 这个文件的话呢是在你第一次登录账号的时候会自动给你干嘛呢?会自动给你记录你的 qq 信息,然后第二次你在运行的时候,他会直接读取你之前的 qq 信息,那这样你就不需要重复的登账号了,好吧啊,第二次运行你就不需要登账号了,他会自动的帮你读取之前的 qq, 然后呢来维持登录状态,从而直接进行抢票。

hello, 大家好,我是计算机闭社指导师,如闭社方面一块有疑问或其他需求,欢迎在主页上联系技术员,然后下面再给大家演示一下这个课题。项目的主要功能,管理员登录 系统首页用户中心修改密码用户管理、用户 餐饮外卖数据管理、餐饮外卖数据 数据大屏可视化、 消费行为分 析、菜品销售分析、 商家经营分析 用户登录 系统首页用户中心餐饮外卖数据数据 大屏可视化、 消费行为分 析、菜品销售分析、 市场竞争分析、 商家经营分析、 平台运营分析、 用户体验分析。 今天博主跟大家分享的是大数据必设选择题中的基于 hrip 加 spark 的 餐饮外卖平台数据分析系统。 首先我们启动运行 hadup 加 spock, 现在博主这边先简单介绍一下系统,本系统是一个基于 hadup 与 spock 大 数据 技术站构建的餐饮外卖平台数据分析系统指在对海量外卖业务数据进行高效处理与多维度洞察。 系统整体采用开放作为主要开发语言,后端利用章购框架搭建服务接口,前端则通过微有结合 etch 实现数据的动态可识化展示。其核心在于利用哈对的 h t f s 作为分布式存储基础,承载来自外卖平台的原始业务数据,并借助 spark 强大的分布式计算引擎进行快速的数据清洗转换与分析。 系统围绕商家经营、菜品销售、消费行为、市场竞争、平台运营及用户体验六大核心模块展开,具体功能包括商家地域分布与品牌竞争力分析、 热门菜品排行与价格区间分析、用户消费时间与金额分布等评估等。通过 sparkcoco、 pandas 及 number 等工具,系统能够对数据进行聚合、关联、聚类等深度操作, 最终将分析结果以直观的图表形式呈现,为外卖平台的精细化运营、商家策略调整以及市场趋势预测提供坚实的数据决策支持。系统介绍结束,然后系统界面已正在开始大数据分析, 接着完整展示真正大数据分析全过程分析执行完成,分享完毕。感谢大家抽出时间观看,支持我记得一键三连加关注,感谢支持!

pason, 学习三十天,从入门到精通第十八天列表的切片学 python, 我 只看糯米哦 hello 宝宝们,今天我们要学习的是 python 中的列表切片。 在上一期视频中,我们把糯米的姓名、性别、年龄、爱好和成绩这五个数据分别打包进了列表。这五个数据分别也有自己的缩影位置,从姓名开始数,所有位置分别是零、一、二、三、四。 那么今天我们要做的是从这个列表里面拿出我们想要的一些数据,比如我们要获取从姓名到年龄这段数据,这时候就要用到列表的切片功能。 糯米先讲解一下列表切片的结构,列表切片的结构其实就是列表的变量名,加上方括号,然后括号里面分别填写开始所引的位置,加上冒号, 还有结束缩影的位置,加上冒号,最后再加个不长就可以了。这里的开始缩影表示的是从哪个位置开始取数据, 结束缩影表示的是取到哪个位置的数据之前就停止不长是决定了每隔几个值取一个数据。比如我们要提取糯米到年龄这三个数据就可以写成 student 方括号,方括号里面填写开始缩影的位置, 这里糯米的缩影位置是零,那么方括号里面就填写数字零,然后再加上个冒号,接着是结束缩影之后的位置,也就是要提取爱好前面的数据,那么结束缩影之后的位置,这里就是输入数字三,然后加上个冒号。 因为我们不填写不长的时候, python 会默认不长的单位是一,所以这里我们就不需要填写不长。 然后我们接着运行一下,可以看到运行结果,就是提取到这三个数据了。再比如我们要提取年龄十八到成绩一百分这三个数据,这里糯米先复制一下上面这个代码,然后粘贴一下这里方括号的数字要改一下, 我们要提取年龄十八到数据一百分这三个数据,这里年龄十八的缩影位置是二,那么这里的数字零就改成数字二, 成绩一百分的缩影位置是四,那么后面这个我们也就要改成数字五。接着我们来运行一下, 可以看到运行结果,会直接提取出这三个数据。其实这里有个小知识点,就是我们开始的位置和结束的位置,在切片里面是可以直接省略不写的。比如要提取前面四个数据,就是糯米到学习这四个数据,这里我们先复制一下上面的代码,再粘贴一下 这里最开始的缩影位置零,可以直接不用写,直接删除掉。要提取一百分前面的数据,那么这里就把数字改成四就可以了。我们接着再运行一下代码,可以看到会直接提取出前面四个数据,切片里面结束的位置也是可以省略的, 比如我们要提取女生到一百分这四个数据,这里我们也是复制粘贴一下代码,然后女生的位置是一结束的,所以位置我们就直接删除掉,省略掉。我们接着运行一下代码, 可以看到运行结果,会直接提取出这四个数据。我们再尝试一下在列表当中隔一个数据取一个数据, 比如提取糯米十八和一百这三个数据,这时候我们就可以使用到不长的功能了,我们先复制一下上面的代码,然后再粘贴一下这里最开始的缩影位置,不用填写,可以直接省略掉 一百分,这个最后的缩影位置也不用填写,也直接省略掉。我们要隔一个数据提取一个数据,那么不长,填写二就可以了。我们运行一下代码, 可以看到运行结果就是我们要提取的糯米十八和一百分这三个数据了。我们再尝试一下腹部长缩影, 就是从末尾开始提取数据,比如从学习提取到女生这三个数据,这里先复制一下代码,粘贴一下代码,然后看一下开始缩影的位置,也就是学习的缩影位置是三,那么这里方括号就改成数字三, 结束之前的缩影位置是零,这里就可以改成数字零,当然这里的数字零也可以不用写,可以直接省略掉这里的不长,再改为负一就可以了。这里我们再运行一下代码, 运行结果就可以看到是从后面开始提取数据的了。这样下来我们就已经学会了如何用切片快速取出想要的数据,无论是从中间取还是倒着取,或者是隔着取都是没有问题的。 但列表不只是用来看的,它还要随着需求的变化而不断变化。那么下一期视频糯米要讲解的是列表的增删改查。关注糯米三十天,带你掌握 python。

您有没有经历过这种绝望?工作中有大量的重复的事物需要处理,算起来需要花几天的时间,但是我们也知道,如果花一两个小时编辑程序后,可能十分钟就能搞定。这本书就是解决被这类琐事困住的你。我们不需要成为专业的编程程序员, 我们只需要通过学习如何让电脑帮忙高效的干活。这本书的内容呢,分成两部分,第一部分是 python 的 八大基础知识模块,目的是供初学者学习如何初步接触 python 的 知识。 第二部分是工作中的各种丰富使用场景案例,从如何自动处理普通文件,比如重命名这些, 如何读取处理 excel 数据,到如何爬虫爬起数据,如何管理邮件和自动化操纵电脑,一共四十二个小项目,覆盖了在工作中常见的任务痛点,目前已经是第三版了, 其代码的运行环境已经升级到流行的 python 三点一三。最重要的一点,这本书学习的目的不是再做一个程序员,而是如何把重复的工作交给程序, 把时间和创造力留给自己。所以呢,普通人就能学会的编程偷懒的方法就可以从这本书的学习开始了。如果您在学习中遇到一些问题,也欢迎来和我一起讨论。

看似简单的循环结构,往往是构建复杂程序的基石。 while 循环的逻辑非常直接,它只看脸色行事,只要你给他的不尔表达式判断结果是真,也就是 true, 它包含的代码块就会一遍又一遍地重复执行, 直到这个信号变成假为止。我们之前学过否循环,它和 while 循环有着本质的区别。否循环主要用于处理已知数量的项目,比如你手里有一份名单,从头读到尾,任务明确,次数固定。 但是当我们完全不知道代码需要重复多少次的时候, while 循环就是唯一的选择。举个最常见的例子, app 的 登录功能,程序根本无法预知用户要输错多少次密码才能成功,可能是一次,也可能是十次。 在这种场景下,程序会检查密码状态,只要密码验证结果是错的 false, while 循环就会把用户卡在登录界面,不断要求重新输入,直到验证结果变为 true 才会放行。 这就是典型的基于条件的循环逻辑。要在代码里用 while 循环处理这个数字列表,我们不能直接写 while, 因为和否循环不同。否循环非常原始,它自己不会数数,也不知道列表从哪开始到哪结束。所以在启动循环之前,我们必须手动声明。一个变量作为迭代器,通常我们把它命名为 i, 代表 index, 所以 把它初示化为零。这个变量 i 就是 接下来我们用来控制循环进度的唯一凭证。 有了计数器 i 之后,我们就可以写出 while 循环的控制语句了。看这行代码, while i 小 于 line numbers, 这行代码就是一个严密的守门员。它的规则很简单, 只要计数器 i 的 值依然小于列表的总长度,说明我们还没跑完所有数据 不尔,表达式为真循环继续。一旦 a 的 值追平或者超过了列表长度,表达式变为假循环立刻终止。这就是我们控制循环生死的红线。你可能会问, 为什么不直接写小于二十,毕竟我们知道列表里有二十个数。在实际编程中,这是一个大忌,因为数据是动态的,列表里可能有十个数据,也可能有一万个。 我们不能每次数据变了都去改代码,这时候就要用 python 的 内置函数 lamb, 只要把列表丢进去,它就会立刻返回一个整数,告诉你这个列表到底有多长。无论数据量怎么变, lamb 函数都能给出准确的边界,确保循环不会越界, 也不会漏掉数据。外层的 while 循环负责把列表从头走到尾,但我们往往不需要处理所有数据,这时候就需要请出 if 语句做过滤器。看这段代码,我们在循环内部嵌入了一个判断逻辑, 他要求程序拿出当前位置的数字,先给他加个二,然后拿着这个新结果去和二十比大小。只有当计算结果严格小于二十的时候,代码才会执行打印操作。这就是最典型的便利加筛选结构。 我们把这个过程放慢一千倍,来看看算机会发生什么。首先,计数器 i 等于零,程序会去列表里找第零号房间的数据,也就是数字一。接着他在内存里把 e 加上二,得到三, 然后拿着三去问,三小于二十吗?答案是 true。 既然条件成立,他就执行缩进你的 print 函数,把三打印到屏幕上。 如果换个大点的数算出来,结果大于二十,条件变成 false, 程序就会直接无视 print 语句,什么都不做准备,进入下一轮循环。 如果你直接运行刚才写的那段代码,会立刻遇到编程中最严重的问题之一,无限循环。你会看到控制台疯狂地输出同一个数字,三,完全停不下来,直到你强制杀死程序。 这在实际软件开发中是灾难性的,它会让你的应用程序瞬间卡死,耗尽系统资源。为什么会这样?因为我们漏掉了 while 循环中最关键的一步。问题的根源在于变量, i 的 状态从未改变。 while 循环非常机械, 他每次执行前只问一件事, i 小 于列表长度吗?第一次循环 i 十零小于二十。条件成立,执行打印代码。跑完一圈回来, i 还是零条件依然成立,因为我们没有写任何代码去改变 i 的 值。对计算机来说,这个条件就像是永恒的真理。这就是 while 循环和 for 循环最大的不同。它不会自动帮你翻页,你如果不推它一把,它就永远停在第一页。 解决办法非常简单,我们需要手动打破这个死循环。在 while 循环体的最后数以必须是在 if 语句之外,但依然在 while 循环的缩进范围内。加上一行代码, i 等于 i 加一。 这行代码的作用是每跑完一圈就把计数器往上拨一个数。在 python 里,我们通常使用更简洁的写法, i 加等于一,这样 i 会从零变成一,再变成二,直到它增长到二十。一旦 i 等于二十, well, 循环的条件检查就会变成 false, 循环自然就停止了,这才是完整健康的循环。逻辑。 来看第一个实战,我们定义了一个美食列表,并初识化技术器字母 i 等于零,作为便利的起点。进入循环后,核心逻辑在于这个格式化字母 i, 我 们利用中括号字母 i, 像钩子一样,从列表中精准提取当前位置的食物名称。 这里特别要注意最后一行字母 i 加等于一,这是我们在上一节强调过的,必须手动推动计数器程序,才能顺利完成从第一道菜到最后一道菜的翻页,否则就会陷入死循环。再看一个更高级的用法, 如果现在有两个列表,一个是朋友名单,一个是他们各自对应的最爱美食,我们该怎么处理?逻辑其实非常简单,只要保证两个列表的顺序是一一对应的, 我们依然只需要一个计数器字母 i。 在 循环体内部,我们同时让字母 i 去名字列表和美食列表里取数。 这种单指征同步的技巧在处理复杂关联数据时非常高效,你只需要控制一个变量的增长,就能让两组甚至十组数据同步跑起来,这就是缩影逻辑的强大之处。 来看这个更接近实战的挑战。我们手头有一个混杂着一到十的乱序数字列表,目标很明确,统计出每一个数字在这个列表中到底出现了多少次。 这不仅是练习循环,更是练习如何让程序在处理大量乱序数据时,保持逻辑的清晰和准确。 在程序开始跑数之前,你得先给他准备好存放结果的容器。我们为一到十的每一个数字都准备了一个初始值为零的变量,你可以把它们想象成十个整齐排列的空桶。每当程序发现一个对应的数字,就会往相应的桶里加以。 同时别忘了我们的老朋友计数器 i, 它依然从零开始负责带路。这是诊断程序的逻辑核心。我们用 while 循环便利整个列表,在循环体内部嵌套了一套完整的多路分支结构。 原理很直接,程序每看一个数字就去问它是一吗?如果是就把 one 加一,如果不是,就顺着 life 一 直往下问, 直到找到匹配的变量。记住, i 加等于 e, 这行代码必须写在所有 if 判断的外面,这样无论当前数字是多少,程序处理完后都能顺利移向下一个位置。 如果写错了位置,你又会掉进死循环的坑里。数据处理完了,最后一步就是把结果亮出来。我们使用三引号包裹的格式化字母串,把这十个桶里存的数字一次性打印成报告。你看,原本杂乱无章的数字,现在变成了清晰的统计结果, 这就是循环配合条件判断的威力。学会了这种统计模式,你就能处理更复杂的数据集了。接下来我们要更进一步,看看如何用 yl 循环做一个实用的密码登录系统。 之前的循环都是我们在代码里规定好跑多少次,但在实际软件中,很多循环是被动的。比如这个密码验证系统,我们预设了一个密码 cookies, 并把用户的猜测变量出使化为空。 接下来, while 循环的条件变成了只要用户的猜测不等于正确,密码循环就一直执行。这里不需要计数器,也不需要加一,因为 input 的 函数本身就是在更新变量状态, 用户每输入一次,程序就拿去比对一次,如果错了,不等于的条件为真循环,继续,程序会不厌其烦地让你重输。一旦输对了,条件变成假循环,立刻结束,秘密消息才会显示出来。 这就是典型的事件驱动循环,你永远不知道用户会输错多少次,只有 while 循环能处理这种不确定性。 到现在为止,我们用的打印函数、长度函数都是直接上手就用这些,在 python 里叫内置函数。但你要明白, python 真正的强大之处在于它背后那个海量的外部模块库。 比如我们要用的随机数模块,为了省内存, python 默认是不加载它的,你需要先把它请进你的工作间。 这就是我们要聊的导入机制。看这段代码,如果你直接调用随机数模块下的随机范围,函数,程序立刻就会罢工,报出一个名字错误。 这很好理解,你的程序通讯录里根本没存随机数模块,这个号直接拨过去,系统肯定告诉你查无此人。所以在用任何外部工具之前,必须先过导入这一关。 解决办法只有一行,在代码最开头写上导入随机数模块。这行代码就像是一张通行证,把工具箱搬进了你的地盘。现在你就可以用点号来调用里面的工具了, 比如随机数模块,点随机范围函数填入一和十,他就会在一到九之间给你随机抓个数。如果你用的是随机整数函数,填入一和八十九,他就能产生最高到八十九的随机值。记住这个逻辑,先导入模块, 再通过点号调函数,以后你用任何其他高级模块都是这一套标准流程。 掌握了模块导入和循环逻辑,你已经拿到了通往高级编程的门票。下一集我们会把这些抽象的逻辑变成好玩的视觉艺术, 我会带你认识海龟模块,也就是 turtle 模块,到时候你会学会怎么用代码去指挥一根画笔在屏幕上自动会制出各种复杂的几何图形,这种把逻辑具象化的过程,会让你对拍丧的控制力有一个全新的理解。我们下一集见。

上个视频我们一起安装了 python 解释器,可以通过命令行运行 python 代码了,好处是可以马上得到结果, 坏处是没办法保存,下次想运行还需要再敲一遍。这个时候就需要有一个趁手的编辑器了。市面上的编辑工具有很多,我使用的是拍唱。它是一款专为 python 开发者设计的 ide, 集成了代码编辑调试、项目管理、框架支持等众多功能。 pie charm 的 出现极大提高了 python 开发效率,使开发者能够专注于代码逻辑,而不是被复杂的工具操作所困扰。这个视频我们就一起安装 pie charm 编辑器, 有了 pie charm 肯定能让你事半功倍。打开浏览器,搜索 jet brains, 进入它的官网。在这个下面有非常多的开发工具,针对不同的语言有不同的编辑工具, 像 java, python 数据库, js, donet 以及 c 和 c 加加方向。我们这里呢选择适用于 python 的 ide。 python, 点击右上角的这一个下载,选择其他的版本。 因为拍唱是收费的工具,如果你直接在这里下载,他会给你一个月的免费试用期,一个月之后还是需要花钱,所以我们之后要对他进行破解。破解的话就需要下载一个相对稳定的版本,这里选择其他版本下载 二零二四版的我这里就下载二零二四点二这个版本。 windows 系统点击,然后它就开始下载了 a few minutes later。 好 了,下载完成,打开文件,进入到 pacham 的 安装程序。下一步这里选择它的安装路径, 我们给他安装在一盘。下一步这里我们必须要将 bin 添加到环境变量当中,然后呢,创建桌面快捷方式也可以选下面这两个,根据大家的习惯可以选也可以不选,这里就不选了。下一步 安装 a few minutes later 好 了,安装完成,点击完成就可以了。然后在这里我们双击桌面图标,因为我们下载的是官方的专业版,它这里会让你选择免费试用三十天还是去激活它。我们把它关掉, 然后打开我们的激活码文件,选择拍唱激活,双击就会弹出成功。 你现在可以使用 pycharm 到二零九九年。 ok, 确定呢?我们再打开 pycharm, 这样我们就破解完成了。然后我们新建项目,试一下,这里输入项目名称。 python project 项目的保存路径。我们改到一盘 创建 get 仓库,如果你需要进行开源或者版本控制的话就勾选这里就不勾选 创建一个欢迎脚本。由于我们是第一次创建,所以勾选试一下解释器类型和 python 的 版本。如果你在上一步已经成功安装了 python, 那 么它就会自动获取到已安装 python 的 路径,我们这里就不需要进行修改了。点击创建 第一次创建项目呢?拍唱,它需要加载很多东西,我们等它慢慢加载,加载完成之后再进行下一步操作 a few minutes later 好 了,加载完成,我们来看一下。 由于我们刚刚勾选了创建欢迎脚本,所以它帮我们新建了一个 make 点 p y 的 python 文件。 我们运行这个文件,试一下右键运行嗨拍叉,然后现在这个拍叉是全英文的界面,使用起来不方便,所以我们要把它改为中文。右上角设置点击插件,在这里搜索 chinese, 选择这个有汉字图标的中文语言包,但是呢,因为我们安装的是二零二四点二版本的中文语言包,但是呢,因为我们安装的是二零二四点二版本的中文语言包,但是呢,因为我们安装的是二零二四点二版本的中文语言包,但是呢,因为我们安装的是二零二四点二版本的中文语言包,但是呢,因为我们安装的是二四点二版本的更改, 但是如果你安装的是二零二四点一或者更低的版本,就需要在这里搜索,然后点击安装,那我们这个二零二四点二版本呢,就给它进行设置一下就可以了。 按照他的指引,通过文件设置外观与行为系统,设置语言和区域,我们来根据他的指引走一下这里文件设置外观与行为系统,设置语言和区域,选择简体中文, ok, 它会让你重启 pie charm, 我 们重启,重启完成之后就已经是全中文的界面了,这样一个顺手好用的编辑工具 pie charm 就 安装完成了。

大家好,今天我们继续用拍丧写我们的 app 啊,因为上两周呢,我们已经就是写完了我们的基础框架还有基础功能,其实这一周的任务呢,实际上我们就是进行到第十八步,就是我们要装饰美化 app, 那 么现在我们就正式开始我们的工作啊,他那个就是想要装饰他呢,我们首先就是 在我们那个终端里导入到,我们把我们的 app 路径导入进去,然后进入这个路径之后呢,我们激活我们的虚拟环境啊, 激活虚拟环境之后呢,我们就是安装一下,是吗?我们就安装一下这个栈购,这个 bootstraplife, 就是 这个, 我们把它安装了之后呢,它会有个 successful, 当然我这个已经安装过了哈,就是它是就是,嗯, 就是在我们激活的这个环境里呢,直接就是打 p i p install, 然后就是 jango bot strip five, 然后那个就是这样呢,就是按一下那个 enter 键就行啊,它安装会那个安装成功,它在下面会有 successful, 它会提醒你安装成功的。安装成功了之后呢, 我们再到我们这个,嗯,再到我们设置里去,因为他是那个,这个就是等于是我们安装了一个 app, 就是 我们到我们的设置里去呢,嗯,在这里 就是在我们安装 app 的 地方呢,因为我们把这个就是粘个 bug, 嗯, bug 四 trouble 五,这个五呢在这里给他写上,就是我们那个在设置里呢,这样写上就完事了, 这样好了之后呢,我们那个就是去改我们的模板,因为我们就是我们的模板,有关的就是我们模板怎么写的,他会是显示什么样的效果?是这样, 那么首先呢我们就是重新写我们的这个基础模板,但是呢可以看到这好多代码的哈,他这边那个实际上他是并不要求我们那个全部手写的,他是可以我们可以复制的, 但是呢他要求我们懂,就是知道知道那个 代码是什么意思,然后会我会修改。那么我们就是从这个 base 开始和大家把这个代码一起理解一下啊,就是这第一行代码呢,它是一个声明,它就说啊它这个文件呢是个 html 格式的。 然后第二行代码呢是说这个 html 这格式的这个文件呢,它的语言是英语。 然后那个第三行呢,他是一个嗨的,他这个嗨的呢实际上他这个开关也一说,实际上他这是一个那个就是个标头,但是他这个标头呢和这个我们主页是不显示在主页上的,他只是就是定义了一些东西,就是我们所有的网页都会被他定义。 然后呢第一句呢他就说这个这个是字体格式呢,就是 utf 杠八这个格式就是现在那个世界上通用的一个字体,它里面包含好多的,包括我们的韩语、英语,反正各种语言啊。 然后第二行呢他是一个设置,就说这是一个仕途呢,这个仕途的内容是 这个就是我们这个仕图的宽度,他这里所谓的仕图啊,就是我们看到的网页啊,仕图的宽度呢就是等于我们设备的宽度,就比如如果我们用电脑看的话,他会非常的宽,用手机看的话他会非常的窄,是这样,然后 他这里有个出师比例就是等于一,比如说呢他会随着我们的设备那个比例呢,他会进行一个扩大或者缩小, 你不是说比例扩大缩小他的比例始终是一,但是他会那个随着我们的个设备呢进行一个就是打小的自动调整啊,然后呢他这里会那个有一个有一个开头吧,就是我们就是我们 app 的 名字哈。 嗯,这边呢实际上就是加载上了这个就是刚才我们写的 app 的 那个一个字串符,然后后面呢就是加载了这 css 文件,这 css 文件呢就是,呃,我们用到装饰我们 app 的 所有的指令都是出在出的于这里啊, 下面呢就是加载了这个 java 斯科瑞普的,实际上就是我们那个交互用的一个脚本啊, 然后这样这个嗨的呢就结束了,它这里会进入一个八点,这个八点就是主体 车,其实这个八点呢就是我们那个整个页面的内容,它这个八点开是在这里,然后关了,就是要到最后了,要到这里啊,但是最后它是一个 html, 它是一个关的,因为那个我们开头是用 html 这开的啊, 然后那个我们再往下啊,这一行呢就是 n a v, 它实际上就是一个导航的意思啊,就说我们那个首先呢开一个导航栏, 这个从 n a v 这个开到关了,一直到这里,嗯, 一直到这里就是关一说这个整个代码呢,我们这一页主要就是写导航栏的,嗯,这一整那个所谓的导航栏呢,我就是把这边,嗯, 我们那个进入我们激活我们的当地服务器,然后我们去网页上看啊, 然后我们就是运行服务器,运行服务器成功了之后,嗯 嗯,他是这样的一个导航栏,他这个导航栏呢,实际上我们所谓的导航栏就是这里,这里呢这个地方是导航栏啊,是这样, 然后我们继续回到我们的代码哈,我们回到我们的代码呢,就是因为我们开了一个导航栏吗?这个也就是说他这个导航栏,他这个第一个部分, 他是说他是那个就是在中等以上的屏幕呢,他是扩展开的,就说在小的屏幕上他是折叠的,在那个中等以上的屏幕他是扩展开的,就是我们再回到网页看一下,就是如果我们把这个网页缩小缩小,哎, 看到这里的内容他就是已经折叠起来了,他会出现一个折叠键,我们点开呢这个内容会出现在这里,然后如果我们把这个屏幕打开呢?哎,他又展开了,是这样的啊,他就起这么个效果, 然后他这里说呢就是导航栏的颜色呢是一个浅色的,然后他背景色呢也是一个浅色的,他这里那个是设置了一个,就是他 导航栏下面呢,他会有一个四个单位的空空间,就是让导航栏和下面那个分出来哈,然后呢他会给这个导航栏呢就是加一圈细线,然后我们再回网页看一下, 就是加所谓的加一圈细线,就是这样的一个细线了,就是然后呢它下面呢会有四个单位的一个空间,是这样 我们继续回到调码,然后那个继续往下,就是它下面是说呢就是导航栏的填充方式,因为它是这里写着这个 container fluid 嘛,它一说它这是一个流体式的, 流体式的是他就是说这个内容他是那个就是自动填充的,哈,也不是说自动填充,就是和我们刚才就是把他那个就是拉小扩大,他这个内容呢是自动这样就是流体式填充的, 然后我们再往下,再往下呢,他是就是这里他就是写了一个什么呢?就写了一个导航栏标牌,就是那个所谓的导航栏标牌呢,就是突出一个东西,然后呢他会跟着一个链接,跟着一个超链接呢,就是我们这个 lanning note, 嗯,他这个他这里这个所谓的标牌是什么意思呢?就是他比别的字体呢会更大、更突出,然后就是这个 然后呢他会带着一个链接,但是这个链接呢就是链接到我们主页,当然现在就是我们的主页啊,如果没点别的话,对,就是这样, 然后我们继续往下啊,再往下呢我们就是设了一个按钮,这个按钮呢是就是一个导航栏的触发式按钮, 然后它的类型呢?这里写了是按钮,然后就是它所那个这个数据就是从这个这个 b s 呢,就是 botisk 的 意思啊,就是数据那个 数据触发控制呢,它是一个折叠的形式,然后它所控制的内容呢?这里再往下这个 tab, 它就是目标,也说它这个控制的内容呢,它这里有个警号,然后会跟着 n v 八 club, 嗯, clubs。 实际上呢,这就是说,哎,我这个我写的这个导航栏所控制的内容是什么?它这里呢是跟下面这个 id 这里是对应的,就说从这个 div 开始 到那个 div 关闭,它所控制的就是这一部分。哦,刚才这里这个 div 忘了说啊,这个 div 呢,实际上它是一个分隔符,它是一个低位震的意思,就是它把这个呃一个 div 开和一个关呢,它形成一个区域, 这个区域呢能单独的对他进行一个设置和装修,就是这么个意思。有比如我们这边这个 diy 吗?这里那个当然他的官是在飞船的后面了,我们这里又开了一个, 就是说我们这里面内部的这个区间呢,他受外部的控制,但是如果内部和里面同时设置了一个东西呢,他会去优先用内部的。这样哈, 然后那个刚才我们说到他控制的内容了,然后这个 a, 这个就是 a r i a r i a 这个东西啊,它实际上都是那个给这个市长人是看的啊,就是看不见的人,那个用的,它是一个一个语音的。 然后最后这个 spa 这里呢,他就是给这个导航栏呢加了一个图标, 然后那个这个按钮呢就结束了,就是给按钮加了个图标啊,然后现在我们再去网页看一下,就是所谓的按钮,就是刚才实际上就是这个东西,这个图标呢加的图标就是这三个杠, 就是我们点开呢,哎,他会有这些东西啊,是这样,然后我们点他一下打开,再点一下关上,是这样的,就是在手机屏幕上也会有这个导航栏, 因为只要是屏幕够小,他就会出现,屏幕大了呢,他会消失,然后我们这些内容呢又会出现, 我们再往下,再往下呢,实际上就是这个这个 diy 呢,就是我们导航栏控制的内容了, 他首先呢就是说,哎,这是一个什么,这是一个折叠走那个导航栏的折叠,然后呢跟着 id, 这 id 呢就是, 嗯,我这个他这句代码的意思就是说,哎,这是我是一个,那个就是折叠栏,然后关于导航栏的折叠栏,然后我的 id 呢是这个, 嗯,就是上面要控制就是这个引号,这里要控制就是控制他,然后呢就是关于从这个 diy 开始到下面 diy 关闭一直都是他的内容,所以说就是那个按钮呢一直就控制这些东西, 然后我们继续往下,往下呢这里就会那个这个导航栏呢会进行一个设置,一说他这边他所受控制的地方又会进行一个设置, 他这个设置呢他这里会有个 m 一 阿特,他这个 m 一 呢,他就是马振恩的阿特,阿特的意思啊,就是说呢他他的内容会自动的我推向左边,嗯,就是我们回到那个这边啊, 嗯,就是当那个出现了按钮的时候,看到了没有,他这内容呢会自动的推向左边,他就是那个,因为这边是他那个所谓的 n, 那 么就是这边他会这边呢形成一个我们看不见的就是弹簧,把我们的内容往左边推,是这样, 就是导航栏所控制的内容会自动的推向左左边,是这样, 然后我们继续回到代码哈,然后那个第二个呢,他就说那个就是在这个下面呢,就是加两个单位的一个空间, 然后那个如果就是当那个什么就是当中等屏幕以上的时候,他就会那个不加空间,是这样的,他就看起来比较直观,然后下面再往下呢,他就申请了一个,申请了一个空格,或者是申请了一个空间, 申请了一个空间之后呢?他这个空间是放什么东西呢?就是放一个导航栏的链接,然后这个链接呢就是我们主题的一个超链接,我的名字叫主题。然后我们回去那个看一下啊,实际上他就是放了一个这个东西,对,他配个这是我们的主题啊。 嗯,我们再回到代码,这样呢就是第一个这个 u 入我们结束了, 嗯,然后我们开始第二个,嗯,第二个呢它会又进行一个设置, 哦,对了,忘了刚才说哈这里意思这个所谓的优弱呢,实际上它是一个无序,无序列表啊,无序列表呢?它就是怎么说呢?它是成东西的一个东西,它那个本质上就是, 嗯,它就是在这里形成一个列表的意思, 然后我们再往下, 再往下,刚才我们到了这里,这里呢我们就是继续,就是开一个那个导航栏,就是继续申请那个, 哦,这里是我们要那个什么,这里是我们把那个账户的链接放上啊,就是我们另开一个那个什么, 嗯,另开有五序列表,然后我们对这个斜连接呢进行一个设置,然后这边呢它就是 msart, 这样呢,它那个是说呢就是内容它会自动的往右推,然后推到右边, 然后那个下面呢加两个单位的空间,然后如果屏幕够大的话,它这个空间呢就是不就是为零哈,就不用加了。 然后那个它这边呢就是我们开始一个 f 验证,这个 is authentication, 嗯,它是一个账户验证的意思啊,就是如果是登录状态的话,然后呢它会申请一个空间,申请一个空间的,这空间的内容呢? 嗯,就是一个导航栏的文本,然后就说 hello, 用户名是这样,就是我们现在 我们看到现在内容呢,它会是被推到右边了,就是我们登录状态的话,它是那个,因为我用这个账户登录的嘛,它会有个 hello 这样的,嗯,我们继续往下啊, 就是它有 else, 这个 else 呢就是如果不是登录状态的话, 那么他再申请一个空间,申请一个空间呢,就是一个有一个注册的超链接,就是那个他是一个注册列表,我们点击呢可以注册。然后呢同时呢再跟着一个超链接,就是一个登录的,也说那个后面如果我们没有登录的话, 嗯,就是他会出现两个选项,一个是注册,一个是登录,我们去看一下啊,我们把那个我们点一下登出,登出呢我们就会看到哦,一个注册一个登录,这是我们注册页,这是我们登录页啊,登录,我们现在在登录进去啊, 他是这样,然后我们登录了呢,他又是会显示 hello, 这个就是什么我们刚才写的这个 这样呢,这个 u 就 结束了,然后 现在呢我们那个刚才那个地方结束了,我们就是再写一个什么,就是再写一个,就是我们登出的,就是我们退出的一个按键, 因为退出呢,他是没有模板,我们一是用的这个系统自带的模板,所以呢我们会写个按钮,这里呢依然就是用户验证,因为只有你登录了他才能退出吗?所以说即使如果你是登录状态的话,这里呢我们会形成一个列表,这个列表呢就会那个 会形成一个表格,这个表格呢就是会导向一个,就是我们退出的一个内容,嗯,然后呢会形成一个按钮,这个按钮呢名字就叫退出, 嗯,最后结束。然后我们去看一下啊,就是这里实际上就是我写的这个退出按钮是这个, 然后这里呢就是这个 n 的 f 结束了,就是,呃这一块已经结束了,这样呢, 嗯,这样呢就是我们的整个导航栏就写完了,所谓导航栏其实很小的一部分,就是上面这一小块就是导航栏呢,虽然说它小,但是它的功能很多,所以说我们写了很多代码。是这样啊, 我们继续往下,继续往下,我们会发现就是我们这个 n a v 关闭了,就是导航栏结束了,我们会开重新开了一个 main 的 一个符号, 这个 main 呢到这里结束,这个 main 呢就是我们那个页面的一个主体,但是这个 main 那 个它那个上面第一行呢会有 class container, 他意思呢说,哦这是一个容器,然后里面呢会成那个什么东西,然后呢我们把它呢分成了两部分,因为我们用了两个 diy, 就是 用了两对这个 diy 符号吗?就 diy 人啊, 就是从这里开到这边关是一一对,从这里开到这里关是一对,所以也就说我们第一个那个第一个那个部分呢, 我们对他进行了一个设置,就这 p b 杠二呢,实际上他就说有个电秤就是这个内容,就比如我们在下面加一条线,然后这个线上面呢他会有两个单位的空间,比如说那个我们的字呢, 不能就是我们设置他不是让他很靠近线。然后这 m b 杠二呢就是马震巴腾,就是在下面呢有两个单位的空间,然后呢就是在我们这里是说在我们的这个, 在我们这个内容的下方呢,我们加一条细线,这样啊,然后呢就是再往下呢他这两个块就是我们那个内容呢,要写可以写到这个块里面,就是后面我们的野生的内容, 写到这里面呢就是这个 diy 设置的内容只针对于这一个块,然后呢下面呢就是另一个块,就是我们的主体内容块,这个呢就是我们那个页头的一个块啊 啊那个这个基础的呢就是我们到现在已经结束了,然后我们那个现在就是到我们的主题页去看,哦到对到我们这个,嗯, 欢迎页哈,就是欢迎页,实际上就是我们现在看到的,嗯,首先呢就是我们那要继承,就是用 x ten 的是要继承一下,我们就是那个基基础模板, 基础模板呢,然后那个因为我们这边呢就是只有这个页头,我们没有这个页的内容,所以呢我们就是只用这个配置嗨点这个 这一块,然后这里呢就是上来了,我们就是那个我们画出一块来之后,我们给他进行一个设置,我们就是用一个 p 杠三,实际上就是那个,嗯,就是那个我们 给他弄一个就是三个单位的一个电秤,就说让他内容呢不是太靠近边缘。 然后呢我们一起是马震吧台,就是在那个我们的下方呢就是加四个单位的空间, 然后就是我们那个背景颜色呢,给他设一个浅色,然后这个包袋呢,他意思说呢就是 我们给我们的内容呢加上加上一圈细线哈,就是这边呢就说我们的内容,这个那个他的角呢就圆滑一些,因为三号的角。 嗯,我们现在看一下,就是实际上刚才我们写的呢就是这个这个呢 就是我们给他加了一圈细线,然后他的背景呢设置成了浅色,嗯,然后他的脚呢就是稍微的圆滑一些啊,是这样,嗯, 然后我们继续往下看啊,继续往下看呢,他就是他是说呢他这个容器呢也是一个流线型,就是他这就是填充的比较均衡吧。 然后这个 p y 杠四呢,实际上他是说就是他这部分的内容,就是他这个内容上下都会有四个,都都会有四个单位的空间,就是不是太靠上或靠下。这样 然后呢我们再往下,再往下呢就是他会用了一个 h 一, h 一 呢是一个字号,他是从 h 一 到 h 六,这个字号是从大到小这样排列啊,他这里呢就是那个他展示呢就是用那个一个,嗯,这个形式三号形式的一个展示,然后就是 锤克咬兰宁,我们看一下,实际上就是这个,就是这个呢就是一个 he 形式的一个字号,比较大,嗯, 然后但是到下面的他是那个就是我们正式的内容了,就是也不是说我们正式内容,就说我们描述的一个内容吧, 虽然说我没看到啊,就是我在模板里这样那个写的呢,他是就是不怎么齐是吧?但是因为他这里是那个写了那个给他设置了一个流流线型嘛,就是他会自动对齐,自动那个就是找出比较好看的一面来。嗯,然后我们看一下这边, 虽然说我在那个那边写的不是很齐,但是这边呢他会就是一个有一个自动对齐啊, 然后结束了之后呢?嗯,结束了之后,嗯,就是主内容结束了啊,然后下面的我们去加一个链接,加一个按钮, 加一个按钮呢,他就是我们这里就是内容呢就是一个按钮,然后那个这按钮类型呢是一个基础类型,然后按钮的颜色呢?是一个浅色。呃,哦,不对,这里是那个按钮呢,是一个大型按钮啊,这个蜡质, 然后他这个 mt 杠一应该是一个。这个我忘了怎么解释了,这个应该是一个规格还是什么?然后呢就是这个按钮呢会带着一个超链接按钮的名字呢,就叫注册。 然后后面这个符号呢,实际上就是两个这个小于号吧。嗯,然后呢最后就是 n 的 block 关掉这个符号,也是结束了这一页,我们再去看一下这页啊,就是这个就是我们刚才的注册,然后就是我们写的两个。哦,行,看起来像大于号啊。 好,呃,这样呢,这个欢迎页结束了呢,我们再去看一下我们的主题页哈。 嗯,主题页呢? 这个主题页呢,它上来也是就是继承我们的基础页,继承了之后呢,它会那个就是上来就是用我们这个 black page header, 就是 这个块呢, 它这个块里从打开到关闭它只有一个内容,就是用一个 h 一 字号的一个 topics, 然后我们去看一下啊, 嗯,也就说它我们那个就是那个字块里呢,就第一个块里就只有这一点内容。然后剩下的呢就是我们这个 black content, 就是 我们那个主页的内容啊, 然后上来呢就是我们那个就是进行一个设置,然后首先呢我们就是定一下这个类型,这个类型呢就是一个列表组,然后呢 就是在我们那个整体内容下面呢加一条线,然后我们看一下,就是我们这个整个列表组下面呢就加了一条线, 呃,再往下呢就是 p b 杠二,就是说呢它有个电秤,就是在我们线的上方呢有两个单位的空间,然后就是 m b 杠四,就是马振八腾那个就是在我们线的下方呢有四个单位的一个空间。我们去看一下啊, 就是从我们这个线的下方到这个到下面再出现一个字,就是这边呢是有四个单位的,从我们这个线的上方呢就是有两个单位的空间,是这样, 然后呢就是这边呢我们看成一个循环,因为我们这个主题呢,呃,就是我们有好多主题的,我们希望把这个每一个主题的列出来,就是我们就是那个开始那个什么, 嗯,有每一个主题呢,我们就是从这个列表组的一个项目,然后那个我们把这个我们主题的 这个包德杠零,他意思呢就是原先我们的主题呢,实际上是外面有一圈线圈着的,这样我们给他写个包德杠零呢,这样他就是没有线圈着,他就显得就是比较好看。这样, 嗯,然后呢我们这里呢就是对于每一个主题,因为我们开始循环了吗?循环之后我们把我们每一个主题呢都拿出来,对于每一个主题呢,我们形成一个超链接,然后超链接呢? 嗯,超链接上的名字呢,就是这个主题的名字的文本,然后这样一结束了。下面的 m、 p、 t 呢,就是当我们没有主题的时候,嗯,这里呢他也会就是形成一个列表组的项目, 然后呢他会出一句话就说,哎,还没有加入任何的主题,然后呢这样就结束了, 就是在我们这边结束了之后,最后呢我们加一个链接,加一个链接呢就是添加新主题的一个链接,就超链接名字叫添加新主题啊,我们看一下,就这里 这个就是我们添加新主题的链接啊,就是那个我们找一下,就是像这边如果我之前没有添加过任何主题的话,他就会,哦现在还没有什么。 嗯哦,这个账号是添加主题了,如果没有主题的话,他会是出现一个现在还没有主题添加的一个字句啊, 是这样,然后我们再往下,再往下呢我们就看一下这个词条页,就是因为那个我们有好多主题,每一个主题呢对应着好多词条嘛。那么我们这个词条页呢, 我们继续看啊,我们的词条页呢就是我们首先呢也是 就是我们所有的模板都会继承我们那个基础模板,就是那个非常长的那个模板,然后继承了之后呢我们也是就是开始我们的一个块,一个那个开头块,这开头块呢也是就是只有一个内容, 就是当前主题的一个文本,也是一个大字号的 h 一 字号的,我们去看一下, 因为就是这是一个总主题吗?这就是一个一个的小主题,我们点进去就是这样,这个呢就是我们那个开写的那开头块, 因为那个他这里就是他配个点 t x t 吗?就是因为他这个主题呢,就是,嗯, chinese 我 写的啊, 然后这个就是这个开头块结束了之后呢,我们就主内容块开始。主内容块开始呢,我们第一个,我们首先呢就写一个超级链接,超链接呢就是说,哎,我要加新主题, 就在这里 add new entry, 这个我们点一下,它会出现一个加新主题的一个页, 然后那个就是这个链接写完了之后呢,我们就是开始正式写关于我们主题的内容,因为那个就是词条的内容啊,呃,这里是加新词条啊,刚才那个说错了, 就是因为那个一个主题下面有好多词条嘛,我们就是进行一个循环,就是 for entry in entries, 嗯,对于每一个, 对于那个,每一个那个磁条呢,我们就是他这边是用那个一个卡的方式,就是卡片的方式呢,给给他进行一个装饰,然后,嗯,就是在下方呢,他会加上一个三个单位的一个空间, 嗯,就是说对于每一个这个词条他会分成两个部分,一个是一是卡片的开头,一个是卡片的主体,嗯, 对于那个卡片的开头呢,我们看一下,嗯,然后继续往下是一个 a 十四号, a 十四号呢字填的就比较小,他这一个那个卡片开头啊,他那个这里呢会分成 他会包含两部分,一个呢就是我们,呃,就是一个就是我们词条的日期,因为我们那之前写的这个 form 呢,就是我们每当我们搭建这个词条的时候, 呃,不是 form 吗?是模组啊,每当我们那个写这个词条的时候,他会自动的记录日期,然后我们日期的格式呢就是月、日、年,然后二十四小时的一个时间。这样, 然后下面呢他会跟着一个就是超链接,这个超链接呢这个我们给他写了个 small small, 就是 这个让他非常小看起来,然后呢他的名字呢就是修改词条,我们就看一下这边,对,这个就是我们写的这个修改词条呢, 然后呢这边呢就是我们的日期格式,然后下边呢就是那个我们那个把这个菜条他是实际上用卡片的方式分成了两部分。第一部分呢就是一个日期,然后后面跟着一个超链接可以修改,他下面呢就是那个什么 下面呢就是那个一个他的主要内容,然后我们继续往下, 就是这边呢就是这个卡片的一个主体,就是一个我们磁条的那个文本。然后呢如果他那个就是很长的话,他就会自动的打断哈,自动的分行,是这样, 这下面呢也会跟着一个 m p t, 就是 说如果没有词条的话,他会那个显示一句话还没有加入任何词条。然后呢这样就是这样的,我们循环结束之后,我们这个循环快也结束了,就是我们这个内容快结束啊,是这样, 当然了就是这边我写的非常潦,非常的潦草啊,我们就是修改他那个什么胡乱那个夹心内容吧,或者是我们去网上粘贴一些内容, 我们去修改一下,就是我们看到就是刚才我打了三个点已经修改上了。是当然了,他那个 就是我们之前写的,就是他只只显示那个,就是在这个页面上他只显示那个五十个字哈,因为如果显示太多字的话呢,相对来说不美观。然后我们到一个, 你就是比如这个数学这个主题,因为他还没有词条吗?他这里就会显示,哎,还没有词条加进来,是这样。然后呢我们再去看一下那个一个注册页啊,嗯, 就是我们刚已经看了这个基础页,欢迎页啊,主题页,嗯, 还有这个是磁条页。然后我们一起再去看一下注册页,因为那个剩下的呢都和这个注册页是大同小异的。 嗯,注册页呢就是在我们另一个 app 里,就是我们那个用户的 app 登录页啊,不是注册页登录页的,我们看一下我们的登录页了, 我们登录页那个就是和上,就是刚才我们看的那些页呢,都不一样。他首先呢当然也是继承,就是我们的基础页,继承了之后呢,他这里会加载这个 jango bootstrap five, 就是 加载我们安装的 app, 它为什么需要加载它呢?因为每次我们需要使用那个调用它的符号的时候,它都会那个都必须加上这一个,把它调用过来。然后呢我们就是开始那个一个 就是我们那个一个开头页吧,开头页那个也是用一个 hr 的 字号,相对来说大一点一说,哎,登录你的账号,然后我们去看一下,就是我们登出, 登出之后这里,哎就是在这里实际上就是我们这个开头块呢,就是只包含这一点内容,就是登录你的账号,然后下面呢就是我们内容块,内容块 他这里就是我们形成一个表格,提交一个表格呢就是然后我们的链接呢会指向那个我们账户登录的一个链接, 然后下面呢我们就是跟着一个什么,跟着一个这个防恶意攻击的一个代码。下面呢就是这个这两行的不特斯拓普,实际上我们就是这边加载这个不特斯拓普 five, 就是 为了这里用哈, 就是我们在这里要调用这个 the 串符,这就这里呢就是我们那个调用这个表格形式,然后呢把我们在那个是是图里写的表格呢处理一下,处理完了之后呢这里就是调用这个 body strap 按钮, 然后按钮的类型呢是提交,然后这个内容呢就是登录他这里的内容呢就是实际上就是按钮的名字,这样就结束了,我们看一下啊, 就是这就是当我们那个, 嗯,就是当我们填上信息的时候,我们一点提交,这样啊,嗯,然后那个我们登录成功了之后他会有这样,然后我们再去看一下注册页啊, 注册页呢,其实那个和这个什么啊注册页我们不看了吧,实际上他那个剩下的就是有这个注册页,还有我们打开看 剩下的有这个注册页,然后我们那个加薪加薪主题的页,加薪词条的页, 还有这个修改这个词条的页呢,实际上和那个就是我们登录页呢写的方法都是一样的,只是我们需要改一改就行了。 然后呢,这样我们就是不多看了哈,因为那个相对来说就是意义不大。嗯,因为那个只要是这个注册一样的,我们会写了之后会看了之后会改了。嗯, 别那个别的也就都会了。那这就是这一周的内容哈,实际上那个并不多,但是那个怎么说呢?嗯,他他那唯一就是多的内容是在哪里呢?唯一多的就是 唯一多的就是我们的基础页。嗯 哦,因为那个就是刚开始接触这部分内容的时候,你要那个就是把它了解,不要求我们会写啊,因为他那个我们可以复制模板,但是呢这其中的好多内容呢需要我们会改, 但是呢改的前提呢就是我们要知道他是干什么的,知道怎么改。是这样。嗯,那就是这周先到这里啊,谢谢大家,再见。 哎,对了,我们下周呢就是看看吧,如果就是时间冲突的话,下周呢我们会把这个就是我们那个目标,因为到了,就是我们 app 到了最后一步了吗?我们就是上下服务器这个, 嗯,看看,如果时间冲突的话,我们就下周日再那个发相关的视频啊,再见。

开放零基础入门第四章四点一学生管理系统一接下来的时间,我们主要讲解学生管理系统中添加学生信息这一部分的功能实现。在添加学生信息的功能里,有两个功能需要我们实现, 第一个使用 input 函数得到用户输入的学生信息。第二个,必须确保用户输入的学号与系统中已存储的学号不重复。在开始编辑具体功能代码之前,我们有几点需要注意。 首先,关于学生信息的存储,我们暂时只保存三个部分,学号 id、 姓名 name 和年龄 age, 并且这些信息将以列表的形式进行存储, 列表中的每一个元素对应一名学生的信息,而每位学生的信息则使用键值对的形式储存起来的。那么如何实现添加学生信息功能呢?第一步需要用户选择到添加学生信息选项。第二步需要用户输入学生信息。 在用户输入学生信息之后,我们需要验证用户输入的学号与之前储存的学号是否不一致。 如果用户输入的学号与之前储存的学号不一致,那么就保存为新的学生信息,然后结束添加函数。如果发现用户输入的学号与已有学号重复,则提示用户 id 重复,然后结束这个添加学生信息函数。现在我们可以根据这个流程图来写下代码。 在开始添加学生信息之前,需要先创建一个列表,我们取为 studentlist, 用于存储所有学生的信息。当用户选择添加学生信息的选项后,系统会调用 a、 d、 d 函数。 在这个函数中,我们使用 input 的 函数让用户输入学生信息。为了过滤掉用户输入时可能无意带入的空格等无效字符,可以在 input 的 后面加上 strip 函数进行处理。 获取到用户输入的学生信息后,接下来需要验证用户输入的学号是否为一。我们可以通过一个 for 循环便利 student list 中的每一个元素,再使用 if 语句判断每个元素中的 id 是 否与刚输入的 id 相等。 如果发现相等的情况,就提示用户 id 重复,并且由于已经找到重复的 id 不 再需要继续验证, 此时可以跳出循环并返回空值。如果 for 循环结束后没有找到相同的 id, 则说明用户输入的 id 是 唯一的。可以将该信息保存为新的学生记录。创建一个学生字典,然后使用 append 方法将这个字典添加到 studentlist 列表中。 以上就是整个添加学生信息的实现过程,现在我们可以打开 python, 实际验证这段代码是否能够成功添加学生信息。 在 python 中,我们已经创建了学生信息列表,以及将这个添加学生信息功能补充完整。由于我们还没有做显示学生信息的功能,所以我们使用 print 打印学生信息列表就可以了。 studentlist, 现在我们来运行一下这段代码,看能否成功添加学生信息。选择操作一,然后选择学生 id, 取名为李华,年龄写十二吧。可以看到,在这里我们已经成功添加了李华的学生信息,那么我们继续添加学生。 如果我的 id 还是唯一,名字不是李华,取名叫韩美美,年纪随便写一下可以看到提示我们学生 id 重复,也就是没有添加成功,保证了每个学生的学生 id 的 唯一性, 这就是整个添加学生信息。到这里你已经完成了整个添加学生信息的功能,如果你有什么疑问可以在评论区问我,我们下个视频,再见。

那这个视频呢?给大家呃,讲解一下用 python 语言怎么去实现一个 r a 级的这个功能的。那么我们前几个视频已经讲过,这个 r a 级要分哪些步骤去实现?然后这个向量数据库怎么去安装?怎么去浏览?然后怎么去创建一个数据集,对吧? 这个向量数据库里面的数据集,那么前一个视频讲了这个用这个,呃 vpi 节就是 post 语句怎么去创建一个数据集?怎么去创建一个数据集里面的字段缩影, 那么呃我们再用到后面 python 的 话,就会更方便,是用到一些他的客户端,然后是通过一些呃程序代码去创建这些呃数据集,包括后面的这个搜索, 包括怎么把文件的文本读取出来,把每一行的文本转化成这个向量数据。向量数据大家还记得吧?向量数据的话应该都是这样的啊,都是都是,都是像这样的一些浮点,浮点数、 赋点数的一个数组。那么这个 python 我 在这里去读取这个文本,然后先把它转换成每行的一个文本,你比如说我把这个文件读取出来, 然后通过 for 循环把每一行都读出来,把每一行都读取出来。也就是说,比如说这是一个文版本本里面第一行我读取出来,然后我再读取第二行,再读取第三行,然后把它变成一个数组, 然后交给这个 mailbox 的 这个客户端去把它呃呃,把 ai 的 这个客户端去用这个 embedded 这个这个功能去把它转换成向量数据。 那么 python 语言其实我也就学了两天,那,那这个其实为什么呢?只学了两天呢?但是我可以去操作呢?因为我也有近三十年的软件开发工作了 经验。那么这个呃各种语言,有个 java c、 java script, 什么 v u、 e、 f 那 各种各样的语言我都做过很长时间,所以学 python 就是 上手很快, 因为所有的这个开发的语言编程语言都是差不多的意思, 尤其是些高级编程语言。那么为什么我不推荐这个 python 呢?因为这个 python 的 话没有甲方和 c 下吧,或者是包括甚至是 rust 这些这些语言的这个严谨性啊,或者这些东西 都是要比排审这个强太多。那排审呢?他其实主要是为了读取一些他专门做的一些数据分析的这些功能,真正生成一个 vba p i 啊,或者是怎么去调用后台,怎么去操作数据库啊?他这个不是他的强项, 他对这个取数据和分析数据是是这方面是强项, 那么它这个优缺点或者是习惯用拍,是不是习惯用 python? 这个我们不再去做过多的扩展,去去去解释或者什么。那么我们现在 就先用 python 来去给大家讲解一下怎么用呃怎么去实现这个 log 功能。那么其实我一开始讲的这个 java js 啊,这些都可以去去实现的。那么我们既然呃先玩了 python 的 话,那就看 python 怎么实现。 那 python, 呃,比如说写一个文件,写一个文件以后,那么它是可随时随地可以在这里 你只要全选,或者是你不选,你直接运行一个 run code 的 这个插件,它就会直接从上而下地把这个呃程序代码都运行成运行。 那么呃这个是什么意思呢?这个就是导导从哪一个库里面导出来哪一个方法,就像从一个工具库里面,从这个 glob 这个工具库里面,我导出这个 glob 的 这个工具, 那它的意思也很明白, from glob 就是 从这个工具库里面导出。呃,就是导入这个这个 glob 的 工具, 在在其他,在其他用的多里面呢?也是的,你比如说它是从这个库里面也导出这个 这个这个工具,这个我这边注视了 tqdm, 是 一个用于显示循环进度条的排成库,那么它从这个库里面导出这个工具。 你看我从这个 ai 里这个工具库里面导出一个 onset 的 这个工具和这个 emba 的 text 这个工具, 这就跟这个加法,这个 import 什么这些都是一样的,都是一样的,包括 rust, 可以 给大家看一下这个 rust, 这个这,这个 啊,这个 rust 的 这个导入导出的语句,它其实也是一样的。 呃, rust 它只不过是 use 这个工具库的这个工具,还有这个工具,它其实都是 导入导出的意思,那就导出数据库。呃,那个这个工具库里面的一些工具, 那么这个 rust 其实在未来的话也应该是要超过 java 的 啊,因为它在运行起来的时候比这个 java 的 运行内存要小很多,而且速速度快,因为它是接近呃, c 加加的, 那么我们再回到这个这个项目,那么同样这个 python 里面,它也有类的概念,那它就定义了一个 class, 这个类我们叫 fire red 这个类, 那么这个 df 呢?就相当于在 java 里面的一个 function function, 它叫,它叫 d f, 那 么这个叫什么?在 c shift 里面呢?叫呃,什么 pu public, 然后什么 void 不要返回啊什么?那么在拍摄里面,每一个方法的前面都要有一个 d f, 就是 定义 define, 其实它是 define 的 缩写, d f, 那 么这个就是方你的方法名,然后这个就是参数。这个 python 挺有意思,它如果你是写类的话,你必须要在第一个参数是 self, 要写一个 self, 然后面才是你自己要用的这个参数, 而在这个叫什么 c 下铺或者夹把里面基本都是 p u b r s public, 然后然后你是 void, 然后你是方法名,比如说也叫 get text, 然后这样带带上你的要的参数, 然后定义定义你的类型,比如说什么?那 c shift, c shift 的 话是是在这里定义类型,对吧?然后你的参数名 啊,这个是 c shift 的 语法或者 java 的 语法都是这样子的,而这个呃 python 就是 这个 函数名,前面一定要定一个 e f, 然后如果你是累的话,你必须要前面加一个 c f, 如果你不是不是累的话,你就定义一个,随便定义一个方法,我就也叫 get text, 那 么这里就不用不用 cf 这个参数,你就写个 你自己定义的参数,那么参数名是在这里,参数的类型在这里,那么假如把 c shift 什么都是一个括号,这样,对吧?然后你去写你的代码,那么 python 就 直接一个冒号, 它把这个缩进当成你的一个程序体,缩进是一个程序体, 然后你的返回也是在一个程序里面,他的 for, 他的 for 你, 比如说这个这个段落什么意思呢?就是说我把文件的路径给他,文件的路径给他,他会去读你的这个文件, 他你的文件是可以有很多个的,你比如说你,你给他这个 pass, 你 比如说我给他的是这个目录,下面呢?是这个星点, md 新点, md 这个文件文本文件,那新点就是所有这个目录下的 faq 下面所有的文件了,对吧?所有的这个 md 结尾的文件,那么给他,他给他以后,他会把这些文件一起读进来, 那么一起读进了,它成为一个宿主,那么它就是有这个 for 循环,那么 for 循环就是说我从这个所有的这个文件里面去读出这个 循环的,读出每一个文件的路径,然后要干什么呢? with 这个 open, 就是 打开这个文件, 然后再去读这个文件给文本,那读取得好了以后,再把这个文本通过 split 把它就是 一整段文本,通过这个井号这个符号来分段,或者是分行,把每一行它一行读出来,然后给他这个,然后再通过这个循环 再把第二行的东西再给这个 textline, 因为这个 textline 是 一个,是一个宿主,对吧?它是一个宿主,这就是它的定义,它也没有什么 vi 啊,也什么没有什么 let 啊,或者是什么, 它就这么写,就一个变量名,等于一个宿主,你比如说你等于一个字串,也可以这样定义成一个字串, 对吧?那么我这里定一个数组,那就他这里给什么,他就是什么样的数组,你比如说给字不串的数组,呃,给字不串,那就他就是字不串的数组,你要是给他一个整形的数,呃数字,那么他就是一个整形的数组, 那么他最后循循环读好了以后,这个 return 返回出来,这个就是他的结果。 这个就是一个 python 的 一个类的一个方法里面怎么去处理?呃,文本循环读行的一个代码段, 那同样我读好这个文本以后,我怎么去去 unbending 呢?就是说在这个 log 里面,我不是要把这些文档分片,要把这个数据转化成一个向量数据吗?向量数据啊,存到这个向量数据库吗?那么我首先要转换成向量数据,那么我要就要通过这个 ai ai 这个模块,我去来做这个 open ai, 那 么也是一个编程库的一个组建, 我们可以通过 p i p install open ai 来安装这个拍摄库,那么它从这个 open ai 这个拍摄库里面导出这个 open ai 这个工具。然后 同样我再执行一个 open ai 的 这个这个 client 的 这个定义,把它定义成一个变量,然后创建一个 open ai。 像呃, java 或者是 c, java 你 都前面都要写个 new, 它这里不需要写 new 的, 就是直接 写这个 open a, 然后括号把这个创建或者是创建它的时候的初设参数给他,那么我就给他这一个 open a 的 这个地址, 包括它的 k。 创建好了这一个 open ai 的 这个客户端的这个工具以后,然后给这个变量,这个这个变量就相当于这个容器一样,对不对?就像一个盒子一样的创建好了这个东西,把它放到这个盒子里面, 那么这个参数是代表什么呢?它 base ui, 因为我们调用 o i, 比如说我们在 deepsea 上面,我们它这个 deepsea 的 这个一个远程调用地址, 在 deepsea 官网上面,它有这个文档的,如果你客户端要去调用这个呃网上的 deepsea 的 话,网上的 websea 的 这个 web api 接口的话,那它就是要 首先要把这个地址输入进去,还要把你这个 k 输入进去,因为他是要付费的嘛,他是要收费的,所以他会给你个 k, 你 要把这个 k 写好放进来, 然后他把这个客户端生成好了以后,你去调用他这个这个客户端里面各种各样的方法,你比如说创建的话,这个方法的话,他就会去调用这个远程的这个接口, 然后去实现你这个要调用的这个功能,然后再把数据返回给你。 为什么我在这里写着 local host 呢?这因为我在我本地部署了一个呃大元模型,本地大元模型,呃一个字,在 doc 里面可以呃部署, doc 里面部署的话,它是在 models 这里面,你可以下载这个 model, 那 么它的它的命令是什么?它的命令叫 d o c k e doc model p u l l, 然后你的 大语言模型,然后你去把它拉下来,拉下来它就会在这里面, 然后你也不需要去 run 它了,你就直接在这个客户端去调用它这个大元模型就行了。你然后把这个地址跑起来,它有个跑起来的, 那么在 doc 里面是这样子。还有一个,我有一个 alama 的 这个客户端, alama 的 客户端,它会,它会把你这个呃模型 也下载下来,呃,具体大家可以看这个 alama 这个客户,这个这官方网站的一些说明,那么它这是它里面带的一些大圆模型, 那么我这个就是去去调用这这些本地部署好的代约模型,这个站点,因为它这个运行起来就相当于一个站点一样的,就相当于 deepsea, 这个在远程的这个 deepsea 服务器一样,这只不过是在运行,呃,运行在你的本地的, 那么用了这个,这用了这个客户端了以后,我就是去 bunding 这些这个语句,对吧?这个文本,这一句话,一句话以后我把这个它有个 input 的 参数, input 的 参数名,然后我们把这个值就是这个 text 给他,然后他一个 model 的 名,那也就是这个模型名称,因为我这个是调用 docker 里面的这个模型的,那么我就写他这个模型名称 就可以了,然后它会有这个返回的数据,取这个返回数据的第一个,第一个,第一个宿主,它其实是宿主中的宿主,那你就把这个第一宿主的第一项拿到,然后取它的 ending 的 结果返回给你, 你拿到了就是一组 unbending 的 这个数组,然后再通过 mailbox 把它插入到数据里面。你看我把这个 拿好了,这个文本,每一行的文本,某一行的文本啊,然后做成一个这样的一个数组,做好这样的一个数组, 再调用这个 insert data 这个方法,因为这个我也写成了个类了嘛。写成这个类的话,那么我再把这 个每行的文本,你看他是一个数组,每行的文本文通过一个,再通过一个负循环,这里是拍神的一个功能,他其实在拍神在运行的时候,这个下面会有一个进度条,你运行一个负循环的硬度条,他就是转换,不是要时间的吗?他会 在这个进度条里面显示这个转化的时间进度,然后我把这个转化好的这个这个浮点数据的宿主, 这个 append, append 其实是 meravas 客户端的一个方法,它会把这个你这个数据库插入到这个数据向量数据库里面去,到最后就会看到这这条数据,那么你要负循环的话,它就会不断地插入, 一直到这个文本,所有的都转换好,都插入到这个向量数据库里面。 你看我这个 data 数据库啊,它是用 insert, 然后告你要告诉它集合名称往哪个集合里面去插,然后它的数据是什么啊?插入进去,那么它就它就成功了,这是它内部的编写方式, 这个就是插入数据,包括后面搜索数据,它都有相关的文档, 都有相关的文档,大家可以去看一下。那其实如果你有 java 语言基础和 c java 语言基础的话,这些东西看起来的话都很快,这样子都很快。 你比你去看人家这些视频什么上来,就是啊,怎么去定义的?然后一个负循环啊,什么我一二三啊,做一个什么乘法口诀表啊,呃,这个这个这个这个快多了,你一定要有个去自己操作,包括结合,结合他这种, 你哪怕直接复制下来,把这个复制下来,直接黏贴上来,你去操作一下,运行一下,都比你看视频去听一些基础的啊,这个什么一二三,给这个变量,给那个变量,这都快,一定要你去操作、去理解, 那么我这个视频呢,就给大家粗略的讲什么去操作、去理解,那么我这个视频呢,就给大家粗略的讲去理解。那么我这个视频呢,就给大家粗略的讲去理解。那么我这个视频呢,就给大家粗略的一个文本, 把每一段的文本段落转换成一个向量数据,转换成一个向量数据,然后把这个向量数据通过 mailbox 的 客户端的 api 去存入这个向量数据库。 no more more 后面再具体讲 python 的 一些操作,比如说搜索啊,呃,返回结果怎么呃,再去把它组合成一个问,呃这个问题的答案呢?返回给客户。 好,这个视频如果有些什么疑问的话,请在评论区留言。

好,接下来我们来学习一下如何使用这样的一个视觉摄像头来进行上传程序,实现视觉识别类功能。我们首先来看一下如何安装这样的一个 k m v i d e 的 软件, 在使用的时候我们使用 kmvide 这个软件上传程序到摄像头的这个主板上,摄像头你也可以把它当做一个小型的一个小型主板,屏幕这边可以显示拍摄到的画面。那么如何安装这个软件呢?我们直接双击打开来看一下, 这里会有一个软件压缩包,我们先将它解压缩到当前文件夹 好,右击一下这边的鼠标按键解压缩一下, 直接点击可以点击到解压缩到当前文件夹就可以了,点击之后我们这边来稍等一下,这就是我们这样的一个软件的一个安装包,我们双击一下, 双击之后会跳出窗口来提示我们安装, 那么这里是可以看到我们这边上的一个安装的一个向导,我们直接点击下一步,下一步到安装位置,那么点击这里的右侧的按键,可以选择它安装到哪个位置, 那么我们就选择电脑存储的内存比较多的这样的一个硬盘。 好,我选择这边之后可以在这里新建一个文件夹,把它放置一下我们这样的一个软件。好,点击新建,点击创建一个文件夹名称的话就叫创建我们这边的软件名称 保持一致。 好,创建好之后,那么找到我们这边的一个刚刚创建的一个文件夹, 那是空的,选择文件夹点击下一步就可以,然后接收这边的许可, 开始选择要创建快捷方式,再开始我们可以创建一个试一下这里的目录,它创建在哪里,我们直接就这样不用点击下一步就好了。 好,然后最后点击安装,那我们稍等一下安装就可以, 最后点击完成的话,我们这边点击一下完成就可以了。好, 那么我们关掉刚刚的安装的这里,在桌面上它已经创建好了这样一个 kmvid 的 一个快捷方式,直接双击就可以打开我们上传到视觉摄像头上的程序这个软件了。 好,这打开之后它会包含的一些这样的一个页面,我们后续 再来安装一下串口驱动,然后就可以将那个 usb 口数据线一端插到我们摄像头上的 usb 口这里,一个数据口,另外一端插到电脑上。 好,插好之后我们来现在来安装一下串口驱动。