Python-05 知识-01Python 优缺点
tags: Python 基础知识 优缺点 2020年 01月
Python 介绍
Python 是一种面向对象的、解释型的、通用的、开源的脚本编程语言,它之所以非常流行,我认为主要有三点原因:
Python 简单易用,学习成本低,看起来非常优雅干净;
Python 标准库和第三库众多,功能强大,既可以开发小工具,也可以开发企业级应用;
Python 站在了人工智能和大数据的风口上,站在风口上,猪都能飞起来。
Python 应用领域
Python 主要应用领域:
- 云计算: 云计算最火的语言, 典型应用 OpenStack
- WEB 开发: 众多优秀的 WEB 框架,众多大型网站均为 Python 开发,Youtube, Dropbox, 豆瓣。。。, 典型 WEB 框架有 Django
- 科学运算、人工智能: 典型库 NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python 不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的 Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于 c,c++,java,尤其擅长策略回测
- 图形 GUI: PyQT, WxPython,TkInter
Python 在公司中的应用
Python 在大公司中的应用
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google 广告等项目都在大量使用 Python 开发
- CIA: 美国中情局网站就是用 Python 开发的
- NASA: 美国航天局(NASA)大量使用 Python 进行数据分析和运算
- YouTube:世界上最大的视频网站 YouTube 就是用 Python 开发的
- Dropbox:美国最大的在线云存储网站,全部用 Python 实现,每天网站处理 10 亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全部用 python 开发
- Facebook:大量的基础库均通过 Python 实现的
- Redhat: 世界上最流行的 Linux 发行版本中的 yum 包管理工具就是用 python 开发的
- 豆瓣: 公司几乎所有的业务均是通过 Python 开发的
- 知乎: 国内最大的问答社区,通过 Python 开发(国外 Quora)
- 春雨医生:国内知名的在线医疗网站是用 Python 开发的
- 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用 Python 完成各种各样的任务。
Python 优点
Python 的定位是“优雅”、“明确”、“简单”,所以 Python 程序看上去总是简单易懂,初学者学 Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
开发效率非常高,Python 有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python 官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
Python 优点简述:
- 语法简单易学,高级语言(更加符合人类思维),
- 开源、免费、跨平台、可移植、可嵌入、可扩展。
- 文档、社区完善,胶水语言。
- 面向对象的编程语言。强大三方库。
Python 优点详细内容:
- Python 语法简单 语言易学简单,高级语言,更加符合人类思维。
- 我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节
- 开源代码
- 程序员使用 Python 编写的代码是开源的。
- Python 解释器和模块是开源的
- Python 是免费的
- Python 是面向对象的编程语言
- Python 是高级语言
- Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。
- 高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然
- 语言简洁优美
- 例如去除了大括号,写法简单,写法更接近于英语,其他语言几十上百行的代码,十来行就能解决,而且还好看
- 跨平台
- 多平台通用。window、linux、mac 通用
- 文档完善详细,社区完善
- 胶水语言
- python 常常被昵称为胶水语言,能够把其他语言制作的各种模块(尤其是 C/C++)很轻松地结合在一起,例如在人工智能领域,因为是计算密集型,核心算法完全依赖 C/C++,他们速度快适合底层写算法,python 慢但简单适合上层写逻辑,
- 强大三方库。
- 简单导入即可使用
- 可移植性
- 由于开源本质,Python 已经被移植到多平台,其 Python 程序可以在多平台运行。
- 可扩展性
- 可以用 C/Java 等语言编写扩展
- 可嵌入性
- 你可以把 Python 嵌入你的 C/C++程序,从而向你的程序用户提供脚本功能。
Python 缺点
Python 缺点简述:
- 速度慢
- 由于全局解释锁 GIL 的问题,线程不能利用多 CPU
Python 优点细述:
- 速度慢
- python 是解释型语言,运行时需要一行行转换成 CPU 能理解的机器码,很费时
- Python 的运行速度相比 C 语言确实慢很多,跟 JAVA 相比也要慢一些,因此这也是很多所谓的大牛不屑于使用 Python 的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用 C 运一个程序花了 0.1s,用 Python 是 0.01s,这样 C 语言直接比 Python 快了 10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是 0.15-0.4s 左右,哈哈。其实在大多数情况下 Python 已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用 C 去实现的。
- 代码不能加密,因为 PYTHON 是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用 Python 来去实现。
- 线程不能利用多 CPU 问题
- 这是 Python 被人诟病最多的一个缺点,GIL 即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python 的线程是操作系统的原生线程。在 Linux 上为 pthread,在 Windows 上为 Win thread,完全由操作系统调度线程的执行。一个 python 解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核 CPU 平台上,由于 GIL 的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。