Python 是什么?
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。由 Guido van Rossum 于 1989 年底发明。Python 的第一个公开发行版发行与 1991 年,源代码遵循 GPL(GNU General Public License)协议。Python 语法简洁而清晰,具有丰富和强大的类库。它常被称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
为什么会出现 Python 这种语言?
Python 由 Guido van Rossum 于 1989 年年底出于某种娱乐目的而开发,Python 语言是基于 ABC 教学语言的,而 ABC 这种语言非常强大,是专门为非专业程序员设计的。但 ABC 语言并没有获得广泛的应用,Guido 认为这是非开放造成的。
Gudio 在 Python 中避免了 ABC 不够开放的劣势,加强了 Python 和其他语言如 C、C++ 和 Java 的结合性。此外,Python 还实现了许多 ABC 中未曾实现的东西,这些因素大大提高了 Python 的流行程度。
Python 能解决哪些问题?
Web 应用开发
Python 拥有 Django,Flask,Tornado 等 Web 开发框架,在 Web 开发领域已经被广泛应用。
自动化运维
在 Web 开发领域,Python 只是众多语言选择之一。但在自动化运维领域,Python 则是必备技能。灵活的功能和丰富的类库使其成为运维工程师的首选语言。
大量自动化运维工具和平台或以 Python 开发,或提供 Python 的配置接口。单从 Linux 内置 Python 这一点来看也足见其在服务器和运维领域的地位。
网络爬虫
也叫网络蜘蛛,是指从互联网采集数据的程序脚本。对于很多数据相关公司来说,爬虫和反爬虫技术都是其赖以生存的重要保障。尽管很多语言都可以编写爬虫,但灵活的 Python 无疑也是当前的首选。基于 Python 的爬虫框架 Scrapy 也很受欢迎。
数据分析
当通过爬虫获取了海量数据之后,需要对数据进行清洗、去重、存储、展示、分析,在这方面 Python 有许多优秀的类库:NumPy、Pandas、Matplotlib 可以让你的数据分析工作事半功倍。
科学计算
虽然 Matlab 在科学计算领域有着不可取代的地位,但 Python 作为一门通用的编程语言,可以带来更广泛的应用和更丰富的类库。NumPy、SciPy、BioPython、SunPy 等类库在生物信息、地理信息、数学、物理、化学、建筑等领域发挥着重要作用。
人工智能
Python 在人工智能大范畴领域内的数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。
- 机器学习:Scikit-learn
- 自然语言处理:NLTK
- 深度学习:Keras、Google 的 TensorFlow、Facebook 的 PyTorch、Amazon 的 MxNet
这些已经占据业内主流的工具要么是用 Python 开发,要么也提供了 Python 版本。Python 无疑已成为 AI 领域的必修语言。
胶水语言
Python 简洁、灵活、通用,几乎可以在各种场景与各种平台、设备、语言进行连接,因此被称为胶水语言。有人把它比作小巧而又多功能的瑞士军刀。
Python 和其他语言相比有什么优劣?
优点
简单
相比其他编程语言,Python 代码非常简单,上手非常容易。
比如我们要完成某个功能,使用 C 语言可能需要写 1000 行代码,Java 可能是 100 行,而 Python 可能只需要 20 行。这是 Python 具有巨大吸引力的一大特点。
Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
代码规范
Python 采用强制缩进的方式使得代码具有较好的可读性,而且 Python 语言写的程序不需要编译成二进制代码。
可移植
Python 程序可以跨平台运行。
丰富的标准库
Python 标准库非常庞大,可以帮助处理各种工作。
可扩展
如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。
GUI编程
Python 支持 GUI 可以创建和移植到许多系统。
可嵌入
你可以将 Python 嵌入到 C/C++ 程序,让你的程序的用户获得”脚本化”的能力。
缺点
运行速度较慢
这是解释性语言的通病。
Python 程序比 Java、C、C++ 等程序的运行效率都要慢。
源代码加密困难
不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难。
现阶段主要在哪些方面应用比较广泛?
Python 现阶段主要用于 Web 开发,网络爬虫,人工智能,数据分析,机器学习,自动化运维、科学计算等领域。
能够帮你解决什么问题?
- 更简单地入门人工智能;
- 自动化运维;
- 倘若能够深入人工智能方向,可以为我所在的公司创造更多价值。
你能 / 你想用 Python 做些什么?
- 把一些重复性的工作脚本化;
- 尝试学习人脸识别相关知识;
参考资料
- 学了 Python 能用来做什么? — Crossin
- 可以用 Python 编程语言做哪些神奇好玩的事情?