python先生

2022-05-31 19:54:34 浏览数 (1)

起源及创始人

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

0 人点赞