论文部分内容阅读
Python 被誉为全世界高效的编程语言,同时也被称作“胶水语言”,那它为何能如此受欢迎,下面我们就来说说 Python 入门学习的必备 8个知识点,也就是它为何能够如此受欢迎的原因。
1.Python 适用于哪些应用场景?
这个没有固定答案,很多人都说 Python 不适合开发 GUI 的程序,但 Python 自己的 IDE——IDEL 和第三方的 IDE——Eric 就是 Python 写的。
目前看到的更多的人是拿来写 Web,使用如 Django、web.py 框架、Flask 也是。也有一个情况用得比较多,用 Python 当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有 Python 的身影。
2.Python 能够胜任大数据吗?
Python 很适合做大数据相关的分析,内置的 C 编译的模块能应对常见的操作,个别极端的算法建议用 C 重写相关模块。
Python 本身的特点更多的是高效率的开发和简单的维护,速度交给 C 去吧,更多的问题其实出自写代码的人没有更好地使用,而不是效率不够高。比如排序,本来 Python 有非常高效的内置 C 编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。
另外还要看需求是 CPU 密集型,还是 IO 密集型,如果是 CPU 密集型建议这部分操作由 C 实现,IO 密集型的效率不会因为 Python 而有多少改变。Python的效率是高,但框架搭起来也费劲,所以还是结合着来吧,也因此,Python被称为胶水语言。
3.Python 是否可以完全代替 Shell?
完全可以,Shell 的功能 Python 均可实现,而且代码量更少、结构更优、可阅读性更好,而 Python 可实现的功能 Shell 却不一定能,如运维中会用到的用于网络通信的 Socket 模块、用于 Web 的 Django 框架、用于性能采集的 psutil 模块等,而且 Shell 对操作系统的命令依赖性较强,Python 可在更大程度上规避。
4.Python 是否可以访问常见的数据库?
可以,Python 可以访问常见的各种数据库,如 Oracle、MySQL、Vertica、 SQLServer 等,加载相应的模块即可,模块列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5.Python 开发是面向过程、函数还是对象?
Python 虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于 Python 来说一切皆为对象。正因为如此,在 Python 中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python 并不做硬性的限制。
6.如何快速掌握 Python?
学习 Python 其实最重要的是学习模块,而非语法本身,Python 的语法十分简单,只要大学学过 C 或者数据结构课程,甚至完全没学过的人也是可以轻松掌握的。掌握了语法已经可以实现 Shell 的功能,但要想提高模块的学习必不可少,如运维人员经常用的有:
psutil:获取性能信息
socket:基本网络通信
IPy:IP 地址相关处理
dnsptyhon:域名相关处理
difflib:文件比较
pexpect:屏幕信息获取,常用于自动化
paramiko:SSH 客户端
XlsxWriter:Excel 相关处理
其他还有很多功能模块,每天也不断地有新的模块、框架、组件产生,如用于与 Java Script 做桥接的 PythonJS,甚至 Python 還可以编写 Map 和Reduce。
7.Python 可运行在哪些平台上?跨平台性如何?
支持常见的主流平台,如 AIX、HPUX、Solaris、Linux、Windows 等,除Windows 外常见的 Unix、Linux 平台均带有原生的 Python,但版本一般较低。
关于跨平台和其他跨平台语言一样,要注意有些个别模块是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套代码。
但这不是说一点限制都没有:首先,同一个版本的中间文件.py 和.pyc 以及.pyo 是跨平台的;其次,PC 与移动终端,如:手机、Pad 不可跨平台(原因见下一条);最后,不能跨处理器架构,如:Intel 与 ARM、64 位与 32 位。
8.Python 运行速度如何?
通常 Java 的速度比 Python 快些。Python 调用 C 扩展除外(也可以直接用 CPython)。
对于 Python 速度太慢的批评,Python 语言作者 Guido van Rossum 说:如果你开发的系统发现了性能瓶颈,通常最有效率的做法是找到出问题的代码块,用速度较快的语言如 C 或 C++写一些代码替换该功能或该模块,而不是用 C 或 C++重写整个系统,因为对大部分代码而言,语言的速度是无关紧要的。
学习 Python 更是一个发展自己的好机会,毕竟人工智能时代已经到来,Python 作为人工智能时代的主力军是非常有前景的。
1.Python 适用于哪些应用场景?
这个没有固定答案,很多人都说 Python 不适合开发 GUI 的程序,但 Python 自己的 IDE——IDEL 和第三方的 IDE——Eric 就是 Python 写的。
目前看到的更多的人是拿来写 Web,使用如 Django、web.py 框架、Flask 也是。也有一个情况用得比较多,用 Python 当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有 Python 的身影。
2.Python 能够胜任大数据吗?
Python 很适合做大数据相关的分析,内置的 C 编译的模块能应对常见的操作,个别极端的算法建议用 C 重写相关模块。
Python 本身的特点更多的是高效率的开发和简单的维护,速度交给 C 去吧,更多的问题其实出自写代码的人没有更好地使用,而不是效率不够高。比如排序,本来 Python 有非常高效的内置 C 编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。
另外还要看需求是 CPU 密集型,还是 IO 密集型,如果是 CPU 密集型建议这部分操作由 C 实现,IO 密集型的效率不会因为 Python 而有多少改变。Python的效率是高,但框架搭起来也费劲,所以还是结合着来吧,也因此,Python被称为胶水语言。
3.Python 是否可以完全代替 Shell?
完全可以,Shell 的功能 Python 均可实现,而且代码量更少、结构更优、可阅读性更好,而 Python 可实现的功能 Shell 却不一定能,如运维中会用到的用于网络通信的 Socket 模块、用于 Web 的 Django 框架、用于性能采集的 psutil 模块等,而且 Shell 对操作系统的命令依赖性较强,Python 可在更大程度上规避。
4.Python 是否可以访问常见的数据库?
可以,Python 可以访问常见的各种数据库,如 Oracle、MySQL、Vertica、 SQLServer 等,加载相应的模块即可,模块列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5.Python 开发是面向过程、函数还是对象?
Python 虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于 Python 来说一切皆为对象。正因为如此,在 Python 中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python 并不做硬性的限制。
6.如何快速掌握 Python?
学习 Python 其实最重要的是学习模块,而非语法本身,Python 的语法十分简单,只要大学学过 C 或者数据结构课程,甚至完全没学过的人也是可以轻松掌握的。掌握了语法已经可以实现 Shell 的功能,但要想提高模块的学习必不可少,如运维人员经常用的有:
psutil:获取性能信息
socket:基本网络通信
IPy:IP 地址相关处理
dnsptyhon:域名相关处理
difflib:文件比较
pexpect:屏幕信息获取,常用于自动化
paramiko:SSH 客户端
XlsxWriter:Excel 相关处理
其他还有很多功能模块,每天也不断地有新的模块、框架、组件产生,如用于与 Java Script 做桥接的 PythonJS,甚至 Python 還可以编写 Map 和Reduce。
7.Python 可运行在哪些平台上?跨平台性如何?
支持常见的主流平台,如 AIX、HPUX、Solaris、Linux、Windows 等,除Windows 外常见的 Unix、Linux 平台均带有原生的 Python,但版本一般较低。
关于跨平台和其他跨平台语言一样,要注意有些个别模块是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套代码。
但这不是说一点限制都没有:首先,同一个版本的中间文件.py 和.pyc 以及.pyo 是跨平台的;其次,PC 与移动终端,如:手机、Pad 不可跨平台(原因见下一条);最后,不能跨处理器架构,如:Intel 与 ARM、64 位与 32 位。
8.Python 运行速度如何?
通常 Java 的速度比 Python 快些。Python 调用 C 扩展除外(也可以直接用 CPython)。
对于 Python 速度太慢的批评,Python 语言作者 Guido van Rossum 说:如果你开发的系统发现了性能瓶颈,通常最有效率的做法是找到出问题的代码块,用速度较快的语言如 C 或 C++写一些代码替换该功能或该模块,而不是用 C 或 C++重写整个系统,因为对大部分代码而言,语言的速度是无关紧要的。
学习 Python 更是一个发展自己的好机会,毕竟人工智能时代已经到来,Python 作为人工智能时代的主力军是非常有前景的。