一、什么是Python
1989 年圣诞节期间,荷兰数学和计算机科学研究学会的Guido van Rossum(吉多.范罗苏姆)决心开发一个新的解释程序,作为 ABC 语言的替代品。这门ABC语言的替代语言被取名为Python,命名来自Guido爱看的的电视剧Monty Python's Flying Circus (蟒蛇马戏团)。
二、什么是 Python(⭐⭐)
Python 是一门解释型语言。
计算机不能识别任何除了机器语言以外的语言,所以必须把程序员编写的程序翻译成机器语言,才能被计算机所执行。
将其他语言翻译成机器语言的工具,被称为 编译器
编译器的翻译的方式有两种:一种是编译,另一种是解释。
两种方式之间的区别在于翻译时间点的不同。
当编译器以解释方式运行的时候,也称之为解释器。
解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句的直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行。
三、Python 的版本
- 1991年,第一个 Python 解释器诞生。它是用 C 语言实现的,并能够调用 C 库文件。
- 2000年10月发布Python 2.0 版本
- 2008年 12 月发布 Python 3.0 版本
- 2014年 11 月发布消息:Python 2.7 将在 2020 年停止支持并且不再发布 2.8 版本
Python 2.7 版本:这是Python 2系列的最后一个版本,于2020年停止维护。尽管它不再推荐用于新项目,但仍有一些旧项目在使用它。Python 2.7的优点包括稳定性和广泛的库支持,但缺点是默认使用ASCII编码,不支持Unicode,且整数除法会自动四舍五入。
Python 3.x 版本:从2008年开始发布,包括许多语言和库的改进,但不兼容Python 2.x。Python 3引入了许多重要的改进,如对Unicode编码的支持、整数除法的改进等。
Python 3 是现在和未来的主流版本。
Python 3.0 在设计的时候没有考虑向下兼容。
本笔记是以 Python 3.11 为基准的。
Python 3.11 其中的一个特性是:更详细的错误信息。
四、Python 的特点
简单易学:Python 官方提供有详细的说明文档,Python 语言结构简单,易于阅读、更易理解。
免费开源:Python 是 FLOSS(自由/开发源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
面向对象:Python 是完全面向对象的语言。函数、模块、数字、字符串都是对象。并完全支持继承、重载、派生、多继承,有益于增强代码的复用性。
可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们。Python 程序可以用多种形式与其他编程语言编写的程序组合在一起,因此 Python 也被称为 “胶水”语言。
丰富的库:Python 库非常强大,覆盖网络、文件、GUI、数据库、文本等操作。很多功能开发不必从零编写,直接使用现场的库即可。
跨平台(可移植性):Python 编写的程序可以在各个平台上运行,WIndows、Linux、Unix 等,只需要在不同的平台上安装对应的 Python 解释器即可。
五、Python 的应用领域
自动化运维:包括系统自动化管理(自动化配置、部署、更新、备份、监控等)、网络自动化管理(网络拓扑图绘制、设备配置、故障诊断、流量监控等)、数据自动化管理(自动化数据采集、处理、分析、可视化等)、应用自动化管理(自动化应用部署、测试、维护、升级等)
科学计算:Python 中有现成的第三方科学计算库以便于完成科学计算的任务。
Web 开发:Python 中有比较成熟的 Web 框架,比如 Django、Flask、Tornado等,可以快速搭建企业级Web应用。
大数据:使用Python 可以快速高效的对海量数据进行数据清洗、数据变换、数据分组、数据聚合计算,甚至是调用接口基于大数据集群进行数据并行处理。
人工智能:Python 是人工智能领域的首选语言。Python 在人工智能领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言。例如:AlphaGO 的实现原理是Python 的深度学习,基于Python 深度学习框架 Tensorflow 开发。
爬虫开发:Python 可以将网络数据作为资源,通过自动化程序进行有针对性的数据采集及处理。从事该领域应学习 爬虫策略、高性能异步IO、分布式爬虫等,并针对 Scrapy 框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。
数据分析:Python 是数据分析的主流语言之一。可以结合丰富的科学计算、机器学习等第三方库,对数据进行清洗、去重、规格化和针对性分析。