汽车电子中python应用 Python 30 年技术演进史:生于小众,崛起 AI

小编 2024-10-09 电子技术 23 0

Python 30 年技术演进史:生于小众,崛起 AI

作者 | 宋天龙,TrueMetrics 合伙人

出品 | AI科技大本营(ID:rgznai100)

【CSDN 编者按】一切都始于1989年的那个圣诞节,Python的诞生并不算恰逢其时,它崛起充满了机遇巧合,也有其必然性。三十年间,Python技术不断更迭,生态逐渐完善,加上互联网、大数据、以及人工智能这一波波浪潮的推波助澜,Python渐渐从小众最终站上了现在的高度。

从历史发展的角度出发,我们才能看清Python崛起的偶然性和必然性。本文将结合技术和产业的发展,全面透析Python的演进之路,帮助读者理解是什么造就了如今的Python。

Python 1.0时代: 起源与诞生

Guido van Rossum(下面简称Guido)是Python语言之父,他于1982年从阿姆斯特丹大学获得了数学和计算机硕士双学位,期间他接触了很多的语言,包括Pascal、C、Fortran等。

在那个计算机资源贫乏的年代,像计算机一样思考并编程是每个程序员必须面对的事情,这让他非常苦恼;同时他又非常欣赏shell,shell简单易编程的特性让程序员更加专注于设计和逻辑本身,但shell本质上是一个功能的调用,它没有自己的数据类型,更无法全面调用计算机功能,因此shell也不算是一门“语言”。

因此,他希望找到一种语言既可以像使用shell一样简单,又可以和C语言的功能相媲美。不过这种语言在那个年代并不存在。

1989年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字来源于他喜欢的电视剧Monty Python’s Flying Circus,而不是表面意义上的“蟒蛇”。他希望这个新的语言,能符合他的理想:介于C和shell之间,功能全面、易学、易用又可拓展。

1991年,第一个Python编译器诞生,这标志着Python的第一个版本正式诞生。它基于C语言,并具备了基础的类、函数、异常处理等功能特性,同时具备可扩展性。Python语法很多来自C,但又受到ABC语言的强烈影响。例如来源于ABC语言强制缩进的规定本身可以让Python容易读,但如果缩进出错却会影响编译和执行。Python本身不以性能为重,但当确实需要考虑性能时,Python程序员却可以深入底层来编写C程序,并编译为.so文件引入到Python中使用。

Python语言的魅力在于让程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节,这一特性也得到Guido同事的欢迎。他们在反馈使用意见的同时也参与到Python的改进中来,因此最初Guido和一些同事构成了Python的核心团队,当然,核心决策者还是Guido本人。随后,Python的使用拓展到研究所之外,并吸引了越来越多的程序员。

但是,最初Python的使用非常小众,因为在那个计算机资源非常有限的年代,大家都倾向于最大化榨取计算机资源并提升运算效率,而Python显然不是为此而生。

Python 2.0时代: 崛起

最初发布时,Python在设计层面存在一些缺陷,例如以满足跨语言、跨平台进行文本转换、处理的要求的Unicode字符编码标准在1994年才正式公布,所以一直以来Python 2及之前的版本对Unicode的支持并不完全。相信大家在使用Python 2版本处理中文时都遇到过各种问题。

2000年发布的Python 2.0标志着Python的框架基本确定。重要框架方向包括:

简单明确。 在设计Python语言时,开发者倾向于选择没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。

面向对象。 任何Python的元素都可以视为对象,包括数据类型、类、函数、实例化元素等,完全支持继承、重载关系,这有益于增强代码的复用性。

动态类型。 任何对象的数据类型都无需提前定义,拿来即用。即使在之前已经预先定义,后期也可随时修改。

胶水特性。 Python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。例如在Google对于Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

可嵌入。 你可以把Python的功能嵌入到C/C++程序中,从而实现Python功能在其他语言中的功能实现。

