背景&应用


背景介绍 — “宇宙山河浪漫,人间点滴温暖,都值得你我前进”

Python 是一门高级又优雅的编程语言,读作【'paɪθɑn'】,翻译成汉语是蟒蛇的意思。是由荷兰程序员 Guido van Rossum ,人称“龟叔”,在某个圣诞节期间开发的。

在最初的开发阶段, Python 被称为 Amoeba(变形虫),这个名字来源于一档荷兰喜剧节目中的段子,然而过了不久,龟叔认为他需要一个更优雅、独特、神秘的名字,于是就将其改名为了 Python ,灵感来自一部 20 世纪 70 年代的 BBC 喜剧。

Python 的设计源自一种为非程序员使用的教育性语言 — ABC 语言,该语言非常易于学习和使用,但它的功能比较有限,所以龟叔决定开发一种能够保持 ABC 语言易用性的同时,又具有更多功能的编程语言,于是 Python 就这样诞生了。

Python 的设计目标是创造一种易于阅读、易于学习、可扩展、可移植的编程语言。


语言特点

  • 简单直观

    相对于 C 和 Java , Python 采用更加简洁、易于理解的语法结构,学习成本和难度曲线降低了很多,更适合新手入门。下面是一个简单的例子:

    【案例】我想将 a 和 b 两个变量的值进行交换,用 Python 三行代码就可以实现此功能:

    a = 1
    b = 2
    a,b = b,a

    然而放到另一种编程语言 C++ 中,实现同样的功能却需要 10 行以上代码:

    # include <iostream>
     
    int main() {
         int a = 1
         int b = 2
         int temp = a
     
         std::count << a << " " << b << std::end1;
     
         return 0;
    }

    由此可见 Python 的代码有多么简洁和易理解。

  • 面向对象

    Python 的编程核心思维是面向对象,面向对象编程把复杂的问题简单化,把冷冰冰的代码类比为现实中的事物,更容易理解。

    举个例子,在 Python 中可以把一套代码类比为一只现实生活中的小狗,这套代码中也会同时具备让小狗完成吃、喝、跑、叫等功能的独立性代码,在我们需要这只小狗完成某项功能时只需要按照说明书的使用方法调用对应的独立代码块就可以轻易完成。

    当然,我们也可以将需要重复使用的代码封装到一起,再使用他们的时候统一去调用。就好比盖房子需要用到图纸,我们将建造的知识和设计的方案都提前编写到这张图纸上,根据甲方的实际需求选择性进行调用就可以轻松完成建造。

    当然,上面提到的面向对象的过程在后面的教程中都会进行深入学习。

  • 丰富的文档和资源

    Python 拥有庞大的社区和生态系统,提供了丰富的文档和教程资源,包括官方文档、教程、示例代码等,初学者可以很容易地获取学习资料和支持。

    就以下面这个网站为例:官方教学文档 ,它是 Python 官方的教学网站,在这个网站中你可以找到官方为你提供的标准库文档、语法参考、案例等方面的知识。

    在官网进行学习可以帮助你更好地掌握知识点中的全部细节,当然,其实对于大部分学者来说,我们是不需要了解每一个模块的全部信息,只需要择优选择最适合我们项目或工作的内容就好。

  • 优秀的三方库支持

    Python 拥有丰富的第三方库和工具支持,三方库是由 Python 社区和 Python 软件基金会开发的一系列外部库或模块,里面有非常多的工具和功能,帮助你更好的完成项目。

    以官方的三方库为例:三方库官方文档 ,在官方的文档中,你可以寻找能够帮助你处理各种工作的第三方库,比如数据库、网页浏览器、电子邮件、数据表格、文件、密码等。

  • 可移植性

    Python 代码可以在不同操作系统和硬件架构上运行而无需进行重写或修改。比如可以在 Linux 、 Windows 、 FreeBSD 、 Macintosh 、 Solaris 等系统中无缝对接。

    这意味着,一段用 Python 编写的代码可以在多个不同的计算环境中执行,这一点可不是所有编程语言都具备的。

    当然,Python 的可移植性还包括对不同硬件架构的支持。Python 代码可以在各种计算机架构上运行,无论是x86、x86-64、ARM还是其他架构。

  • 免费&开源

    Python 是一种完全免费的编程语言,任何人都可以免费下载和使用。此外, Python 还拥有大量的免费标准库和框架,无需购买商业软件或工具。

    关于 Python 的安装和使用教程,我会在后面的章节中详解教给各位。

总的来说, Python 的核心理念就是 “ 简洁优雅 ”,在面对复杂大型的工程项目时,不会被乱七八糟的工程文件、代码块搞的晕头转向,而是能用最少的代码、最简单的逻辑来实现最复杂的工作。


