说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python(发音:/ˈpaɪθən/ )是一种强大的编程语言,它简单易学,提供众多高级的数据结构,让我们可以面向对象进行编程。Python 的语法优雅,由于是一个解释性语言,更贴近人类自然语言,符合人类惯常的认识逻辑。
Python 跨平台,它能够运行在所有的常见操作系统上。它在近期热门的大数据、科学研究、机器学习、人工智能等领域大显身手,同时 Python 几乎在所有领域都有所应用,对于学习它来说十分划算。
Python 由 吉多·范罗苏姆(荷兰语:Guido van Rossum,1956年1月31日-) 创造,第一版发布于1991年。对于为何有 Python 这个项目,1996年吉多·范罗苏姆曾写到:
六年前,在1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提·派森的飞行马戏团的狂热爱好者,我选择了Python作为项目的标题。
《蒙提·派森的飞行马戏团》(英语:Monty Python's Flying Circus),是 BBC 播出的英国六人喜剧团体电视喜剧系列,所以,Python 虽然原意是蟒蛇,但作为一门开发语言的命名,并不是作者对蟒蛇的喜爱,因此大家并不需要恐惧。
Python 2.0 于 2000 年 10 月 16 日发布。Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码,目前正式版已经发布到 3.10.x, 已经不再维护 2.0 ,因此作为初学者(包括已经在学习的)建议至少多 3.8 版本开始学习,之后的版本功能差异不会太大。
开发语言非常多,我们为什么学 Python 呢?正如之前介绍的那样,它简单、优雅、明确、代码量少等特点,同时还是一个通用性的语言,这就意味差我们可以用它来做任何事情(基本上是这样的)。
注意
这里说的一些语言特性不理解没有关系,形成大致印象,并且坚信 Python 能行,不要听其他人对 Python 的各种指责,相信 Python 是最适合自己的,同时也相信作者,一定不会骗你。
当然它也有一些缺点,不过这些缺点,是可以弥补的,对我们普通人,非工业级的使用不会造成影响。下边列出一些和其他语言的对比;
语言 | 类型 | 运行速度 | 代码量 | 应用范围 |
---|---|---|---|---|
C | 编译为机器码 | 非常快 | 非常多 | 业务底层 |
Java | 编译为字节码 | 快 | 多 | 较广 |
Python | 解析执行 | 慢 | 少 | 通用 |
R | 解析执行 | 慢 | 少 | 统计分析 |
针对优点:
针对缺点:
Python 的应用范围非常广泛,几乎所有领域它都能起到作用,这里列举一些典型的和常见的应用方向。YouTube、Google、Yahoo!、NASA 都在内部大量地使用 Python。
!!! tip "提示"
下文会说到「库」、「框架」、「包」等词汇,就是别人造好的轮子,你直接用就行,当然用之前还得看看它的说明书怎么用。正是众多的覆盖所有领域的框架,让我们使用 Python 可以简单高效,不用关注技术细节。
简单说就是网络站点,包括 PC 站点、移动站点(m 站)、APP 小程序的数据接口,一些流行的 Python 框架可以让我们省时又省力,如 Django、Flask、Tornado 等。像国内的「知乎」、「豆瓣」等就是使用 Python 的知名网站。本网站「盖若」就是用 Python 开发的。
爬虫模拟用户登录网站,拿下我们需要的数据,只要你能看到的信息它都可以给你批量、定时、快速地拿下来并整理好。还可以帮你进行注册登录、提交数据。Python 自带的 urllib 库,第三方的 requests、 Scrappy 都是做这个事的高手。
研究人员需要对数据进行分析处理,NumPy,SciPy,Matplotlib 等三方库可以进行科学计算。数据处理是我们工作学习中的日常,各种 Excel 都可以方便地用 Python 进行处理,除了高效还能实现批量和自动化,不用再每天做用户的工作,提供包括可视化之内的一揽子解决方案的 Pandas 越来越受欢迎,成为 Python 培训公司的吸金课程。数据可视化有 Matplotlib、ploty、seaborn,国内的 pyecharts,是基于百度开发的 echarts,也越来越受欢迎。
Python 自带的 Tkinter 库可以支持 GUI 的开发,让用户通过图形界面进行交互。还可以选择 wxPython 或者 PyQt 等三方 GUI 库开发跨平台的桌面软件。通过 PyInstaller 将程序发布为独立的安装程序包,在 Windows、 MAC 让安装运行。
机器学习、神经网络、深度学习等人工智能领域,近年来越来越离不开 Python, 它已经是这方面的主流的编程语言。Facebook 的神经网络框架 PyTorch 和 Google 的 TensorFlow 都采用了Python语言。Sci-kit Learn 也是一个非常强大的机器学习库。
Python 可以编写一些小游戏,当然在大型游戏中也扮演重要的角色,如很多大型游戏用 C++ 编写图形显示等高性能模块,用 Python 编辑一些逻辑模块。PyGame 库也可用于直接开发一些简单游戏,其他的还包括 Turtle、Pymumk、Arcade、Pyglet 以及 Cocos 2d等。知名游戏 Sid Meier's Civilization(文明)就是使用 Python 实现的。
Python 可以处理图像,做视频渲染,众多工业级的大型软件都开放了 Python 接口,供使用者自己编辑处理程序。图形图像可以应用在医学影像分析、影视制作、人脸识别、无人驾驶等方面。相关的库包有 PIL、OpenCV、SimpleITK、Pydicom 等。
Python 是 IT 行业运维人员、黑客的主要工作语言,云计算搭建、用 PyRo 工具包进行机器人控制编程已经有众多的业务实践。
{tips} 学习提示 如果是 0 基础,这块儿不用看了,听我的,直接安装 3.12, 具体的安装下节会详细说明。
如果时间倒回到五年前,我会给你详尽地说说为什么要选择 Python 3 , 可是当下 3.12 已经正式发布,版本的选择已经不是一个可以讨论的话题了,热门的三方库已经做好了 Python 3 的适配,等你来用。
当然,Python 3 也不是最新就好,但至少应该在 Python 3.8 及以上,我觉得 Python 3.12 是个不错的选择,再到 2025 年就推荐 3.13 了。因为新的版本发布,各个三方库总有一个兼容的开发周期。
作为 0 基础过来人的我,在学习方法上我觉得其实是一个心理建设的过程。试想,一个人面对一个全新的领域,自己一无所知,同时还有些神秘,自然会手足无措。我们不要忘记学习目的,我们不是要就对考试,而是能够使用它,编辑它。以下是几点经验和建议:
这和我们的目的一致,不管你看多少视频、多少书,听别人讲了多少内容,如果从不自己动手去写它,还是无法实践;
想清楚学习动机是什么,想到达到什么样的目标,所有的学习都围绕着目标进行。比如,对于普通人,我们想解决日常重复性的数据表格处理、绘制出漂亮的可视化图形,那么掌握基础的语法后就马上直接学习 pandas
库,直接上手写。
以往的学习是要了解来龙去脉,然后一步一步进阶,但作为一个实用型技术,太注重系统化往往会让我们止足不前,进展缓慢。系统化的训练应该在你掌握了基本技术的前提下进行。
理论往往是枯燥的,就像我们的生活,它也是晦涩的,在没有计算机背景的情况下,对我们无疑是一种打击。我们要做的就是越过理论的屏障去关注它的使用应用层面。在你掌握一定技能后你发现,一些理论并不那么难懂。
不管是前期还是后期的学习,先按照教程把代码敲下来,执行,让返回结果和其他人一样,这就已经是一个巨大的进步了。事实上,你如果是一个老手,面对一个新的库,也只能先模仿。Python 解决问题都有最佳实践,我们模仿的内容往往是我们以后经常用到的方法。在模仿的过程中自己发现规律,总结方法,一步一步前进!
如果我们从母体成为婴儿一样,总要独立前行,遇到的问题千千万万,无法枚举,但其中解决问题的方法需要建立。Python 代码执行错误会有报错,将报错信息在搜索引擎中查询会得到很多答案,然后找到能够解决自己问题的答案,慢慢地就会对此非常敏感。
以数据分析为例,原生 python 是不具备实战意义的数据分析能力,因为它没有类似 R 语言那样的基本向量数据结构。 但 Numpy 的数组实际上就是向量,能够首先对结构化数据的向量运算。所以 python 做数据分析的基础就是 Numpy 只有深度理解 ndarray 数组的原理、操作和数学运算才能从根本上理解 python 数据分析。同时,由于 Numpy 过于底层,在数据分析应用层就要学习 pandas,它也是基于 Numpy 的。
因此,在学习了基础的语法、函数等操作后,要尽快进入了应用库的学习。
最后强调,优先学新版本而不是旧版本、优先看官方文档而不是第三方教程、优先看英文文档而不是中文文档。
更新时间:2023-09-05 15:08:58 标签:python 简介 编程