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

简介:

本节书摘来自华章计算机《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所示。
image
image
image

由表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的基本知识了。

相关文章
|
7天前
|
Python
python魔法方法如何应用
【4月更文挑战第12天】这个Python示例展示了类继承和方法重写。`Student`类继承自`Person`,并覆盖了`say_hello`方法。通过`super().__init__(name)`调用父类的`__init__`初始化`name`属性,`Student`添加了`age`属性,并在重写的`say_hello`中使用。创建`Student`实例`student`并调用其`say_hello`,输出定制的问候信息。
19 1
|
7天前
|
Python
python增量赋值运算的应用
Python中的增量赋值运算符用于便捷地执行算术操作,如`+=`, `-=`等,它们分别代表加法、减法、乘法、除法、取模、整除和幂运算。
11 1
|
7天前
|
Python
python一元运算符的应用
【4月更文挑战第12天】Python的一元运算符包括正号(+), 负号(-), 按位取反(~), 取绝对值(abs())和类型转换(int(), float(), str())。例如:`+a`使数值变正,`-a`变为负数,`~a`为按位取反,`abs(a)`获取绝对值,而`int(a)`, `float(a)`, `str(a)`则用于类型转换。示例代码展示了这些运算符的使用效果。
15 0
|
12天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
17 1
|
19天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
7天前
|
机器学习/深度学习 人工智能 算法
图像处理与分析:Python中的计算机视觉应用
【4月更文挑战第12天】Python在计算机视觉领域广泛应用,得益于其丰富的库(如OpenCV、Pillow、Scikit-image)和跨平台特性。图像处理基本流程包括获取、预处理、特征提取、分类识别及重建生成。示例代码展示了面部和物体检测,以及使用GAN进行图像生成。
|
2天前
|
数据挖掘 vr&ar Python
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
22 10
|
2天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
2天前
|
机器学习/深度学习 算法
scikit-learn在回归问题中的应用与优化
【4月更文挑战第17天】本文探讨了scikit-learn在回归问题中的应用,介绍了线性回归、岭回归、SVR和决策树回归等算法,并提出优化策略,包括特征选择、超参数调优、交叉验证和集成学习。通过实践案例展示如何处理房价预测问题,强调了根据问题特点选择合适方法的重要性。
|
2天前
|
算法 Serverless 计算机视觉
SciPy的科学计算库的基础知识与应用
【4月更文挑战第17天】**SciPy**是Python的开源科学计算库,基于NumPy,包含优化、积分、线性代数、信号处理等模块。本文介绍了SciPy的基本使用,如线性代数(矩阵运算、特征值)、优化(最小化问题)、积分以及信号处理(滤波)。安装SciPy可使用`pip install scipy`。此外,还展示了图像处理和常微分方程求解的例子。SciPy是科学计算的重要工具,适用于各种数值问题。参考文献包括SciPy和NumPy官方文档。