[其他] 为什么人工智能用 Python?

[复制链接]
呼啦嘿 发表于 2023-9-17 16:52:01|来自:北京 | 显示全部楼层 |阅读模式
Python 作为脚本语言,运行速度没有 Java、C++ 快。

Python 到底有什么优势?
全部回复5 显示全部楼层
dle5374 发表于 2023-9-17 16:52:37|来自:北京 | 显示全部楼层
谢邀
如果说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 Facebook 开源了 PyTorch 之后,Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
不过声音市场上还有一些杂音。最近一个有意学习数据科学的姑娘跟我说,她的一个朋友建议她从 Java 入手,因为 Hadoop 等大数据基础设施是用 Java 写的。
这篇文章本身算得上是客观公正,实事求是,但传到国内来,就被一些评论者曲解了本意,说 Python 的优势地位尚未确立,鹿死谁手尚未可知,各位学习者不可盲目跟风啊,千万要多方押宝,继续撒胡椒面不要停。
在这里我要明确表个态,对于希望加入到 AI 和大数据行业的开发人员来说,把鸡蛋放在 Python 这个篮子里不但是安全的,而且是必须的。
或者换个方式说,如果你将来想在这个行业混,什么都不用想,先闭着眼睛把 Python 学会了。
当然,Python不是没有它的问题和短处,你可以也应该有另外一种甚至几种语言与 Python 形成搭配,但是Python 将坐稳数据分析和 AI 第一语言的位置,这一点毫无疑问。
我甚至认为,由于 Python 坐稳了这个位置,由于这个行业未来需要大批的从业者,更由于Python正在迅速成为全球大中小学编程入门课程的首选教学语言,这种开源动态脚本语言非常有机会在不久的将来成为第一种真正意义上的编程世界语。
讨论编程语言的优劣兴衰一直被认为是一个口水战话题,被资深人士所不屑。但是我认为这次 Python 的上位是一件大事。
请设想一下,如果十五年之后,所有40岁以下的知识工作者,无分中外,从医生到建筑工程师,从办公室秘书到电影导演,从作曲家到销售,都能使用同一种编程语言进行基本的数据处理,调用云上的人工智能 API,操纵智能机器人,进而相互沟通想法,那么这一普遍编程的协作网络,其意义将远远超越任何编程语言之争。
目前看来,Python 最有希望担任这个角色。
Python 的胜出令人意外,因为它缺点很明显。
它语法上自成一派,让很多老手感到不习惯;“裸” Python 的速度很慢,在不同的任务上比C 语言大约慢数十倍到数千倍不等;由于全局解释器锁(GIL) 的限制,单个Python 程序无法在多核上并发执行;Python 2 和 Python 3 两个版本长期并行,很多模块需要同时维护两个不同的版本,给开发者选择带来了很多不必要的混乱和麻烦;由于不受任何一家公司的控制,一直以来也没有一个技 术巨头肯死挺 Python 。
所以,相对于 Python 的应用之广泛,其核心基础设施所得到的投入和支持其实是非常薄弱的。