生态系统 。Python有强大的标准库,同时支持第三方库和包的扩展应用,甚至可以自定义任何库和包。Pypi(https://pypi.org/)是其第三方库的仓库,在这里你几乎可以找到任何领域内的功能库。

解释器机制。 Python支持多种解释器,例如CPython(官方版本,基于C语言开发,也是使用最广的Python解释器)、IPython(基于CPython之上的一个交互式解释器)、PyPy(一个追求执行速度的Python解释器,采用JIT技术对Python代码进行动态编译)、Jython(运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行)、IronPython(和Jython类似,只不过运行在微软.Net平台上)。

1965年,戈登·摩尔提出了著名的摩尔定律,其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。在随后超过半个世纪的时间里,个人计算机的发展日新月异,已经由资源不足向资源过剩转变。这客观上为Python的应用提供了基础条件——只有在资源过剩的条件下,程序员才不会过度关注榨取性能。

随着Python自身功能的完善以及生态系统的扩展,Python在Web开发、网络爬虫、数据分析与数据挖掘、人工智能等应用方面逐渐崭露头角。

Django和Flask引领的Web开发模式

2004年,目前最流行的WEB框架Django诞生。2010年,另一个流行的轻量级WEB框架Flask诞生。Django是一个WEB解决方案“全家桶”,其功能大而全,包含了几乎所有Web开发相关的组件和功能,它可以大大节省开发者在基础组件、选型、适配等方面的时间和精力;而Flask只包含基本的配置,默认依赖于两个外部库也可以自由替换,给开发者提供最大的自主空间。这两类完全相反方向上的Web开发模式,几乎可以为所有开发者提供了很好的选型参照物:无论开发者想要一站式还是最大化自主解决方案,Python都能满足。

此后,以豆瓣、春雨医生、知乎、Dropbox、YouTube、CIA(美国中情局)等为代表的企业和机构都基于Python做网站开发,预示着Python应用到WEB开发领域逐渐成为一种新兴趋势。

人人都能胜任的网络爬虫

Python自带的标准库中,urllib、urllib2、requests库对于简单网页的抓取实现非常简单,即使在面对海量数据抓取需求时,第三方库Scrapy也能应对自如;再配合正则表达式库re、网页代码解析BeautifulSoup、html和xml解析库lxml、多线程库threading等特性,使得Python在应用到网络爬虫任务上时,只需要很少的开发量便能迅速完成任务。基于Python简单易学的特性,几乎人人都能开发网络爬虫。

比shell更好用的自动化运维工具

Python是跨语言和平台的,几乎所有Linux系统和MAC系统都自带Python库,Windows系统也可以自定义安装。Python默认的os、sys等库可实现与操作系统的交互和执行功能,更重要的是Python还能直接执行系统终端命令。因此,使用Python编写的系统运维和管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本,在自动化运维方面应用广泛。

数据分析与科学计算三剑客

2008年发布的Numpy、scipy和2009年发布的pandas是数据分析与科学计算的三剑客。

NumPy(Numeric Python的简称)是Python科学计算的基础工具包,也是Python做数据计算的关键库之一,同时又是很多第三方库的依赖库。

Scipy(Scientific Computing Tools for Python的简称)是一组专门解决科学和工程计算不同场景的主题工具包,它提供的主要功能侧重于数学、函数等,例如积分和微分方程求解。Pandas(Python Data Analysis Library的简称)是一个用于Python数据分析的库,它的主要作用是进行数据分析和预处理。

Pandas提供用于进行结构化数据分析的二维表格型数据结构DataFrame,类似于R中的数据框,能提供类似于数据库中的切片、切块、聚合、选择子集等精细化操作,为数据分析提供便捷。另外,Pandas还提供了时间序列的功能,用于金融行业的数据分析。

除此之外,很多大型公司也都在使用Python完成不同类型的其他工作,其中不乏世界知名公司,如国外的Google、Facebook、NASA 、雅虎、YouTube等,国内的网易、腾讯、搜狐、金山等。例如谷歌在Google Groups、Gmail、Google Maps等项目中将Python用作网络应用的后端;在Google Cloud Platform中的Google Cloud Storage本地部署环境中,gsutil也在Python 2基础上开发和应用。

后Python2与Python3时代: AI让Python大放异彩

2008年12月,Python 3发布。Python 3相对于Python 2的早期版本(主要是Python2.6之前)是一个较大的升级,它在设计的时候没有考虑向下兼容,所以很多早期版本的Python程序无法在Python 3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。同时,Python还提供了Python 2到Python 3的Python文件转换功能,以帮助开发者升级。

2010年7月发布了Python 2.x系列的最后一个版本,主版本号为2.7。大量Python 3的特性被反向迁移到了Python 2.7,2.7版本比2.6版本进步非常多,同时拥有大量Python 3中的特性和库,并且照顾了原有的Python开发人群。Python2.7也是当前绝大多数Linux操作系统最新版本的默认Python版本。

从2008年开始,Python 2与Python 3是并存发展的。但在2018年3月,Guido在邮件列表上宣布Python 2.7将于2020年1月1日终止支持,这意味着之后Python 2将不再被统一维护,与之对应的是主流第三方库也不会再提供针对Python 2版本的开发支持。Python 2的时代即将过去。

这一时期,Python继续以其独特魅力吸引更多的开发者加入,但真正让Python大放异彩的却是AI(人工智能)的爆发。

AI并不是一个新生事物,而是从20世纪50年代就开始出现,随后经过了大概20年的黄金时期,又分别在20世纪70年代和90年代两次进入寒冬期。从2006年开始,神经网络、深度学习的出现,让AI进入爆发期。

在AI领域,Python拥有很多相关库和框架。其中最著名的是:

sklearn:一个老牌机器学习库,其neural_network库可用来做神经网络训练。

PyTorch:由Facebook于2016年发布,它基于曾经非常流行的Torch框架而来,为深度学习的普及迈出了重要一步,到目前为止它已经是人们用来做学术研究的首选方案。

TensorFlow:谷歌于2015年研发的第二代人工智能学习系统。借助谷歌的强大号召力以及在人工智能领域的技术实力,它已经成为目前企业真实生产环境中最流行的开源AI框架。更重要的是,它也是第一个(应该也是唯一一个)经过真实大规模生产环境(Google)检验过的框架。

在互联网领域,Facebook和Google都是全球IT企业的标杆,具备行业领导力和风向指示意义。他们基于Python开发的AI库(PyTorch和TensorFlow)已经成为目前最流行的AI库,而且“到底选择PyTorch还是Tensorflow”仍然是一个具有争议性的话题。

在AI时代,主要应用场景包括:

计算机视觉 :通过特定的图片模式训练,让计算机理解图像中的物体甚至内容。在这一领域我们熟悉的场景包括图像识别、目标识别和跟踪。例如人脸识别便是图像识别的典型领域,广泛应用到企业员工考勤、门店客户识别、机场等公共领域反恐识别等。2011年,吴恩达创立的谷歌大脑项目,能够在没有任何先验知识的情况下,仅仅通过观看无标注视频学习到识别高级别的概念就能知道哪个是猫。

语音识别 :该过程是计算机将人类的自然语言识别并转换为文字的过程,广泛应用工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。身边熟悉的场景例如通过语言对导航、APP、车载设备等做指令输入,以及电信客服系统中的语音业务查询和办理。

自然语言理解 :自然语言理解是一类任务的总称,而并非是单一任务。它旨在让计算机理解人类的语言所表达的表层和深层含义。目前场见的应用场景包括自动问答系统、机器翻译、信息检索和过滤、信息抽取等。

个性化推荐 :个性化推荐是一个相对成熟的领域,但基于深度学习和神经网络,可以将大量的复杂、抽象特征的数据预处理工作最大程度的简化,甚至可以将海量特征经过简单处理后便直接丢到模型中便能获得比例理想的效果。

游戏和竞技 :在该领域,很多科技公司用经过训练后的AI与人类进行对弈。早在20世纪90年代,由IBM开发的“深蓝”与卡斯帕罗夫的世纪之战已经引起了世界的轰动;在2017年AlphaGo又击败排名世界围棋冠军柯洁,再一次让世人感受到AI的强大威力。

在不同的领域,Python都能扮演非常重要的角色,因此,在国外的各大榜单中,Python都已经成为最受欢迎的语言(或至少是之一)。不只在商业领域流行,国内很多地区和教育机构正将Python纳入教材之中。比如Python进入山东小学六年级的教材,浙江信息技术教材将放弃VB,改用Python 语言,Python列入全国计算机二级等级考试大纲等。

Python的未来发展

在Python发展过程中,Guido一直是核心人物,甚至被称为“终身仁慈独裁者”,但在2018年经历了退出管理层风波之后,他又在2019年以五大指导委员之一的身份重回决策层。这为Python迎来了新的治理方案:指导委员会模式。这种模式意味着Python的未来将从Guido一人决定变为5人决定,虽然比很多开源语言仍然有民主化空间(例如PHP的改进由社区投票决定),但也算是一种从专制到民主的进步。

有关Python的每个提升计划,都是在PEP(Python Enhancement Proposal)列表中——每个版本新特性和变化都通过PEP提案经过社区决策层讨论、投票决议,最终才有我们看到的功能。

目前,Python的最新稳定的主版本是3.7,Python 3.8也已经有了预览版,大概在2023年左右Python 4便会问世。在之后的时间里,Python会如何发展?我们可以从Python软件基金会的董事会成员、CPython的核心开发人员Nick Coghlan的信息中略知一二:

首先,Python的PEP流程和制度没有任何变化,通过增加新模块和功能来增强的基础能力。随着Python 2在2020年不再维护,社区在Python 3的资源和投入会相应增加。

其次,不同解释器的实现和功能扩展还将继续增强,方向包括PyPy关于JIT编译器生成和软件事务内存的尝试,以及科学和数据分析社区,对面向数组编程的探索等。

再次,嵌入式应用的增强,核心是与其他虚拟机运行时(如JVM和CLR)的集成和改进,尤其是在教育领域取得的进展,可能会让Python作为更受欢迎的嵌入式脚本语言,在更大的应用程序中运行。

最后,对于为了兼容和维持Python 2的部分功能而存在于Python 3中的原有代码,在后续版本中应该会逐步优化甚至去掉。而对于其他更改,则会根据情况弃用、提出警告、逐步替代以及保留。

【END】

Robot Framework简介及在汽车电子测试中的应用

前言

汽车电子软件扮演着越来越重要的角色,为适应市场变化,车载软件和功能的开发需要快速迭代。敏捷开发、持续测试、CI/CT/CD实现和DevOps等成了汽车电子行业的高频词,也正在帮助OEM和零部件供应商实现频繁的代码部署和实现可靠软件交付的目标。测试自动化是这些过程中不可或缺的一部分,因为可以提升测试效率以加速开发迭代,特别是对于重复性的任务或不需要任何人工干预的任务。

说到自动化测试,Robot Framework作为自动化测试领域的明星框架,已经开始摩拳擦掌,跃跃欲试。今天我们一起来看下Robot Framework在汽车电子测试中,可以发挥出多大的作用。

Robot Framework简介

Robot Framework是一个广受欢迎的自动化测试框架。所谓框架,可以理解为一组准则,

遵循这些准则可以获取明显的收益。自动化测试框架就是由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。

Robot Framework是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架。它具有以下特点:

(1)编辑用例简单,启用易于使用的表格语法,以统一的方式创建测试用例;

(2)提供从现有关键字创建可重复使用的更高级别关键字的功能;

(3)提供易于阅读的结果报告和HTML格式的日志;

(4)提供一个简单的库API,用于创建自定义测试库,可以使用Python或Java本机实现;

(5)支持创建数据驱动的测试用例;

(6)提供标记以分类和选择要执行的测试用例;

(7)可以和SVN或者GIT及Jenkins持续集成。

上文我们提到Robot Framework是以关键字驱动模式的自动化测试框架,同时支持创建数据驱动的测试用例。那么关键字驱动和数据驱动分别有什么特点呢?

关键字驱动是由关键字和数据组成测试用例执行测试,测试框架的底层负责解释关键字,完成指令,测试用例的编辑者只需要使用关键字和数据组合,即可实现复杂的测试逻辑。测试执行的代码和测试用例代码是分离的。这种方式学习成本比较高,开发关键字及其相关功能的初始投资可能需要更长的时间。

数据驱动测试是从数据文件读取输入、输出数据,通过变量传入测试脚本执行测试,数据是可变的,测试设计是重复的、高度抽象的。使用这种测试方式可以减少重复劳动,测试用例易于修改和维护。但是这种方式不擅长逻辑处理,一组脚本只能处理特定格式的数据。在一些特定的测试场景下,这种方式具有明显优势。比如汽车ECU(如网关)测试有数据转发/路由的测试场景,需要测试的数据有时多达上千个,我们只需创建一条数据转发业务的测试用例,从数据文件中读取输入、输出数据后,遍历所有数据即可完成测试。

Robot Framework整体架构

Robot Framework是一个通用的,和具体测试工具松耦合的框架,其高度模块化的架构如下图所示:

测试数据(Test Data)使用非常简单、易于编辑的表格格式。Robot Framework会解析测试数据, 执行测试用例, 并生成日志和报告。框架本身对测试对象可以完全“一无所知”, 而是通过测试库与其交互。测试库可能是直接使用被测应用程序的接口, 也可以使用其它底层的测试工具作为驱动。

Robot Framework环境安装

Robot Framework环境的安装比较简单,只需两步即可完成:

(1) 安装Python配置环境变量;

(2) 打开dos窗口,输入指令 pip install robotframework,点击回车,安装Robot

Framework。

Robot Framework常用关键字

上文我们提到Robot Framework是一个关键字模式驱动的自动化测试框架,Robot Framework的测试用例由关键字和测试数据组成。关键字是用Python语言编写的函数,也即是一个个方法。它是为了完成一个功能来设计的,分为系统关键字和用户关键字。

系统关键字包含标准库里面的关键字和第三方库里面的关键字,就像C/C++的库函数或者Python的内置函数一样。

用户关键字是根据业务需求将不同的业务封装成一个关键字或者将用例执行的步骤封装成一个关键字,就像C/C++或者Python中的用户自定义函数。

下面我们介绍几个常见关键字的用途。

Convert To Integer:将给定的变量转换成一个整数 。示例:

${result} = Convert To Integer 100 # Result is 100

Import Library:导入扩展库或者自定义库 。示例:

Import Library MyLibrary

Import Library ${CURDIR}/Lib.py arg1 named=arg2 WITH NAME Custom

Get Variable Value:获取变量的值,赋给一个新的变量,如果变量不存在可以设置一个默认值 。示例:

${x} = Get Variable Value $a default

${y} = Get Variable Value $a ${b}

${z} = Get Variable Value $z

Log:使用给定的级别记录给定的信息 。示例:

Log Hello, world! # Normal INFO message.

Log Warning, world! WARN # Warning.

Set Variable:给变量设置值 。示例:

${hi} = Set Variable Hello, world!

${hi2} = Set Variable I said: ${hi}

${var1} ${var2} = Set Variable Hello world

@{list} = Set Variable ${list with some items}

${item1} ${item2} = Set Variable ${list with 2 items}

Should Be Equal:Robot Framework中的断言关键字,如果给定的对象不相等,就会判定失败 。示例:

Should Be Equal ${x} expected

Should Be Equal ${x} expected Custom error message

Should Be Equal ${x} expected Custom message values=False

Sleep:测试执行等待一定时间 。示例:

Sleep 42

Sleep 1.5

Sleep 2 minutes 10 seconds

Sleep 10s Wait for a reply

Robot Framework测试用例示例

说了这么多,大家肯定想赶紧看看Robot Framework是怎么使用的,现在我们通

过一个简单的例子来说明Robot Framework是怎么执行测试的。

这条测试用例的操作步骤如下:

(1) 加载CANoe测试工程;

(2) 启动测试;

(3) 等待一定时间,确保CANoe启动完成;

(4) 设置系统变量的值;

(5) 等待一定时间,确保系统变量设置完成;

(6) 获取关联系统变量的信号值;

(7) 比较设置的值和读取的值是否相同;

(8) 终端输出提示“测试用例执行结束”。

Robot Framework编写的测试用例如下图一所示:

图一 Robot Framework测试用例示例

执行测试用例:dos窗口中输入robot 测试用例路径,点击回车即可,这里执行用例的逻辑是使用pip安装Robot Framework时,会在Python安装路径下面的Scripts文件夹生成robot.exe文件,Scripts文件夹已经添加到系统路径,因此不需要再配置robot.exe的系统路径就可以直接调用。

执行后用例后,CANoe中关联系统变量的信号值设置成功,如图二所示。

图二 CANoe信号EngineState::OnOff值设置为1

用例执行完成后,生成的测试报告如图三所示。

图三 测试用例执行后生成的测试报告

Robot Framework与CANoe结合使用

相比于IT行业的软件测试,汽车电子需要搭建硬件测试环境,测试时需要监控和仿真很多总线信号和硬线信号,CANoe作为专业的总线网络开发和测试工具被众多整车厂和供应商的系统设计师、开发工程师和测试工程师所广泛使用。配合Vector的硬件设备,如VN通信硬件接口卡及VT IO板卡,以及图形化自动化测试工程开发软件vTESTstudio,可以胜任汽车电子研发测试的各项任务。Robot Framework和CANoe结合使用,既带来了Robot Framework可以自动部署测试软件、自动截取日志、可以生成易于阅读的测试报告和可以灵活的选取测试用例的优点,也保留了Vector工具在多总线支持、网络监测和分析、系统仿真等方面的优势,各取所长。

CANoe是留有COM Interface的,这样我们可以通过第三方的程序调用CANoe开放的API。调用交互的部分DEMO代码如下图四所示:

图四 Python编程调用CANoe代码

Robot Framework和CANoe结合使用一般有两个思路:

第一种情况是把测试用例的过程主体在Robot Framework环境中编写脚本实现并执行,在执行过程中调用CANoe提供测试数据、参数、变量的读取和设定,这个思路适合对时间要求不敏感的测试用例。如下图五所示用例,CanoeHandle为自定义的关键字库,创建了加载CANoe工程、启动测试、停止测试、获取信号值、设置系统变量值、获取系统变量值等关键字,可以使用这些关键字组合创建Robot Framework测试用例,执行测试。

图五 基于Robot Framework编写CANoe测试用例

第二种情况是测试用例整体在Vector工具链中开发测试工程和脚本(比如基于vTESTstudio开发图形化测试工程或是CANoe-CAPL编写测试脚本),并在CANoe中执行工程和脚本。此时,如图六所示,Robot Framework作为一个测试用例管理框架来使用,CanoeHandle为自定义的关键字库,创建了加载CANoe工程、加载测试脚本、执行测试脚本等关键字,可以使用Robot Framework进行测试管理,根据实际需求删选测试用例、自动控制测试开始、停止等。结合Jenkins打造通用的自动化持续集成测试平台,可以显著提升测试效率。

图六 基于Robot Framework管理CANoe测试工程

结束语

IT领域的开发理念和以太网等具体通信技术经过优化改造后在汽车上的应用,为软件定义汽车的实现提供了诸多方法论和技术手段上的支撑和支持。同样,发源于IT行业的测试技术也越来越多地被应用到汽车电子的测试中,在过去一年的项目中,北汇已经将Robot Framework与CANoe等汽车行业的主流工具进行了结合应用,积累了一些实践经验,期待与大家深入交流和探讨。下期我们将带来Robot Framework结合Jenkins的测试实践应用的主题,敬请关注。

相关问答

Python 有哪些用途?

为什么这么多人在学Python呢?很多小白都听说Python很火,简单易学,学起来很容易,学习周期短,可是为啥要学Python呢?,下面谈谈我对Python的感悟。在PC时代...应用...

自学 Python 能学会吗?

很多粉丝朋友问我该如何去学习爬虫、学习Python、自学能找到工作吗?等一系列的问题。今天我就来回答一下大家。第一点确定好方向与目标当决定踏入这个行业那...

pyhone能做游戏嘛?

python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子能造汽车吗?谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,...

python中 为什么要用库?

python用库的最重要一个原因,就是尽量使用已经有的东西,不要重复造轮子。不要重复造轮子也是python的核心思想,那句经典的“人生苦短,我用python”所要表达...p...

25岁交通工程专业专业转行 python 以后能做什么? - 186****411...

python的用途非常广,既可以做传统的网站开发、服务接口开发,也可以做现在如日中天的大数据和人工智能算法开发,楼主既然是交通工程专业的,不妨结合...

汽车 智能技术专业怎么样?

为了适应国家智能网联汽车产业发展需求,河源职业技术学院2016年开始设置汽车智能技术专业,并于当年实现招生,2018年参与了国家级教学资源库申报。该专业目标是...

在html5、java和 python中 ,哪种编程语言的未来发展前景好?

js动效和游戏编程需要对物理数学有比较好的基础,数据可视化则需要大量使用概率轮和线性代数中的工具,从前端转后端则需要对网络协议和通讯领域大范围补课。即...

现在,使用 Python 的市场需求是什么?哪些方面使用的比较多呢?

我觉得,这个问题非常好,要回答这个问题,需要几个方面。技术层面从python技术本身来看,先来看看排名,这是2020年3月份的排名从排名中可以看出,目前python...▌...

Python 编成未来发展空间有多大?

python被很多人熟知,我相信是前两年,阿尔法狗战胜了柯杰和李世石,掀起了一阵人工智能热,python被广为流传。由于其基础语法的简单,小学课本、计算机二级,甚...感...

Python 和大数据现在哪个更好就业,哪个前景更好呢?

我们要理清Python和大数据的关系,然后从应用场景、人才市场就业情况、薪资待遇、发展前景来判断自己应该选择哪个方向学习和就业?PythonPython是一种跨平台的...