当前位置: 首页 > 科技观察

人工智能时代,用Python写了一个智能机器人聊天,很不错!

时间:2023-03-12 14:10:09 科技观察

人工智能已经是一种趋势。智能酒店、智能网吧、无人驾驶汽车等都已实现。用不了多久,它们就会在我们的生活圈子里流行起来。同样,智能时代的到来意味着很多人将面临失业。我们要顺应时代的发展,才不会被时代抛弃,被时代淘汰!而作为人工智能的最佳语言——python将是我们学习的最佳目标;有人说了一句话:在不久的将来,不懂python的人将被列为新“文盲”!而python也是最适合没有任何编程语言基础的人学习的!于是开始了我的python学习之旅!只要找到正确的步骤和方法,好好学习!相信我,你很快就会学会的!在此,小编为想学习的小伙伴准备了适合零基础入门学习的学习资料。当然,还有今天的源码。今天小编给大家带来的是写一个智能机器人:1.我们来分析一下生成器对象。让我们看一个简单的例子。我们创建一个生成器函数,然后生成一个生成器对象。人工智能时代,用python写了一个智能机器人聊天,很不错!指示G是生成器对象。我们来分析一下。这里面是什么?)函数在前面两篇文章中已经提到过,这里不再赘述。今天我们重点关注send(),throw(),close()函数2.什么是协程Python的协程有点类似于线程,你可以认为协程是用户级的轻量级线程或者微线程,可以运行多个函数,让这些函数看起来是同时运行的,但是相比线程有一些优势,比如不需要大量的内存,开销小,不需要考虑线程安全。(文章后面会讲到什么是线程)1、send()函数send()用于传递参数,实现与generator的交互。当程序运行到receive=yield时,就会被挂起,等待generator调用send方法。此时外部调用send函数,将data变量发送进来,data变量会传递给接收示例代码:a)。echo函数里面有一个死循环,里面有一行关键的代码,receive=yield这个是send函数从外面发送过来的入口。b).外部函数首先生成生成器对象,即Echo=echo()c)。然后是关键步骤next(Echo),一定要调用一次next函数,让生成器前进到第一个yi字段表达式侧d)。接下来,我们可以将yield操作和send操作结合起来,获取外界输入的数据,然后使用一套流程进行处理。2、throw()函数throw主要是给generator发送异常可以结束系统定义的异常(当然也包括自定义异常)。示例代码:a)。创建生成器对象Gb),执行next(G)并打印结果,我们会在第一个yield中得到缓存中的结果'First',并留在yield'Second'之前c)。抛出一个异常类ValueError(注意ValueError是一个类不是字符串),生成器收到异常时,直接跳过yield'Second'进入except部分,打印出'CatchtheTypeError'd)。执行next(G)并打印结果,我们会回到whilehead,消费第一个yield'Frist',执行yield'Second'3.close()函数close用于停止生成器。如果在停止后调用next,将触发StopIteration错误。示例代码:当生成器对象Echo结束调用close()时,调用send('123')会抛出异常StopIteration,然后被我们捕获。三。实用应用-迷你聊天机器人说了这么多,是不是有点晕,生成器本身就是Python中最复杂的概念之一,有同学问还有没有另外两个(没错,就是装饰器),写个小的吧带协程的聊天机器人~~1)。创建一个聊天机器人生成器函数,可以认为是后台线程函数。2).前台不断获取用户输入,然后使用协程将程序发送到后台处理,看运行效果