这篇文章主要为大家详细介绍了 Python 入门必须知道的 11 个知识点,帮助更好地了解 python,感兴趣的小伙伴们可以参考一下
Python 被誉为全世界高效的程式语言,同时也被称作是 “胶水语言”,那它为何能如此受欢迎,下面我们就来说说 Python 入门学习的必备 11 个知识点,也就是它为何能够如此受欢迎的原因.
Python 简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向物件的指令码语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
Python 是一种解释型语言: 这意味著开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。
Python 是互动式语言: 这意味著,您可以在一个 Python 提示符,直接互动执行写你的程式。
Python 是面向物件语言: 这意味著 Python 支援物件导向的风格或程式码封装在物件的程式设计技术。
Python 是初学者的语言:Python 对初级程式设计师而言,是一种伟大的语言,它支援广泛的应用程式开发,从简单的文书处理到 WWW 浏览器再到游戏。
Python 发展历史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和电脑科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的, 这包括 ABC 、 Modula-3 、 C 、 C++、 Algol-68 、 SmallTalk 、 Unix shell 和其他的指令码语言等等。
像 Perl 语言一样,Python 原始码同样遵循 GPL(GNU General Public License) 协议。
现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据著至关重要的作用,指导其进展。
Python 特点
1. 易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2. 易于阅读:Python 程式码定义的更清晰。
3. 易于维护:Python 的成功在于它的原始码是相当容易维护的。
4. 一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX,Windows 和 Macintosh 相容很好。
5. 互动模式:互动模式的支援,您可以从终端输入执行程式码并获得结果的语言,互动的测试和除错程式码片断。
6. 可移植:基于其开放原始码的特性,Python 已经被移植(也就是使其工作)到许多平台。
7. 可扩充套件:如果你需要一段执行很快的关键程式码,或者是想要编写一些不愿开放的演算法,你可以使用 C 或 C++完成那部分程式,然后从你的 Python 程式中呼叫。
8. 资料库:Python 提供所有主要的商业资料库的介面。
9.GUI 程式设计:Python 支援 GUI 可以建立和移植到许多系统呼叫。
10. 可嵌入: 你可以将 Python 嵌入到 C/C++程式,让你的程式的使用者获得” 指令码化” 的能力。
1 、 Python 适用于哪些应用场景?
这个没有固定答案,很多人都说 Python 不适合开发 GUI 的程式,但 Python 自己的 IDE——IDEL 和第三方的 IDE——Eric 就是 Python 写的。
目前看到的更多的人是拿来写 Web,使用如 Django 、 web.py 框架,没记错 Flask 也是。
也有一个情况用的比较多,用 Python 当胶水,与各种语言结合,共同完成某站群软件功能,注意观察也许你会发现在安装一些站群软件的时候会有 Python 的身影。
我个人还拿 Python 模拟过埠转发和 DNS 服务等,所以真的是要看真么用,而不是能怎么用。
另外大资料分析 Python 也是比较适合的,从载入到分析,再到储存结果等,Python 有一整套的模组应对。
2 、 Python 能够胜任大资料吗?
Python 很适合做大资料相关的分析,内建的 C 编译的模组能应对常见的操作,个别极端的演算法建议用 C 重写相关模组。
Python 本身的特点更多的是高效率的开发和简单的维护,速度交给 C 去吧,更多的问题其实出自写程式码的人没有更好的使用,而不是效率不够高。比如排序,本来 Python 有非常高效的内建 C 编译的模组,却非要自己写演算法,这样的结果不慢都是奇怪的。
另外还要看需求是 CPU 密集型,还是 IO 密集型,如果是 CPU 密集型建议这部分操作由 C 实现,IO 密集型的效率不会因为 Python 而有多少改变。
C 的效率是高,但框架搭起来也费劲,所以还是结合著来吧,也因此,Python 被称为胶水语言。
3 、 Python 是否可以完全代替 Shell?
完全可以,Shell 的功能 Python 均可实现,而且程式码量更少、结构更优、可阅读性更好,而 Python 可实现的功能 Shell 却不一定能,如运维中会用到的用于互联网通讯的 Socket 模组、用于 WEB 的 Django 框架、用于效能采集的 psutil 模组等,而且 Shell 对操作系统的命令依赖性较强,Python 可在更大程度上规避。
在一个 Shell 的 IDE 是个很大的问题,虽然 Python 的原生 IDE 不怎么样,但第三方的 IDE 还是功能十分强大的,虽然不能和微软的 Virtual Studio 相媲美,但也是能完全满足 Python 的开发需求的。
再说下 Python 的效率问题,Python 支援多程序、多执行绪以及协程(比执行绪更小一级),程式并发度是在 Shell 之上的。 Python 的核心模组基本都是用 C 实现的,因此效率更高。如有必要也可能将需要用 Python 实现的 Python 模组用 C 重写以提高效率,当然也可以直接用 C Python,一个直接完全用 C 实现的 Python 直译器。
4 、 Python 是否可以访问常见的资料库?
可以,Python 可以访问常见的各种资料库,如 Oracle 、 MySQL 、 Vertica 、 SQLServer 等,载入相应的模组即可,模组列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5 、 Python 开发是程序导向、函式还是物件?
Python 虽然是解释型语言,但从设计之初就已经是一门物件导向的语言,对于 Python 来说一切皆为物件。正因为如此,在 Python 中建立一个类和物件是很容易的,当然如果习惯程序导向或者函式的写法也是可以的,Python 并不做硬性的限制。
Python 的物件导向特征如下:
封装
物件导向程式设计中的术语物件(Object)基本上可以看做资料(特性)以及由一系列可以存取、操作这些资料的方法所组成的集合。传统意义上的 “程式= 资料结构+演算法” 被封装” 掩盖 “并简化为 “程式=物件+讯息” 。物件是类的例项,类的抽象则需要经过封装。封装可以让呼叫者不用关心物件是如何构建的而直接进行使用。
继承
类继承:
继承给人的直接感觉是这是一种复用程式码的行为。继承可以理解为它是以普通的类为基础建立专门的类物件,子类和它继承的父类是 IS-A 的关系。
多重继承:
不同于 C#,Python 是支援多重类继承的(C#可继承自多个 Interface,但最多继承自一个类)。多重继承机制有时很好用,但是它容易让事情变得复杂。
多型
多型意味著可以对不同的物件使用同样的操作,但它们可能会以多种形态呈现出结果。在 Python 中,任何不知道物件到底是什么型别,但又需要物件做点什么的时候,都会用到多型。方法是多型的,运算子也是多型的。
6 、如何快速掌握 Python?
阅读官方文件即可满足日常需求,官方文件有中文翻译,更加方便学习。但这些都是基础的语法和常见的模组,Python 学习重要的是模组,快速、高效的开发依赖的是模组的应用,站在前人的肩膀会省时省力的多。
但学习 Python 其实最重要的是学习模组,而非语法本身,Python 的语法十分简单,只要大学学过 C 或者资料结构课程,甚至完全没学过的人也是可以轻松掌握的。掌握了语法已经可以实现 Shell 的功能,但要想提高模组的学习必不可少,如运维人员经常用的有:
psutil:获取效能资讯
socket:基本互联网通讯
IPy:IP 地址相关处理
dnsptyhon:域名相关处理
difflib:档案比较
pexpect:萤幕资讯获取,常用于自动化
paramiko:SSH 客户端
XlsxWriter:Excel 相关处理
其他还有很多很多功能模组,每天也不断的有新的模组、框架、元件产生,如用于与 Java 做桥接的 PythonJS,甚至 Python 还可以编写 Map 和 Reduce 。
7 、 Python 是否有专用的 IDE 工具?
有,IDEL 用 Python 实现的 Python 的 IDE 工具,但说实话,功能真心不咋地。我个人常用的 IDE 如下:
PyCharm
PyCharm 是 JetBrains 开发的 Python IDE 。 PyCharm 用于一般 IDE 具备的功能,比如,除错、语法高亮、 Project 管理、程式码跳转、智慧提示、自动完成、单元测试、版本控制……另外,PyCharm 还提供了一些很好的功能用于 Django 开发,同时支援 Google App Engine,更酷的是,PyCharm 支援 IronPython!
Wing IDE
Wingware 的 Python IDE 相容 Python 2.x 和 3.x,可以结合 Django,matplotlib,Zope, Plone,App Engine,PyQt,PySide,wxPython,PyGTK,Tkinter,mod_wsgi,pygame,Maya,MotionBuilder,NUKE,Blender 和其他 Python 框架使用。 Wing 支援测试驱动开发,整合了单元测试,nose 和 Django 框架的执行和除错功能。 Wing IDE 启动和执行的速度都非常快,支援 Windows,Linux,OS X 和 Python versi 。
NotePad++
简单、方便,但仅适合临时性的更改。
其他的还有:Eclipse withPyDev 、 Sublime Text 、 Komodo Edit 、 Pyer 、 The Eric Python IDE 、 Interactive Editor for Python
8 、运用 Python 实现系统自动化监控有哪些常用方法?
准确的说应该是有哪些模组,健康监控肯定要有 psutil 来监控效能,还会用到通讯的 Socket,登陆的 Paramiko 、 telnetlib,ftp 的 ftplib 。
原理基本就是采集资料——本地处理资料——传输资料,如果做的比较完善可以再做个呈现资料,也可以吧资料传送给 Zabbix 等开源工具。
个人还用一个开源监控互联网刺探的,超过指定次数就自动封杀。
9 、 Python 可执行在那些平台?跨平台性如何?
支援常见的主流平台,如 AIX 、 HPUX 、 Solaris 、 Linux 、 Windows 等,除 Windows 外常见的 Unix 、 Linux 平台均带有原生的 Python,但版本一般较低。关于跨平台和他跨平台语言一样,要注意有些个别模组是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套程式码。
但这不是说一点限制都没有:首先,同一个版本的中间档案.py 和.pyc 以及.pyo 是跨平台的;其次,PC 与移动终端,如:手机、 Pad 不可跨平台(原因见下一条);最后,不能跨处理器构架,如:Intel 与 ARM,64 位与 32 位。
10 、如何利用 Python 提高开发效率?
因为 Python 很多底层的东西不用自己写,模组资源丰富,运用得当开发效率当然会提升,而且各种框架也为快速开发提供了基础。
11 、 Python 执行速度如何?
通常 Java 的速度比 Python 快些。 Python 呼叫 C 扩充套件除外(也可以直接用 CPython)。
对于 Python 速度太慢的批评,Python 语言作者 Guido van Rossum 说:
如果你开发的系统发现了效能瓶颈,通常最有效率的做法是找到出问题的程式码块,用速度较快的语言如 C 或 C++写一些程式码替换该功能或该模组,而不是用 C 或 C++重写整个系统,因为对大部分程式码而言,语言的速度是无关紧要的。
学习是一个人最大的修养,通过学习不仅可以提升自己的境界,还能丰富知识,为以后的就业打下基础,学习 Python 更是一个发展自己的好机会,毕竟人工智慧时代已经到来,Python 作为人工智慧时代的主力军是非常有前景的,梦想没有腐朽,一路还有汗流。加油!