发展史

随着时间的推移, Python 不断发展和壮大,并广泛应用于 Web 开发、数据科学、机器学习、人工智能、网络爬虫、游戏开发、自动化测试等领域。

其主要的发展可以分为以下几个阶段:

① 1989-1993年: Python 的设计和发展

② 1994-2000年: Python 的成熟和应用

③ 2000-2008年: Python 的广泛应用和第三方库的发展

④ 2008年至今: Python 3 系列的发展和广泛应用

截止2023年2月, Python 已经成为全球最为欢迎、使用频率最高的一门编程语言

目前业内几乎所有大中型互联网企业都在使用 Python ,例如 Youtube、Dropbox、BT、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、阿里、百度、腾讯、汽车之家、美团等。

业内一直流传着一句话 , "人生苦短,我用 Python",可见 Python 在编程开发中的地位。


应用

  • 数据科学和机器学习 : Python 被公认为是进行机器学习最好的一门语言,得益于其精简的语言模式和优秀的开源库 Scikit-learn 和 TensorFlow,其非常适合构建神经网络、计算机视觉算法。 此外, Python 在数据可视化方面也颇有造诣,大量论文研究的数据图表都是基于此语言完成的。
  • Web 网站开发 : Python 非常适合进行 Web 后端开发。比较流行的框架有 Django 和 Flask 等,可以轻松构建高效、安全的 Web 应用程序。很多知名的网站如谷歌、豆瓣、知乎、腾讯、网易都是基于 Python 进行搭建的。
  • 自动化脚本编程 : Python 语言非常适合编写自动化的脚本任务,比如自动化写 PPT、自动完成 Excel 表、 Word 文档、自动定时发邮件等,大量取代重复性的日常工作。
  • 网络数据采集 : 由于 Python 是一种解释性语言,解释器执行速度快,因此 Python 在网络爬虫数据抓取效率方面表现异常优异,并且针对聚焦爬虫,目标网站经常变换,要根据目标的变化修改爬虫程序,使用 Python 开发就显得尤为方便,因此 Python 也成为爬虫开发的主流语言。
  • 中小型游戏开发 : Python 语言可以大大降低游戏开发的门槛,并具备跨平台的性质,无需进行大量的代码变动,以 Python 作为引擎开发的著名游戏有《魔兽世界》、《战地风云2》、《文明系列》等。

当然,上面的应用只是 Python 能做的事情中的一小部分,业内常常调侃 Python 这门语言为 “除了生孩子不能做之外,剩下的全能做。”


经典案例

① 报告自动化

以下图为例,如果每日都需要出重复的报告,靠人工进行贴数、分析内容、改标签标题,需要花费大量的时间,但是通过 Python 就可以轻松实现。

下面是一个行业的数据调研报告,由于数据每天都在发生变化,要靠人工进行手动粘贴数据则需要投入非常多的时间成本,使用 Python 可以编写对应位置的数据提取代码,每天在固定的时间去运行脚本,全程耗时不超过 3 秒就可以完成一个人一天的工作。

无法显示

② 爬取数据

Python 拥有众多用于爬虫的优秀第三方库和框架,这些工具使得编写爬虫代码变得更加简单和高效,从目前的语言环境来看,Python 是最适合进行爬虫工作的编程语言。

下面图片是通过 Python 爬取知乎、汽车之家的数据的案例,通过简单的代码可以轻松实现。在后面的教程中作者会通过详细的代码为大家介绍。

无法显示

③ 文件批处理

Python 具有广泛的文件处理工具和库,无论是批量处理文本文件、数据文件、日志文件,还是进行文件格式转换、文件查找、数据清洗等任务都可以轻松完成,使得它成为处理文件批量处理任务的理想选择。

以下图为例,如果日常工作中有上千个同样格式的文件需要进行合并,如果人工操作的话可能要浪费一天以上的时间,但是使用 Python 编写简单的代码就可以在几分钟的时间内搞定。

无法显示

以上是提高日常工作效率的一些小案例,但是和 Python 能实现的功能相比只是冰山一角。


笔者从事编程行业多年,曾在百度金融、京东数科就职高级软件工程师,结合 Python 和SQL解决了80%以上的日常工作量,为集团研发了多款数据分析软件延用至今,本人深刻体会到 Python 能带来的科技进步, 于是结合自己从业以来的经验编写此教程,希望帮助更多的人了解并掌握这门语言。

关注微信公众号【牧旗教程】,获取更多教学资源和一手资讯。

您的打赏将帮助维护网站服务器的正常运营,并为作者的后续更新提供更多的动力。

无法显示 无法显示