直到今天,26岁的Python 都还没有一个官方标配的 JIT 编译器,相比之下, Java 语言在其发布之后头三年内就获得了标配 JIT 。
另一个事情更能够说明问题。Python 的 GIL 核心代码 1992 年由该语言创造者 Guido van Rossum 编写,此后十八年时间没有一个人对这段至关重要的代码改动过一个字节。
十八年!直到2010年,Antoine Pitrou才对 GIL 进行了近二十年来的第一次改进,而且还仅在 Python 3.x 版本中使用。这也就是说,今天使用 Python 2.7 的大多数开发者,他们所写的每一段程序仍然被26年前的一段代码牢牢制约着。
说到 Python 的不足,我就想起发生在自己身上的一段小小的轶事。我多年前曾经在一篇文章里声明自己看好 Python,而不看好 Ruby。
大概两年多以前,有一个网友在微博里找到我,对我大加责备,说因为当年读了我这篇文章,误听谗言,鬼迷心窍,一直专攻 Python,而始终对 Ruby 敬而远之。
结果他Python 固然精通,但最近一学 Ruby,如此美好,如此甜蜜,喜不自胜,反过来愤然意识到,当年完全被我误导了,在最美的年华错过了最美的编程语言。
我当时没有更多的与他争辩,也不知道他今天是否已经从Python后端、大数据分析、机器学习和 AI 工程师成功转型为Rails快速开发高手。我只是觉得,想要真正认识一件事物的价值,确实也不是一件容易的事情。
Python 就是这样一个带着各种毛病冲到第一方阵的赛车手,但即便到了几年前,也没有多少人相信它有机会摘取桂冠,很多人认为 Java 的位置不可动摇,还有人说一切程序都将用 JavaScript重写。
但今天我们再看,Python 已经是数据分析和 AI的第一语言,网络攻防的第一黑客语言,正在成为编程入门教学的第一语言,云计算系统管理第一语言。
Python 也早就成为Web 开发、游戏脚本、计算机视觉、物联网管理和机器人开发的主流语言之一,随着 Python 用户可以预期的增长,它还有机会在多个领域里登顶。
而且不要忘了,未来绝大多数的 Python 用户并不是专业的程序员,而是今天还在使用 Excel、PowePoint、SAS、Matlab和视频编辑器的那些人。
就拿 AI 来说,我们首先要问一下,AI 的主力人群在哪里?如果我们今天静态的来谈这个话题,你可能会认为 AI 的主力是研究机构里的 AI 科学家、拥有博士学位的机器学习专家和算法专家。
如果大家想找一个Python学习环境,可以加入我们的Python学习圈:784758214 ,自己是一名高级python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、django、人工智能、机器学习等。送给正在学习python的小伙伴!每天会准时的讲一些项目实战案例,分享一些学习的方法和需要注意的小细节,,这里是python学习者聚集地
我相信这些人几乎都将被Python 一网打尽,成为 Python 阵营的庞大后备军。
这些潜在的 Python 用户至今仍然在技术圈子之外,但随着 AI 应用的发展,数百万之众的教师、公司职员、工程师、翻译、编辑、医生、销售、管理者和公务员将裹挟着各自领域中的行业知识和数据资源,涌入 Python 和 AI 大潮之中,深刻的改变整个 IT,或者说 DT (数据科技)产业的整体格局和面貌。
为什么 Python 能够后来居上呢?
如果泛泛而论,我很可以列举 Python 的一些优点,比如语言设计简洁优雅,对程序员友好,开发效率高。但我认为这不是根本原因,因为其他一些语言在这方面表现得并不差。
还有人认为 Python 的优势在于资源丰富,拥有坚实的数值算法、图标和数据处理基础设施,建立了非常良好的生态环境,吸引了大批科学家以及各领域的专家使用,从而把雪球越滚越大。
但我觉得这是倒因为果。为什么偏偏是 Python 能够吸引人们使用,建立起这么好的基础设施呢?为什么世界上最好的语言 PHP 里头就没有 numpy 、NLTK、sk-learn、pandas 和 PyTorch 这样级别的库呢?为什么 JavaScript 极度繁荣之后就搞得各种程序库层次不齐,一地鸡毛,而 Python 的各种程序库既繁荣又有序,能够保持较高水准呢?
我认为最根本的原因只有一点:Python 是众多主流语言中唯一一个战略定位明确,而且始终坚持原有战略定位不动摇的语言。相比之下,太多的语言不断的用战术上无原则的勤奋去侵蚀和模糊自己的战略定位,最终只能等而下之。
Python 的战略定位是什么?其实很简单,就是要做一种简单、易用但专业、严谨的通用组合语言,或者叫胶水语言,让普通人也能够很容易的入门,把各种基本程序元件拼装在一起,协调运作。
正是因为坚持这个定位,Python 始终把语言本身的优美一致放在奇技妙招前面,始终把开发者效率放在CPU效率前面,始终把横向扩张能力放在纵向深潜能力之前。长期坚持这些战略选择,为 Python 带来了其他语言望尘莫及的丰富生态。
比如说,任何一个人,只要愿意学习,可以在几天的时间里学会Python基础部分,然后干很多很多事情,这种投入产出比可能是其他任何语言都无法相比的。
再比如说,正是由于 Python 语言本身慢,所以大家在开发被频繁使用的核心程序库时,大量使用 C 语言跟它配合,结果用 Python 开发的真实程序跑起来非常快,因为很有可能超过 80% 的时间系统执行的代码是 C 写的。
相反,如果 Python 不服气,非要在速度上较劲,那么结果很可能是裸速提高个几倍,但这样就没人有动力为它开发 C 模块了,最后的速度远不如混合模式,而且很可能语言因此会变得更复杂,结果是一个又慢又丑陋的语言。
更重要的是,Python 的包装能力、可组合性、可嵌入性都很好,可以把各种复杂性包装在 Python 模块里,暴露出漂亮的接口。
很 多时候,一个程序库本身是用 C/C++ 写的,但你会发现,直接使用 C 或者 C++ 去调用那个程序库,从环境配置到接口调用,都非常麻烦,反而隔着一层,用其python 包装库更加清爽整洁,又快又漂亮。这些特点到了 AI 领域中,就成了 Python 的强大优势。
Python 也借助 AI 和数据科学,攀爬到了编程语言生态链的顶级位置。Python 与 AI绑在一起,对它们来说,无论是电子商务、搜索引擎、社交网络还是智能硬件,未来都只是生态链下游的数据奶牛、电子神经和执行工具,都将听命于自己。




