这是胜天半子的第1篇原创。
前言
也许你不是一名程序员,也许你甚至都不是做IT行业的,但你的定位只要不是被时代所抛弃的老年人,你,多多少少应该听过“Python”一词,多多少少看到过Python的广告,没错,今天我们就要深刻解读什么是Python。
01 出生
1989年的一天,一名荷兰名叫吉多·范罗苏姆(Guido van Rossum)的计算机程序员因为过圣诞节实在太过于无聊,就决定开发一个更好用、更简洁、更易懂的新的脚本解释程序,这个语言就叫Python。
一种跨平台、动态的、面对对象的计算机设计程序语言。
作者吉多就是下面这个人,一脸标准的欧美相,高鼻梁、黄头发、高鼻梁和一双深邃的眼神外加一脸“欧美胡”。
他于1982年从阿姆斯特丹大学取得了数学和计算机硕士学位,被称为Python之父。
最初呢,吉多呢是一名ABC语言的参加设计人员,在那个时代,ABC语言是非常优美和强大的,但是没火多久就被淘汰了。
原因很多方面,最大原因有二:
其一,是非开源造成的,
其二,就是这门语言只适合初级的非专业编程人员去学习和运用,且不跨平台。
ABC语言给了吉多很大影响和改变,应该说Python的爱好者应该感谢ABC语言。
因为ABC语言直接影响了吉多想要开发一门新语言的欲望,并且Python从ABC语言中继承了很多东西:比如字符串、列表和字节数列都支持索引、切片排序和拼接操作等等。
02 设计理念
作为Python的创始人吉多,当然希望自己开发的语言源远流长、广泛使用。
所以自下定决心创造Python的时候吉多目的就很明确。
1999年,吉多DARPA提交了一条名为”Computer Programming For Everybody”的资金申请,并在后来说明了他对Python的目标:
a.一门简单直观并与主要竞争者一样强大
b.开源,以便任何人都可以为它做贡献
c.代码像纯英语那样容易理解
d.适用于短期开发的日常任务
这些想法目前均已实现,并且完成了与想法超出实现甚至其他多维度的功能,Python已经成为一门主流必不可少的开发语言,在整个编程语言中,少不了它的一席之地。
关于Python开发者哲学一句话:用最简单易懂的方法来做事情。奉上Python的设计哲学!
The Zen of Python, by Tim Peters
《蟒蛇之禅》,作者:蒂姆·彼得斯
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.
尽管这种方式一开始可能并不明显,除非你是荷兰人。
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!
名称空间是一个非常好的主意——让我们做更多的工作吧!
03 发展史
Python一代于1991年1月问世,第一个解释器诞生了,其中很多语法来自于C语言,同时ABC语言又直接影响了Python,很多语法来自于ABC,甚至是过了近30年,Python依然有争议。
比如运行速度慢、多线程支持不理想等等。
最典型的是“强制缩进”,大多语言的代码都比较自由,即是:不管代码写在哪一行,只要必要的空格有留取,那么不管我缩进多少、空格多少都能正常运行。
但Python必须要强制缩进,若不,则报错停止运行,但是这并不能阻止散发Python语言的魅力。
Python具体发展史:
1991年:发布Python 1.0。此时Python已经有了类,函数,异常处理,包含表和词典在内的核心数据类型。
1991-1994年:Python增加了lambda,map,filter and reduce
1999年:Python的web框架之祖——Zope 1发布
2000年:加入了内存回收机制,构成了现在Python语言框架的基础
2004年:web框架 Django 诞生
2006年:Python 2.5
2008年:Python 2.6
2010年:Python 2.7
2008年:Python 3.0
2009年:Python 3.1
2011年:Python 3.2
2012年:Python 3.3
2014年:Python 3.4
2015年:Python 3.5
2016年:Python 3.6
2018年:Python 3.7
2019年:Python 3.8
2020年:Python 3.9
进入Python3.0时代,Python的社区在蓬勃发展,你遇到的所有关于Python的问题,几乎已经有人遇到过并且解决掉。
注意:目前Python2.x已经停止维护,也就意味着Python3.x不向后兼容Python2.x,更意味着你写的Python3.x的代码用Python2.x的解释器并不能解释,输出给你的是一堆的错误信息。
特别注意:Python2.x版本的解释器名称是「python」,Python3.x版本的解释器名称是「python3」,只有用对应Python版本解释器名称,才能正常解释运行对应的Python版本。
截止2021年1月1日,Python最新版本为v3.9,具体可到Python官方文档查阅&下载:https://www.python.org/downloads/
04 Python能干什么
说到编程语言,总有人认为只有专业的程序员才能学习的一个东西。但,Python很好的诠释了这个观点是错误的:
● 北京的小欣是一名国企的文员,每天加班加点赶稿子赶文档做表格。自从学了Python后,使用自动化办公,每天工作效率提升的不是一半两半。
● 上海的老张是一名金融证券工作者,常年混迹于各大股市中,但每周老板总让他整理提交客户的各大股票的涨停情况、市场行情、资源流向、增仓列表以及各大报表,每天忙到很晚。自动学了Python后,使用代码代替人工爬取、清洗、筛选、整理等复杂工作,不仅工作效率提高了不少,业绩也跟着提高。
● 广州的小郑是一名HR,每天总愁心与自己招聘的工作职位是给高了还是给低了,给高了老板不干,给低了招不来人,这份上下限心中没有一个确切的点,于是她学了Python爬取了BOSS、51、智联......等招聘网各大相关数据,并分析好最低、最高、中位、平均等值,然后定一个合理的价格给找工作者...
● 大潘是一名视觉算法工程师,他...当然不用多说,算法方面,Python必学。
上面随便举了几个例子,无论你做什么行业,只要接触电脑方面,都可以学...,当然你说我不想学Python我想学其他的编程语言,那也行,毕竟几百种编程语言,每种都有它的优势与劣势。下面正式的讲下Python到底能在哪些领域做哪些事情呢?
一、Web开发
无论你想开发属于个人的网站也好,还是企业网站也好,Python都能胜任。
但一般开发网站的话Python并不是特别主流。
比如金融类网站讲究最重要的一个点是安全,那么Java语言就胜任,再比如更多的是关于底层交互的C语言就更胜任,在比如关于游戏方面C++语言就更胜任。
二、爬虫
互联网中什么最重要?有人说是技术,有人说是产品,错!是数据。
拥有数据就拥有基础,然后才有技术、产品....等等。通俗一点爬虫就是网上数据那么多,我通过敲代码的方式得到我想要的数据,这个过程就是爬虫。
三、数据分析
顾名思义,数据分析。
通过数据用科学计算的方式来证明对应事物的行为特征。数据分析的前提是有数据。
四、机器学习
机器学习是人工智能的一个方面、一个分支领域,这个领域Python编程比不可少。
五、APP开发
你没看错,Python 可以开发OS X,Linux,Windows,iOS,Android 等平台的应用。
如过你感兴趣你完全可以开发一个属于自己的APP然后上架。
六、游戏开发
对于喜欢玩游戏的小伙伴是不是很惊喜呢?
七、自动化脚本
那些频繁的、重复的、简单的操作都可以用自动化程序去解决。别人一个一个的执行,你倒行,直接一键干倒,提前下班。
Python能做那么多事?是的!那么Python完美吗?并不完美。
世界上有几百种编程语言,但常用的也就三四十种,每种编程语言都各有千秋。Python的优点:上手容易、简洁易懂、代码量少、面对对象、支持继承/重载、可移植性/可拓展性等等。
但你知道Python的缺点吗?
1、运行速度比其他主流语言都要慢。比如编程界的杠把子Java,老大哥C,C++,后起之秀GO等等都比他们慢,具体原因也跟Python的设计结构有必然的关系,比如Python中造变量不需要指定type,但其他主流语言需要指定type。
2、国内市场并不是很普及,且中文资料匮乏。
3、源代码加密困难:其他编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难,所以涉及安全类的比如金融项目一般不会考虑Python。
4、多并发支持并不是很好。
5、最后一点大多新手都不知道, 人人都知道Python上手入门容易,但Python进阶、高级比较难学易懂。
05 后记
学编程前期是一件很痛苦、折磨人、掉头的事,慢慢的你就会越来越享受里面的乐趣。
像臭豆腐一样,第一次见到它,哎呀妈呀这啥玩意,那么臭!吃了后:真香!
当然学编程之前一定要考虑好选择哪门语言,比如我当时还是个特别小白的时候,一直在犹豫学Python好还是学Java好。
可以根据自身的特点、市场的需求、薪资的高低、未来的趋势等理性选择。
这个世界上有两种人,一种是快乐的猪,一种是痛苦的人,做痛苦的人,不做快乐的猪。---苏格拉底