且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Python硬件编程实战》——1.4 Python的应用

更新时间:2022-10-07 22:48:45

本节书摘来自华章计算机《Python硬件编程实战》一书中的第1章,第1.4节,作者:李茂 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 Python的应用

了解了Python是什么以及它的众多特点后,读者很自然地就会想到一个问题:Python能干什么?
而此处普通的这一问句“Python能干什么”的背后其实有着更深层的含义。严格地说至少包含如下三层含义。

  1. Python能干什么
    从语言本身的层面来说,Python这门编程语言可以实现哪些功能以及不能实现哪些

功能。

  1. Python更适合做些什么
    作为其中一种编程语言,Python语言根据其语言的特点和优势更适合做哪些事情。

3.你能用Python干什么
即使Python可以做很多事情,但是由于每个人对该语言掌握的程度有差异,使得不同的人有不同的实现的能力,所以这句话还有这层含义:作为Python的学习者,尤其是初学者,你自己能用Python来实现什么。
下面就针对这三个层次的含义来分别解释一下Python能干什么。
1.4.1 Python能干什么
由于Python本身是一门高级语言且功能比较强大,所以,对于Python语言本身可以做什么,简单地说就是:可以做其他高级语言做的事情。这可能听起来没有什么实际意义,但是此句话本质上至少也包含如下两层含义。
1.可以像其他高级语言一样用来开发各种不同功能的软件
对于其他高级语言,笔者目前接触过的一些如C#、Java等都可以用来实现各种常见的功能,包括但不限于网络方面的应用,比如Web服务器、普通桌面软件等。事实上几乎任何一个常见且功能足够用的高级语言都可以实现,Python也不例外。唯一的区别在于不同语言的特点使得实现不同功能的复杂度和难易程度等不同。也就是说,Python作为一种高级语言也是可以用来实现各种常见的功能的。
2.和其他高级语言一样不能直接操作底层硬件
但是很明显,作为高级语言的Python不能像汇编语言那样直接去操作底层的硬件,尤其是那些汇编语言可以直接操作的寄存器级别的硬件。同时,作为更高层抽象的Python,和C#、Java等其他高级语言一样,在实际使用过程中也很难直接通过本语言去操作那些底层硬件资源。与此相对的是,C语言虽然也是高级语言,但因C语言的自身特性,它可以直接操作很多硬件层面的资源。也就是说,Python不能直接操作底层硬件资源。
1.4.2 Python更适合做些什么
介绍了Python语言本身可以做什么之后,接着就是对于普通的程序员、Python的使用者来说,在实际使用中更多的或者说更倾向于拿Python来做些什么呢?其主流应用领域和实例如表1-1所示。
《Python硬件编程实战》——1.4 Python的应用
《Python硬件编程实战》——1.4 Python的应用
《Python硬件编程实战》——1.4 Python的应用

由表1-1可见,作为高级语言的Python可以用在很多领域去实现各种各样的功能。
1.4.3 你能用Python干什么
虽然理论上可以用Python实现前面所述的各种功能,但是实际上针对每个人来说结果并不太一样。不是每个人都真的能够用Python来实现上述如此多的应用,因为很多应用还是需要足够的软件背景知识,甚至需要足够高的智力才能搞定的。
比如,将Python应用于3D图形开发,事实上它的难度和工作量并不在于写Python代码,而在于要懂得相关的实现3D效果所涉及的算法,即如何实现对应3D图形背后所涉及的原理和机制。只有搞懂如何实现后才有可能用Python将代码写出来。另外,对于其他很多方面的应用,包括最常见的 Python在网络方面的应用,也是类似的道理。
比如笔者之前所接触过的实现网络爬虫、从网页中抓取数据、模拟网页登录等内容,它们背后涉及的相关基础背景知识包括但不限于HTTP的GET和POST操作、Cookie、JSON、字符编码、HTML、JavaScript、Python中专门解析HTML的库BeautifulSoup等。只有搞清楚了这些背景知识和相关技术,分析了所要处理的网页的内部执行逻辑,然后才是用某种语言模拟实现这套逻辑。而实际上搞懂写代码之前所需要了解的逻辑,往往比知道逻辑后去用代码写出来更难。
可以这么说,如果是打算用Python去实现网络爬虫,那往往会是要花费80%的精力去搞懂网络爬虫背后的知识和逻辑,而剩下的20%的工作量才会涉及写Python代码,即利用相关的网络方面的库以及Python的第三方库去实现对应的功能。
换句话说,大多数情况下实现某种功能时,如果你不懂80%的背景知识和逻辑的话,只会写那20%工作量所对应的Python代码,也是无法实现你的目标的。
这就是所谓的“你要清楚你自己能用Python干什么”。对于实现某些方面的功能或应用需要哪些基本的背景知识,以及掌握了背景知识后如何写对应的Python代码,很明显的是不同领域所需要的背景知识是不同的。因此作为Python基础教程,本节不适合也没办法解释清楚所有领域的基础知识。
至此,你应该对于Python可以做的事、适合做的事以及自己能用Python做什么有个基本的了解了,接下来就是循序渐进地学习Python的基本知识了。