对编程语言发展历史缺乏了解的人可能会觉得,Python 的战略定位是犬儒主义和缺乏进取心的。但事实证明,能同时做到简单而严谨、易用而专业,是很难的,而能够坚守胶水语言的定位,更是难上加难。
有的语言,从一开始就是出于学术而非实用的目的,学习曲线过于陡峭,一般人很难接近。
有的语言,过于依赖背后金主的商业支持,好的时候风光无限,一旦被打入冷宫,连生存下去都成问题。
有的语言,设计的时候有明确的假想场景,要么是为了解决大规模并发,要么是为了解决矩阵运算,要么是为了做网页渲染模板,一旦离开这个场景,就各种不爽。
更多的语言,刚刚取得一点成功,就迫不及待的想成为全能冠军,在各个方向上拼命的伸展触角,特别是在增强表达能力和提升性能方面经常过分积极,不惜将核心语言改得面目全非,最后变成谁都无法掌控的庞然大物。
相比之下,Python 是现代编程语言设计和演化当中的一个成功典范。
Python 之所以在战略定位上如此清晰,战略坚持上如此坚定,归根结底是因为其社区构建了一个堪称典范的决策和治理机制。
这个机制以 Guido van Rossum (BDFL,Pythoners 都知道这是什么意思), DavidBeazley, Raymond Hettinger 等人为核心,以 PEP 为组织平台,民主而有序,集中而开明。只要这个机制本身得以维系,Python 在可见的未来里仍将一路平稳上行。
最有可能向 Python 发起挑战的,当然是Java。Java 的用户存量大,它本身也是一种战略定位清晰而且非常坚定的语言。
但我并不认为 Java 有很大的机会,因为它本质上是为构造大型复杂系统而设计的。什么是大型复杂系统?就是由人清清楚楚描述和构造出来的系统,其规模和复杂性是外生的,或者说外界赋予的。
而 AI 的本质是一个自学习、自组织的系统,其规模和复杂性是一个数学模型在数据的喂养下自己长出来的,是内生的。
因此,Java大多数的语言结构对于大数据的处理和 AI 系统的开发显得使不上劲,你强的东西这里用不上,这里需要的东西你做起来又别扭。
而 Python 在数据处理方面的简洁强悍早就尽人皆知。对比两个功能相同的 Java 和 Python 机器学习程序,正常人只要看两眼就能做出判断,一定是 Python 程序更加清爽痛快。
licemiao 发表于 2023-9-17 16:53:36|来自:北京 | 显示全部楼层
给亲推荐一篇《五位专家跟你讲讲为啥Python更适合做AI/机器学习》,希望对亲有帮助!!
摘要: 为什么Python会在这股深度学习浪潮中成为编程语言的头牌?听听大牛如何解释吧!




1.Python网络编程框架Twisted的创始人Glyph Lefkowitz(glyph):






编程是一项社交活动——Python社区已经认识到了这一点!

