Python入门必须知道的11个知识点


Posted in Python onMarch 21, 2018

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作为人工智能时代的主力军是非常有前景的,梦想没有腐朽,一路还有汗流。加油!

推荐书单:

更多精彩书单,请点击python编程必备书单

领取干货:零基础入门学习python视频教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现给qq邮箱发送邮件的方法
May 28 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
flask开启多线程的具体方法
Aug 02 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
python使用Tesseract库识别验证
Mar 21 #Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 #Python
python如何通过实例方法名字调用方法
Mar 21 #Python
python如何为被装饰的函数保留元数据
Mar 21 #Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 #Python
Python反转序列的方法实例分析
Mar 21 #Python
Python常见工厂函数用法示例
Mar 21 #Python
You might like
PHP 高手之路(三)
2006/10/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
货车司机岗位职责
2014/03/18 职场文书
校园标语大全
2014/06/19 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
Oracle11g R2 安装教程完整版
2021/06/04 Oracle