文章目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/32354dab96f1b8c03668aadac9e33e1c.png)
1.Python由来
python的创始人为吉多·范罗苏姆(Guido van Rossum)。
1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器;Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus;他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等
2.Python的概述
Python语言最大的特点就是简单易学
主要特点体现在两个方面:
网络上流传着“人生苦短,我用 Python”的说法
- Python 语言的语法非常简洁明了,即便是非软件专业的初学者,也是很容易上手滴;
- Pytnon对比于其它编程语言,实现同一个功能,Python语言的实现代码往往是最短的,语法简单明了
3.Python的特点
1》Python的优点
1>语法简单
Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特质的编程语言
2>Python是开源滴
开源:也即开放源代码,意思是所有用户都可以看到源代码
Python 的开源体现在两方面:
① 程序员使用 Python 编写的代码是开源的。
比如我们开发了一个 BBS 系统,放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。
② Python 解释器和模块是开源的。
官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多就越健壮。
3>Python是高级语言
高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然
这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)
4>Python是解释型语言,能跨平台
解释型语言一般都是跨平台的(可移植性好),Python就是解释型语言,也不能列外
5>Python是面向对象的编程语言
面向对象是现在语言最基本的特性
Python 支持面向对象,但它不强制使用面向对象。Java 是典型的面向对象的编程语言,但是它强制必须以类和对象的形式来组织代码
6>Python可扩展性强
Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景
Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点
7>Python 功能强大
功能强大主要体现在它的模块众多
Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成
7>Python是免费的
Python 是一种既开源又免费的语言,没错,它就是这样的一个免费的软件
2》Python 的缺点
1>运行速度慢
解释型语言的通病就是运行速度慢是,Python也是这样
Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节
Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java
2>代码加密困难
Python 是直接运行源代码,因此对源代码加密比较困难;不像编译型语言的源代码会被编译成可执行程序
4.Pytnon的应用领域
- WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精flask,bottle,Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
- 网络编程——支持高并发的Twisted网络框架, py3引入的asyncio使异步编程变的非常简单
- 爬虫——爬虫领域,Python几乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
- 云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
- 人工智能——谁会成为AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前,Matlab、Scala、R、Java 和Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 Facebook 开源了 PyTorch之后,Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
- 自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python
- 金融分析——我个人之前在金融行业,10年的时候,我们公司写的好多分析程序、高频交易软件就是用的Python,到目前,Python是金融分析、量化交易领域里用的最多的语言
- 科学运算—— 你知道么,97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy, SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛
- 游戏开发——在网络游戏开发中Python也有很多应用。相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合作为一种 Host 语言,即程序的入口点是在Python 那一端会比较好,然后用 C/C++ 在非常必要的时候写一些扩展。Python 非常适合编写 1万行以上的项目,而且能够很好地把网游项目的规模控制在 10 万行代码以内。另外据我所知,知名的游戏<文明> 就是用Python写的
5.Python版本区别
Python 3.x
1》print(函数代替了语句)
在 Python2.x 中,输出数据使用的是 Print 语句,例如:
>>> print "3,4"
3,4
或者
>>> print(3,4)
(3,4)
在 Python 3.x 中,print 语句没有了,取而代之的是 print 函数,例如:
>>> print(3,4)
3 4
如果在Python 2.x 中那样使用 print 语句,Python 编译器就会报错,例如:
>>> print "3,4"
File "<stdin>", line 1
print "3,4"
^
SyntaxError: Missing parentheses in call to 'print'
2》默认使用 UTF-8 编码
Python 2.x 默认采用的 ASCII 编码,Python 3.x 默认使用 UTF-8 编码,可以很好地支持中文或其它非英文字符。
例如,输出一句中文,使用 Python 2.x 和 Python 3.x 的区别如下:
#Python 2.x
>>>str ="hzl一笑奈何"
>>>str
'hzl\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x8'
#Python 3.x
>>>str ="hzl一笑奈何"
>>>str
'hzl一笑奈何'
3》除法运算
对比于其他语言相比,Python 的除法运算要高端很多,它的除法运算包含 2 个运算符,分别是 / 和 //,这 2 个运算符在 Python 2.x 和 Python 3.x 的使用方法如下:
/ 运算符
在 Python 2.x 中,使用运算符 / 进行除法运算的方式和 Java、C 语言类似,整数相除的结果仍是一个整数,浮点数除法会保留小数点部分,例如:
>>>1/2
0
>>>1.0/2
0.5
Python 3.x 中使用 / 运算符,整数之间做除法运算,结果也会是浮点数。例如:
>>>1/2
0.5
运算符 //
使用运算符 // 进行的除法运算叫做 floor 除法,也就是输出不大于结果值的一个最大的整数(向下取整)。此运算符的用法在 Python 2.x 和Python 3.x 中是一样的,例如:
#Python 2.x
>>> -1//2
-1
#Python 3.x
>>> -1//2
-1
4》不等于运算符
Python 2.x 中的不等于运算符有 2 种写法,分别为 != 和 <>,但在 Python 3.x 中去掉了 <>,只有 != 这一种写法,例如:
#Python 2.x
>>> 1!=2
True
>>> 1<>2
True
#Python 3.x
>>> 1!=2
True
>>> 1<>2
File "<stdin>", line 1
1<>2
^
SyntaxError: invalid syntax
5》八进制表示
在 Python 3.x 中,表示八进制字面量的方式只有一种,并且必须写成“0o1000”这样的方式,原来“01000”的方式不能使用了。例如:
#Python 2.x
>>> 0o1000
512
>>> 01000
512
#Python 3.x
>>> 01000
File "<stdin>", line 1
01000
^
SyntaxError: invalid token
>>> 0o1000
512