人工智能是一个全面的技术术语,通常意味着当前计算机科学研究中最先进的领域。
有一段时间,我们理所当然的认为基本图遍历是AI。那时候,Lisp是人工智能的专属语言,仅仅是因为研究人员更容易用它来做快速原型。我认为Python已经在很大程度上取代了它,因为除了类似的高层次功能之外,它还拥有出色的第三方库生态库和框架以及操作系统设施的完美集成。
Lispers可能会反对我的看法,所以我应该说清楚,我没有对Python在应用层次中的位置做出精确的陈述,只是说Python和Lisp都处于相同的语言类别中,像内存安全、模块、名称空间和高级数据结构。
在更具体的机器学习意义上,这是人们最近说的关于AI的最多的领域,我认为还有更具体的答案。NumPy及其相应的生态系统的存在使得研究人员可以对高级别内容进行研究,并进行高性能的数字处理。如果不是有非常强的数字处理需求,机器学习是没有任何意义的。
Python社区致力于为非程序员提供友好的介绍和生态系统支持,这确实增加了其在数据科学和计算科学的应用。无数的统计工作人员、天文学家、生物学家和商业分析师已经成为Python程序员,并且他们对自己的工具也做了些许的改进。编程基本上成为了一种社交活动,Python社区比JavaScript以外的任何其他语言都承认这一点。
机器学习是一个特别集成度很高的学科,因为任何AI/机器学习系统都需要从现实世界中提取大量数据作为训练数据或系统输入,因此Python的框架库生态系统意味着它通常可以很好地访问和转换数据。
2.PSF联合创始人兼eGenix首席执行官Marc-Andre Lemburg(@malemburg)





Python允许用户关注真正的问题
对于没有受过计算机科学培训的科学家来说,Python非常容易理解。当你尝试驱动你需要执行研究的外部库时,它可以帮助你消除许多必须处理的事项。
在Numeric(现在是NumPy)开始开发之后,增加了IPython笔记本(现在是Jupyter笔记本)、matplotlib和许多其他工具以使事情更加直观,Python让科学家主要考虑解决问题的方法,而不是去考虑那么多推动这些解决方案所需的技术。
与其他领域一样,Python是一种理想的集成语言,它将技术轻松绑定在一起。Python允许用户关注真正的问题,而不是花时间在实现细节上。除了为用户提供更方便的功能之外,Python还可以作为开发与外部库进行低级集成的理想平台。这主要是由于Python可以提供一个非常完整的API访问。
3.研究人员和Python机器学习的作者Sebastian Raschka(@rasbt):

对于数学和面向数据的人来说,Python非常容易使用。




我认为Python更适合做AI有两个主要原因。第一个原因是Python非常容易理解和学习。
我认为大多数从事机器学习和人工智能的人员都希望以最快捷的方式实现自己的想法。人工智能的重点是研究和应用程序,编程只是一个让你到达那里的工具。对于需要更多的数学和以数据为导向的人来说,编程语言学习起来越舒服,进入壁垒越低。Python也是非常容易理解的,这有助于保持最新的机器学习和AI的现状,例如,阅读算法的代码实现时。尝试人工智能和机器学习的新思路往往需要实现相对复杂的算法,语言越简单,调试就越容易。
第二个主要原因是,虽然Python本身就是一种非常易于访问的语言,但我们在其之上有很多优秀的库,这使得我们的工作变得更容易。没有人愿意花时间从头开始重新实现基本算法(除了研究机器学习和人工智能)。大量已经存在的Python库帮助我们专注于更令人兴奋的事情。
Python也可以用于处理高效的C/C ++算法和CUDA/cuDNN实现的优秀包装语言,这就是为什么现有的机器学习和深度学习库在Python中高效运行的原因。这对于机器学习和AI领域的工作是非常重要的。
总而言之,我会说Python是一种伟大的语言,它可以让研究人员和从业者专注于机器学习和AI,并且比其他语言更少分心。
4.ThoughtWorks的技术负责人Luciano Ramalho(@ramalhoorg):

Python对科学计算有吸引力。





