入门Python工程师 必须掌握的11个知识 Python被誉为全世界高效的程式语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎?下面千锋武汉Python培训小编就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因。
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作为人工智能时代的主力军是非常有前景的,梦想没有腐朽,一路还有汗流。加油!
如果你也想入门高薪Python人工智能行业,欢迎你来到千锋武汉Python培训机构学习。千锋武汉Python培训坚持全程面授讲课,由拥有大型企业专案实战以及数年教学经验的讲师进行授课。千锋武汉Python培训课程包括Python专案,爬虫、服务丛集、网站后台、微信公众号开发,Python机器学习与资料探勘,资料分析框架与实战,Python 物联网树莓派的开发等,以培养Python全栈开发工程师为主!23周带你一站式搞定必会必知全部技能,让你在人工智能时代脱颖而出。
选择千锋武汉Python培训,掌握专业的Python知识,为自己未来高薪就业做好铺垫!关注“武汉千锋”微信公众号,可以免费获得更多Python学习资料。