起源及创始人
Python的创始人为吉多·范罗苏姆。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释编程,作为ABC语言的一种继承。之所以选中Python作为编程的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言。
就这样,Python在吉多手中诞生了。实际上,第一个实现是在Mac电脑上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
当前吉多仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社群经常称呼他是终身仁慈独裁者(BDFL)。
发音
英国发音:/ˈpaɪθən/ (拍森)
美国发音:/ˈpaɪθɑːn/ (拍桑)
python之禅及翻译
代码语言:javascript复制>>> import this
# 导入this
The Zen of Python, by Tim Peters
提姆·彼得斯(Tim Peters)撰写的《 Python之禅》
Beautiful is better than ugly.
# 优美胜于丑陋
Explicit is better than implicit.
# 显式胜于隐式
Simple is better than complex.
# 简单胜于复杂
Complex is better than complicated.
# 复杂胜于难懂
Flat is better than nested.
# 扁平胜于嵌套
Sparse is better than dense.
# 稀疏胜于紧空
Readability counts.
# 可读性应当被重视
Special cases aren't special enough to break the rules, Although practicality beats
# 尽管实用性会打败纯粹性,特例也不能凌驾于规则之上purity.
Errors should never pass silently, Unless explicitly silenced.
# 不要忽略任何错误,除非你确认要这么做
In the face of ambiguity, refuse the temptation to guess.
# 面对不明确的定义,拒绝猜则的诱惑
There should be one-- and preferably only one --obvious way to do it.
# 找到一种最好唯一的一种方法去解決问题。
Although that way may not be obvious at first unless you're Dutch.
# 虽然一开始这种方法并不是显而易见,因为你不是 Python 之父
Now is better than never.
# 做好过不做
Although never is often better than *right* now.
# 但没有思考的做还不如不做
If the implementation is hard to explain, it's a bad idea.
# 如果实现很难说明,那它是个坏想法
If the implementation is easy to explain, it may be a good idea.
# 如果实现容易解释,那它有可能是个好想法
Namespaces are one honking great idea -- let's do more of those!
# 命名空间是个绝妙的想法,请多加利用。
应用领域
0WEB开发
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python web框架为Django。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架。
1桌面软件
Python在图形界面开发上很强大,可以用tkinter/PyQT框架开发各种桌面软件!
2网络编程
网络编程是Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。
3爬虫开发
在爬虫领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。
4云计算开发
Python是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。
5人工智能
MASA和Google早期大量使用Python,为Python积累了丰富的科学运算库,当AI时代来临后,Python从众多编程语言中脱颖而出,各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确定。
6自动化运维
Python是一门综合性的语言,能满足绝大部分自动化运维需求,前端和后端都可以做,从事该领域,应从设计层面、框架选择、灵活性、扩展性、故障处理、以及如何优化等层面进行学习。
7金融分析
金融分析包含金融知识和Python相关模块的学习,学习内容囊括NumpyPandasScipy数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”、“羊驼策略”、“Dual Thrust 交易策略”等。
8科学运算
Python是一门很适合做科学计算的编程语言,97年开始,NASA就大量使用Python进行各种复杂的科学运算,随着NumPy、SciPy、Matplotlib、Enthought librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。
9游戏开发
在网络游戏开发中,Python也有很多应用,相比于Lua or C ,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。
常用编辑器
PyCharm
Vim
Sublime Text
Notepad
优缺点
优点
简单、易学
python非常简单,非常适合人类阅读,python的代码就像英语文章一样,这种伪代码是它最大的优点之一,使你能够专注于解决问题;python极其容易上手,python摒弃了c语言中非常复杂的指针,简化了python的语法。
免费、开源
python的所有内容都是免费、开源的,可以任意发布软件的版本、阅读软件的源代码、对它做改动。
可移植性
由于python是开源的,目前已经被移植到了大多数平台,如果的程序避开了对系统的依赖性,那么你的程序可以在任意平台运行使用,例如:Windows、MacOS、Linux、Andorid、iOS等等。
缺点
速度慢
Python是解释型语言,所有运行速度会比C、C 慢,但是不影响使用。
开源性
由于python的开源性导致python代码无法加密。
强制缩进
如果你经常使用C语言或者Java语言来编写程序,那么python的强制缩进会让你很不适应,如果习惯看强制缩进,写出的代码排版非常美观。
使用Python编写的著名应用
- Youtube - 视频社交网站
- Reddit - 社交分享网站
- Dropbox - 文件分享服务
- 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
- Django - 鼓励快速开发的Web应用框架
- Pylons - Web应用框架
- Zope - 应用服务器
- Plone - 内容管理系统
- Instagram - 是一款免费提供在线图片及视频分享的社交应用软件,使用Django作为后台
- TurboGears - 另一个Web应用快速开发框架
- Twisted - Python的网络应用程序框架
- Fabric - 用于管理成百上千台Linux主机的程序库
- Python Wikipedia Robot Framework - MediaWiki的机器人编程
- MoinMoinWiki - Python写成的Wiki程序
- Trac - 使用Python编写的BUG管理系统
- Mailman - 使用Python编写的邮件列表软件
- Mezzanine - 基于Django编写的内容管理系统
- Flask - Python微Web框架
- Webpy - Python微Web框架
- Bottle - Python微Web框架
- EVE - 网络游戏EVE大量使用Python进行开发
- Blender - 使用Python作为建模工具与GUI语言的开源3D绘图软件
- Inkscape - 一个开源的SVG矢量图形编辑器。
- 知乎 - 一个问答网站
- 果壳 - 一个泛科技主题网站
- Odoo-仍在持续发展壮大且最受欢迎的ERP软件
学习教程
python官网
https://www.python.org/
官网教程
https://docs.python.org/3/
菜鸟教程
https://www.runoob.com/python3/python3-tutorial.html
廖雪峰教程
https://www.liaoxuefeng.com/wiki/1016959663602400