最重要和最直接的原因是NumPy和SciPy库支持scikit-learn这样的项目,因为它目前几乎是所有机器学习任务的标准工具。
创建NumPy,SciPy,scikit-learn和其他许多库的原因是因为Python有一些功能使其对科学计算非常有吸引力。Python有其简单而一致的语法,可以让软件工程师以外的人更易于使用编程。
另一个原因是运算符重载,它使代码可读和简洁。然后就是Python的缓冲协议(PEP 3118),这是外部库在处理类似数组的数据结构时与Python高效互操作的标准。最后,Python为科学计算提供了丰富的库生态系统,吸引了更多的科学家并创造了良性循环。
5.Mike Bayer,Red Hat的高级软件工程师和SQLAlchemy的创建者:

Python是严格和高度一致性的。





我们正在Python这个领域中开发我们的库。我们将有一定希望保留和优化的算法放入一个库中,如scikit-learn。然后我们继续迭代并分享关于我们如何组织和思考数据的笔记。
高级脚本语言非常适合人工智能和机器学习,因为我们可以快速移动并重试。我们创建的大部分代码代表的是实际的数学和数据结构,而不是模板。
像Python这样的脚本语言更好,因为它是严格的和高度一致性的。每个人都可以更好地理解彼此的Python代码。
IPython笔记本等工具的可用性使得我们可以在全新的水平上迭代和分享我们的数学和算法
Python强调了我们正在努力完成的工作的核心,并且完全最小化了我们如何给计算机指令的所有其他内容,这就是它应该如何实现的,自动完成任何你不需要考虑的事情。

以上为译文,由阿里云云栖社区组织翻译。
译文链接
文章原标题《Why Deep Learning Has Not Superseded Traditional Computer Vision》
作者:Rich Gall,译者:虎说八道,审校:。
文章为简译,更为详细的内容,请查看原文
更多技术干货敬请关注云栖社区知乎机构号:阿里云云栖社区 - 知乎
本文为云栖社区原创内容,未经允许不得转载。
tenbaby 发表于 2023-9-17 16:54:09|来自:北京 | 显示全部楼层
先说结论:Python只是用来操作深度学习框架的工具,实际负责运算的主要模块并不依靠Python。

举个例子,我们会用excel制作表格,并调用一些公式、函数等。但是其实像SUM、AVERAGE这样的函数背后,都是C++/C#等语言编写的代码在实际起作用,不能说我们就是在用Excel做计算。



在深度学习方面,情况类似,真正起作用的是一大堆复杂的C++ / CUDA程序。但是这些程序太复杂了,包含不计其数的函数和参数,极少有人会直接写C++代码操作他们,而且也没必要这么做。
这时候就有两种选择:
1、搞一套复杂的Excel配置表,直接搭建神经网络、填参数、导入数据,一点按钮就直接开始训练模型、得出结果。
2、用一个类似Python的相对好用的语言,通过简化的程序代码来搭建神经网络、填写参数、导入数据,并调用执行函数进行训练。
其实这两种方案都可以,我们都更喜欢第一种,连代码都不用写。
可惜的是……神经网络搭建起来还是太复杂,需要填写的参数太多,各种五花八门的选项也很难做成直观的图形工具。比如光是各种函数、类型名称就满满当当一大堆(以常见的TensorFlow框架为例):


就算真的做成了一个无比复杂的图形界面工具,还有另外一个问题:输入数据处理、参数处理往往需要进行几步矩阵运算,写成Python代码可能也没几行,但是很难用图形、表格来描述计算过程。
所以最科学合理的方法还是上面提到的第2种:选一个相对简单的语言当作“胶水”,用它来描述模型、传递参数、转换好输入数据,然后扔到复杂的深度学习框架里面去计算。
这种“胶水”语言最常用的就数Python啦,所以初学者很容易误把Python和人工智能划等号,其实Python被选中只是一种偶然。
说是偶然也是必然。科学家们很早就喜欢用Python实验算法,也善于使用numpy做科学计算,用pyplot画数据图。恰好Google内部用Python也非常多,所以采用Python也是必然的。

除Python外,实际上TensorFlow框架还支持以下这些语言:


官方说了,除Python之外的语言不一定承诺API稳定性(Python是亲儿子,别的都是养子)。

