首页 > 应用 > 物联网

Python与C/C ++:为什么Python是电子工程师首选第二语言?

Christopher Wang 2019-09-19

作为一名工程师,你现在最不需要的就是学习另一种编程语言。有很多:Ruby、PHP、Java、C#、Javascript、Dart、Go、Rust等。你已精通了C/C ++,这将把你从嵌入式固件一直带到图形用户界面应用程序。你为什么要花时间学习另一种编程语言,这种语言在下一种语言到来之前就已经过时了?如果你愿意再学习一种语言,它可能会为你打开一个全新的世界。IMa电子头条

 IMa电子头条

作为电子工程师,如果你学习一种编程语言,它应该是C / C ++。你需要它来编程微控制器、配置寄存器,并且你将设计和编写测试固件以执行电路的各个部分。它允许你深入了解硬件的螺母和螺栓,将值写入不同的寄存器,访问存储器总线以及控制硬件外围设备。但是如果你学习两种语言,我认为另一种语言应该是Python。 IMa电子头条

 IMa电子头条

Python与C/C ++:为什么Python是电子工程师首选第二语言?IMa电子头条

图片由Christina Morillo提供IMa电子头条

 IMa电子头条

动力和控制vs简单性和灵活性IMa电子头条

 IMa电子头条

C ++对硬件设计师如此有用的原因正是它不适合编写应用程序的确切原因。你可以对裸机进行各种控制。但是,既然你控制了它,那就是你的全部责任。你必须确保取消分配的任何内存,指针实际指向内存中的有效位置,并且你的数据类型已正确分配且不会溢出。IMa电子头条

 IMa电子头条

你从所有的意识中获得的是动力和速度,但机器禁止你犯错误,因为它可能会发送整个应用程序甚至整个系统崩溃。这是Python工作的乐趣所在。有时你不需要那么快的速度或者如此紧密地控制内存中的东西。相反,你只需要一些工作。 IMa电子头条

 IMa电子头条

Python与C/C ++:为什么Python是电子工程师首选第二语言?IMa电子头条

Python是增长最快的编程语言之一。图片由David Robinson与StackOverflow提供。IMa电子头条

 IMa电子头条

Python抽象了我们需要在C ++中处理的许多细节,例如内存管理和变量数据类型。如果变量将溢出或者分配或取消分配正确的内存量,则不再担心。这一切都在幕后中神奇地发生。你只需要专注于将代码放在(虚拟)纸上。IMa电子头条

 IMa电子头条

真正使python作为一种优秀的第二语言脱颖而出的是它庞大的、不断增长的社区、对开源库的巨大支持,以及它支持多种应用程序,如Web应用程序编程、数据科学、数据可视化和通用自动化。这些都是非常强大的域,如果你试图使用C++,它们会非常复杂。在Python中,即使是像打开一个文件并解析其内容这样简单的事情,电子工程师也必须定期为各种事情做一些事情,这是非常容易的。下面是一个打开文件并将其内容打印到屏幕上的示例:IMa电子头条

 IMa电子头条

C ++IMa电子头条

 IMa电子头条

Python与C/C ++:为什么Python是电子工程师首选第二语言?IMa电子头条

 IMa电子头条

PythonIMa电子头条

 IMa电子头条

Python与C/C ++:为什么Python是电子工程师首选第二语言?IMa电子头条

 IMa电子头条

Python的案例IMa电子头条

 IMa电子头条

我经常使用这两种语言,并根据需要使用其他语言,如Java、C#和Javascript等其他语言。但在我看来,如果对电子工程师应该学习什么语言提出建议,我的建议首先学习C ++,然后学习Python。(也许是Verilog,取决于你是否使用可编程逻辑,但这是一个不同的文章系列。)IMa电子头条

 IMa电子头条

本文是关于Python的大系列文章的起点,因为它与电子工程师有关。随着我们深入研究这个系列,我希望对于理解Python将为电子工程师开辟新世界将会越来越明显。IMa电子头条

 IMa电子头条

尽管我刚刚使用了上面文件解析的一个非常简单的例子,但这是大量设计自动化和数据科学的基础。除此之外,我们还将探索各种库,学习如何设置数据库、Web服务器、创建REST API、挖掘大型数据集、创建流畅的数据可视化、使用网络摄像头检测对象,我们还将进行一些机器学习。我抛弃了最后一个,因为它在技术界(和非技术界)很流行。IMa电子头条

 IMa电子头条

Python与C/C ++:为什么Python是电子工程师首选第二语言?IMa电子头条

使用Seaborn在Python中进行数据可视化。图片由Insight Data提供IMa电子头条

 IMa电子头条

所以,戴上你的编程帽子,继续关注我们的旅程,从一个电子工程师的角度探索新的技术前沿。我希望这个系列不仅能让你更有效地实现自动化,而且能扩展你的世界,不仅仅是设计硬件和电路,也能设计复杂的系统,这些系统不仅涉及电子技术,还利用了对Python的理解所允许你可以访问的大量技术。IMa电子头条