python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因,本文主要和大家分享11个python入门的知识点,希望能帮助到大家。
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作为人工智能时代的主力军是非常有前景的,梦想没有腐朽,一路还有汗流。加油!
推荐书单:
你眼中的python大牛 应该都有这份书单
python书单 不将就
不可错过的十本python好书
相关推荐:
python入门学习的流程分享
python入门:区块链的详细介绍(图)
python入门教程之列表操作
以上就是11个python入门的知识点的详细内容。