希望以上的说明能帮助外行人和初学者理清Python与人工智能的关系。

帮人帮到底,补充一些事实:
1、TensorFlow只是众多深度学习框架其中的一种,但是比较有代表性,网课中也数它最常见。
2、用TensorFlow+Python还是觉得麻烦怎么办,人们又在其基础上继续封装了Keras等等更高级的库,减少重复工作量。懒是人类的本能,能少写一句算一句。
3、大型的神经网络运行起来,CPU完全不给力,怎么办?上GPU。大学里用来科研的计算机,插几块GTX 1080显卡很常见。从显卡数量上你很难判断他们是在挖矿还是在研究深度学习。具体CPU和GPU性能对比可以参考这个回答:
性能最强的编程语言是什么?4、将Python代码图形化并不是一件难事,只是目前还没人这么做,而且可能必要性不大。像游戏引擎Unreal Engine 4就有很好的图形化编程工具“蓝图(BluePrint)”,以后把Python换成蓝图也说不准:


(图片来自百度图片)
yanwen 发表于 2023-9-17 16:54:35|来自:北京 | 显示全部楼层
这属于一种误解,人工智能的核心算法是完全依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。所以某种意义上其实C/C++才是人工智能领域最重要的语言。
Python是这些库的API binding,使用Python是因为CPython的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低不少,尤其是使用Cython的时候。其他语言的ffi许多都只能导入C的函数入口点,复杂的数据结构大多只能手工用byte数组拼起来,如果还需要回调函数输入那就无计可施了。而CPython的C API是双向融合的,可以直接对外暴露封装过的Python对象,还可以允许用户通过继承这些自定义对象来引入新特性,甚至可以从C代码当中再调用Python的函数(当然,也有一定的条件限制)。不过这也是PyPy这样的JIT解释器的一个障碍。
而且Python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择API binding语言的时候会首选Python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。
xjdata 发表于 2023-9-17 16:55:15|来自:北京 | 显示全部楼层
这个答案没有吹捧 Python 的意思,其主要内容是介绍一段历史和一些学科常识。平心静气的说,想看干货的可以去读期刊,开发文档,上面应该有足够多的公式和术语。利益不相关,不是 Python 开发者。
<hr/>Peter Norvig 在他的博客里 http://norvig.com/python-lisp.html 解释了为什么使用 Python 。一开始他打算把自己书中的 Lisp 代码翻译成 Java,因为他的学生们对 Java 比较熟悉,看到 Lisp 的括号就头大如斗。但他们最后放弃了,因为 Java 太啰嗦了,书里的一小段伪代码需要一大段的 Java 代码来表示,伪代码 和 Java 代码的差异太大了,即使它们表现的是同一个想法。最终 Peter Norvig 找了一种和 伪代码 很相似的程序语言,那就是 Python 。

显然,当我们的目的是想要传达想法,方便教学的话,一种便于理解的语言是最好的。首先我们会用 自然语言 ,但是它不够形式化,有太多歧义。其次我们会想到 伪代码(pseudocode),可惜它又不能执行,无法立即验证正确性。所以在这样的场景下,Python 是比较适用的。

或者这些科学家们真的没有时间去纠结指针,虚函数,构造函数的初始化顺序这类问题,因为这些问题连对付它们的专家 —— 工程师有时都会犯糊涂。此外,性能理论上只受程序的数学模型的影响,而实际上要比这复杂的多。比如性能还会受到数据规模,硬件因素等等影响。 很显然,同样的算法用 Python 实现和用 C/C++ 实现,大概率是 C/C++ 快,但这种比较对计算机科学家来说没什么意义,因为它们的算法复杂度,比如说,都是 O(nlogn) 。从这个角度看,Python 起到的作用和数学公式是一样的,你不能说 C/C++ 的性能比 伪代码 好,因为 伪代码 不是用来执行的。

当然,回到实际问题,回到公司的项目,如果性能成为瓶颈,再由工程师们用 Java 或者 C/C++ 重写就好了。

PS: 虽然这里我们把 计算机科学家 和 工程师 区别看待,不过在历史上,很多计算机科学家也是一流的工程师,这已无需赘述。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则