一, Python 是什么
相信混迹 IT 界的很多朋友都知道, Python 是近年来最火的一个热点, 没有之一. 从性质上来讲它和我们熟知的 C,java,PHP 等没有什么本质的区别, 也是一种开发语言, 而且已经进阶到主流的二十多种开发语言的 top 3(数据源自最新的 TIOBE 排行榜).
来头不小啊! 二十多种主流的开发语言, 我该从哪一个开始呢? 人生苦短, 我用 python!
二, Python 的由来和发展趋势
Python 的前世源自鼻祖 "龟叔".1989 年, 吉多. 范罗苏姆 (Guido van Rossum) 在阿姆斯特丹为了打发无聊的圣诞节, 决心开发一个新的脚本解释程序, 自此 Python 和创始人 "龟叔" 开始进入公众视野. 他希望这个新的叫做 Python 的语言, 能符合他的理想: 创造一种 C 和 shell 之间, 功能全面, 易学易用, 可拓展的语言.
1991 年, 第一个 Python 编译器诞生. 它基于 C 语言实现, 并能够调用 C 语言的库文件. 后面历经版本的不断换代革新, Python 走到了非常具有里程碑意义的一个节点, 即 2004 的 2.4 版本诞生了目前最流行的 web 框架 Django! 六年后 Python 发展到 2.7 版本, 这是目前为止 2.x 版本中最新且较为广泛使用版本.
2.7 版本的诞生不同于以往 2.x 版本的垂直换代逻辑, 它是 2.x 版本和 3.x 版本之间过渡的一个桥梁, 以便最大程度上继承 3.x 版本的新特性, 同时尽量保持对 2.x 的兼容性.
因此 3.x 版本在 2.7 版本之前就已经问世, 从 2008 年的 3.0 版本开始, python3.x 系呈迅猛发展之势, 版本更新活跃, 一直发展到现在最新的 3.7 版本. 3.7 版本也是目前 3.x 系列中主流且广泛使用的版本, 后续相关程序的 demo, 默认均基于 3.7 版本展开.
三, Python 2 VS Python 3
许多初学者会纠结于从 2.x 版本还是 3.x 版本开始 python 学习之路. 这里简要对比下个人学习了解到的两者的差异:
3.x 版本中 PRINT IS A FUNCTION, 使用起来更简单方便;
33.x 版本中默认使用 unicode 编码, 妈妈再也不用担心你的程序编码问题了;
33.x 版本中某些库进行了改名, 具体还有待在后续学习中深入展开;
3 目前 3.x 版本还不能完全支持 Twisted module, 这恐怕是 3.x 版本中最大的遗憾. 也不要过于纠结这点, 据说官方正在弥补这个不足, 同时也相信能有办法解决的:)
长江后浪推前浪, python 的未来是属于 3.x 系列的, 官方宣布 2020 年之后不再支持 2.x 系列中最 nb 的 2.7 版本, 2.x 版本将逐渐寿终正寝, 最终被铭刻在开发语言的丰碑上.
所以学习 3.x 版本没错的!
四, Python 的优缺点
二十多种主流开发语言, python 何以能在 20 多年间以如此迅猛之势横扫七大洲八大洋呢? 这都是它自身优良的特性决定的.
Python 优点:
"优雅","明确","简单"
这是 python 的定位, 使得 python 程序看上去简单易懂, 初学者容易入门, 学习成本更低. 但随着学习的不但深入, python 一样可以满足胜任复杂场景的开发需求. 引用一个说法, Python 的哲学是就是简单优雅, 尽量写容易看明白的代码, 尽量写少的代码.
开发效率高
python 作为一种高级语言, 具有丰富的第三方库, 官方库中也有相应的功能模块支持, 覆盖了网络, 文件, GUI, 数据库, 文本等大量内容. 因此开发者无需事必躬亲, 遇到主流的功能需求时可以直接调用, 在基础库的基础上施展拳脚, 可以节省你很多功力和时间成本, 大大降低开发周期.
无需关注底层细节
Python 作为一种高级开发语言, 在编程时无需关注底层细节(如内存管理等).
功能强大
Python 是一种前端后端通吃的综合性语言, 功能强大, PHP 能胜任的角色它都能做, 至于后端如何胜任, 需要在后续学习中逐步领悟.
可移植性
Python 可以在多种主流的平台上运行, 开发程序时只要绕开对系统平台的依赖性, 则可以在无需修改的前提下运行在多种系统平台上, 具体有待后续学习中深入展开.
一个硬币总有两面, 那么 Python 有缺点吗? 答案是肯定的, 总结如下:
Python 缺点:
代码运行速度慢
因为 Python 是一种高级开发语言, 不像 c 语言一样可以深入底层硬件最大程度上挖掘榨取硬件的性能, 因此它的运行速度要远远慢于 c 语言. 另外一个原因是, Python 是解释型语言, 你的代码在执行时会一行一行地翻译成 CPU 能理解的机器码, 这个翻译过程非常耗时, 所以很慢. 而 C 程序是运行前直接编译成 CPU 能执行的机器码, 所以非常快.
但需要注意的是, 这种慢对于不需要追求硬件高性能的应用场合来讲根本不是问题, 因为它们比较的数量级根本不是用户能直观感受到的! 想想程序执行所需的时间数量级? 例如开发一个下载 MP3 的网络应用程序, C 程序的运行时间需要 0.001 秒, 而 Python 程序的运行时间需要 0.1 秒, 慢了 100 倍, 但由于网络更慢, 需要等待 1 秒, 用户体验几乎没有差别, 除非你用非常精确的计时器来计时.
五, Python 的适用领域
Python 典型的适用领域如下:
云计算开发
云计算领域最火的语言, 典型代表 openstack.
Web 开发
众多优秀的 Web 框架, 众多优秀的大型 Web 站点 (YouTube,instagrm, 豆瓣等) 均基于 python 开发.
系统运维
各种自动化工具的开发, CMDB, 监控告警系统, 堡垒机, 配置管理 & 批量分发工具等均可以搞定. 这是自己需要重点学习的领域.
科学计算, 人工智能
据网上了解用于围棋大战的谷歌阿发狗就使用了 python 开发(但估计只是部分而已).
图形 GUI 处理
暂时没多少体会, 后续领悟吧.
网络爬虫
这年头网络爬虫无处不在, 很多都是基于 python 开发, 包括谷歌的爬虫. 这是爬虫工程师的必备工具.
六, 哪些地方在用 Python
来几个鲜活的知名公司应用案例, 以示敬意:
谷歌: Google App engine,google earth, 爬虫, 广告等
YouTube: 世界最大的在线视频网站基于 python 开发, 好强大
Instagram: 美国最大的图片分享网站, 全部基于 python 开发
Facebook: 大量的基础库基于 python 开发
RedHat:yum 包管理工具基于 python 开发
来源: https://www.cnblogs.com/baijinpython/p/12079575.html