任何一个工具,它的一个最重要的、同时也是最难以做到的方面就是对那些学习使用这个工具的人在使用习惯上的影响。如果这个工具是一种编程语言,那么,这种影响,不管我们是否喜欢,都将是一种思考习惯上的影响。——EdsgerDijkstra,计算机科学家
Python的起源
最初,Python完全由Guido本人开发,后来逐渐受到他同事的欢迎,他们迅速反馈使用意见,并参与Python的改进。Guido便和一些同事构成了Python的核心团队,他们将自己的业余时间用于hackPython,Python逐渐扩展到了研究所外。Python将许多机器层面的细节隐藏交给编辑器处理,并凸显逻辑层面的编程思考,程序员使用Python时可以将更多的时间用于程序逻辑的思考,而不是具体细节的实现,这一显著的优势很快吸引了广大程序员。Python便开始流行起来了。
Python#我要学Python#Python的应用场合
目前全世界有多种编程语言,但主流的编程语言也就20来种。如果你知道TIOBE排行榜,就能知道编程语言的大致流行程度。截至年2月,Python处于第三位,市占率仅次于C语言和JAVA。
Python是一门比较注重效率的语言,并不复杂,读和写都非常方便,所以才有了“人生苦短,我用Python”这句调侃。最近几年云计算和大数据等方面对Python人才的需求也在不断增加。当前非常火热的区块链就大量使用Python做具体实现。
下面这些使用比较广泛的软件就大量使用Python:
Google深度学习框架TensorFlow全由Python实现深度学习框架Caffe由Python实现开源神经网络库Keras开源云计算技术(OpenStack)Amazons3命令行管理工具(s3cmd)深度学习框架PyTorch
在大数据领域,Python的使用也越来越广发。Python在数据处理方面具有以下几大优势:
异常快捷的开发速度,代码非常少丰富的数据处理包,无论是正则,还是HTML解析、XML解析,用起来都非常方便内部类型使用成本很低,不需要很多额外操作公司中大量数据处理工作不需要面对非常大的数据巨大的数据不是语言所能解决的,需要处理数据的框架(如Hadoop)。Python虽然小众,但是由处理大数据的框架,一些框架也支持Python编码问题处理起来非常方便
除了在人工智能、云计算、区块链和大数据领域的应用外,很多网站也是用Python进行开发的,很多大公司(如Google、Yahoo以及NASA)都大量使用Python。我们熟知的AlphaGo就是Google用TensorFlow实现的,Facebook也是扎克伯格用Python开发出来的,以及后来的Twitter也是用Python写的。实际上Python是国外很多大公司使用的主要语言。
Python的哲学便是简单、优雅、明确,尽量写容易看明白的代码,尽量将代码写的更少。
Python是一件简单、解释型、交互式、可移植、面向对象的超高级语言,这是对Python语言的简单描述。
从2.X到3.X,Python的新特性
目前,Python有两个版本,一个是2.x版,另一个是3.x版,这两个版本并不兼容。3.x版不考虑对2.x版代码的向后兼容,并且从年1月1日起,Python官方将不再维护2.x版,基于此,3.x版是所有进行编程开发公司的必然选择。
Python2.x和Python3.x的区别
1.使用__future__模块
Python3.x引入了一些与Python2.x不兼容的关键字和特性。在Python2.x中,可以通过内置的__future__模块导入这些新内容。如果你希望在Python2.x环境下写的代码也可以在Python3.x中运行,那么建议使用__future__模块。
2.print函数
虽然print语法是Python3中很小的一个改动,而且已广为人知,但是依然值得一提:Python2中的print语句被Python3中的print()函数取代,这意味着在Python3中必须用括号将需要输出的对象括起来。在Python2中使用额外的括号也可以,但是如果要在Python3中以Python2的形式不带括号调用Print函数,就是触发SyntaxError(语法错误)。
3.整数除法
由于人们常常会忽视Python3在整数除法上的改动(写错了也不会触发SyntaxError),因此在移植代码或在Python2中执行Python3的代码时需要特别注意这个改动。
4.Unicode
Python2有基于ASCII的str()类型,可通过单独的Unicode()函数转成Unicode类型,但没有byte类型。在Python3中有了Unicode(UTF-8)字符串和两个字节类(bytes和bytearrays)。
5.xrange
在Python2.x中,经常会用xrange()创建一个可迭代对象,通常出现在“for循环”或“列表/集合/字典推导式”中。在Python3中,range()的实现方式与xrange()函数相同,所以不存在专用的xrange()
6.触发异常
Python2支持新旧两种异常出发语法,而Python3只支持带括号的语法(不然会出发SyntaxError)
7.处理异常
Python3中的异常处理发生了一点变化。在Python3中必须使用as关键字,Python2中不需要。
8.next()函数和.next()函数
由于会经常用到next()函数(.next()方法),因此要提到另一个语法改动(实现方面也做了改动):在Python2中,函数形式和方法形式都可以使用;在Python3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。
9.for循环变量与全局命名空间泄露
在Python3.x中,for循环中的变量不再会泄露到全局命名空间中了。
10.比较无序类型
Python3中的另一个优秀的改动是,如果我们试图比较无序类型,就会触发一个TypeError。
11.使用input()解析输入内容
Python3改进了input()函数,这样该函数就会总是将用户的输入存储为str对象。在Python2中,为了避免读取非字符串类型会发生的一系列危险行为,不得不使用raw_input()代替input()。
12.返回可迭代对象,而不是列表
某些函数和方法在Python3中返回的是可迭代对象,而不像在Python2中返回列表。对象只遍历一次会节省很多内存,如果通过生成器多次迭代这些对象,效率就不高了。此时,如果需要列表对象,可以通过Python3的list()函数简单的将可迭代对象转成列表。
Python开发环境的构建
工欲善其事必先利其器。在开始编程之前,需要先准备好相关工具。下面将简要的介绍一下Python的下载与安装。
Python的安装软件可以从Python官方网站瞎子啊。建议下载软件时从对应的官方网站,这样比较权威,而且更加安全。
在Windows系统中安装Python
在Windows系统中安装Python可以参考下面的步骤。
①打开Web浏览器(如百度、谷歌、微软、等浏览器),访问Python