当前位置: 首页 > news >正文

【数据分析】第二章 Python基础

本章的学习目标
在本章中,我们将建立一个对Python世界的整体性认识。具体来说,我们将学习:

  • 了解Python语言的基本情况和独特特点。 帮助你掌握Python的核心竞争力。

  • 理解Python解释器是什么以及如何开始编写你的第一行Python代码。 为你的编程之路打下基础。

  • 学习如何使用IPython和IPython Notebook等更现代、更高级的交互式工具进行编程。 提升你的编程效率和体验。


2.1 Python—— 编程语言

首先,让我们来认识一下Python这门编程语言本身。

Python是由Guido van Rossum(吉多·范·罗苏姆)于1991年发明的,它起源于ABC语言。Python的特点可以用以下几个关键词来概括:

  • 解释型 (Interpreted)

  • 可移植 (Portable)

  • 面向对象 (Object-Oriented)

  • 交互式 (Interactive)

  • 胶水语言 (Interfaced/Glue Language)

  • 开源 (Open Source)

  • 便于理解和使用 (Easy to Understand and Use)

下面,我们逐一详细了解这些特点:

  1. 解释型:

    • Python是一种解释型语言,它采用一种“伪编译”的方法。这意味着,你编写完Python程序后,需要一个“解释器”才能运行它。

    • 要解释并运行你的源代码,你的计算机上必须安装有Python解释器程序。

    • 与C、C++和Java等需要将整个程序编译成机器码才能运行的语言不同,Python程序不需要预先进行完整的编译步骤。解释器会逐行读取并执行你的代码。

  2. 可移植性:

    • 使用解释器读取和运行代码的最大优势就是Python具有极高的可移植性

    • 这意味着,只要在任何现有系统(如Linux、Windows和Mac)上安装了相应版本的Python解释器,你的Python代码无需修改就能在这些系统上运行。

    • 正是因为这个特性,许多小型设备,包括树莓派(Raspberry Pi)和其他微处理器,都选择Python作为其编程语言。

  3. 面向对象:

    • Python是一种面向对象的语言。你可以通过定义“类(Class)”来表示“对象(Object)”,并实现“继承关系(Inheritance)”。

    • 与C++和Java不同的是,Python中没有明确的“构造函数”或“析构函数”概念。但你可以通过特定的结构来管理异常。

    • 值得一提的是,Python的语言结构非常灵活。即使是面向对象能实现的效果,你也可以通过函数式编程(Functional Programming)、**向量式编程(Vectorized Programming)**等其他编程范式来达成。

  4. 交互式:

    • Python是一种交互式编程语言。由于Python通过解释器执行代码,它的使用环境可以展现出截然不同的特性。

    • 你可以像编写C++或Java那样,一次性编写大量代码后运行。

    • 或者,你也可以在命令行中输入一行命令,立即得到执行结果,然后根据结果决定下一行代码怎么写。这种逐行执行、即时反馈的模式具有高度的交互性。

    • 这种交互性使得Python非常适合进行计算,类似于Matlab。Python之所以能在科学计算领域取得成功,与此特点密切相关。

  5. 胶水语言:

    • Python的一大优点是可以用作“胶水语言”,将C/C++等其他编程语言粘合起来。

    • 这个特性巧妙地弥补了Python执行速度相对较慢的缺点——这可能是Python唯一可能被诟病的性能问题。

    • 作为一种动态性极高的编程语言,有时执行Python程序所需的时间可能是用其他语言编写并编译后的静态程序的100倍。因此,为了解决这类性能瓶颈,我们可以在Python语言中无缝地调用和使用那些已经用其他语言编译好的高效代码。

  6. 开源:

    • Python是一门开源编程语言。Python语言的参考实现——CPython是完全免费、开源的。

    • 此外,Python的每一个模块和库也都是开源的,你可以在网上找到它们的源代码。

    • 每月,庞大的开发者社区都会为Python带来诸多改进,持续丰富Python的库,并提升它们的性能。

    • CPython项目由成立于2001年的非营利机构——**Python软件基金会(Python Software Foundation, PSF)**管理。该基金会的宗旨是宣传、保护和推动Python编程语言的发展。

  7. 便于理解和使用:

    • 这可能是Python最为重要的一个特点,因为它直接影响到开发者,尤其是新手的第一感受。

    • Python代码非常直观,阅读起来很容易,往往会引发用户由衷的赞叹(比如那句经典的:“人生苦短,我用Python”)。

    • 久而久之,Python就成为了大多数编程新手的首选语言。

    • 然而,“简单”并不意味着它的应用范围窄。相反,Python被广泛应用于各个计算领域。

    • 此外,与C++、Java和Fortran等其他编程语言相比,Python处理各种任务时更加简单,远没有其他语言那么复杂。


2.2 Python——解释器

上一节我们提到,Python是一种解释型语言,它的运行离不开解释器。

每次你在命令行中输入python命令,Python解释器就会启动,你将看到一个命令提示符>>>。Python解释器程序的核心任务就是读取并解释你输入到提示符后面的代码。

解释器既可以一次只接收一条单独的命令,也可以接收一个完整的Python代码文件。无论哪种情况,解释器的处理机制都是相同的。

解释器的工作流程:
每次你按下回车键之后,解释器会启动一个过程:

  1. 单词化 (Tokenization): 解释器开始以“单词”为单位逐一扫描代码(一行或整个文件的所有代码)。这些“单词”实际上是一个个文本片段。

  2. 构建逻辑结构: 解释器将这些单词片段组织成一个表示程序逻辑结构的树状结构(你可以想象成一个语法树)。

  3. 生成字节码: 随后,这些代码片段(或树状结构)将会被转化为字节码(通常以.pyc.pyo文件的形式存在)。

  4. 虚拟机执行: 最后,生成的字节码会交由**Python虚拟机(PVM)**执行。

至此,一个Python解释过程就完成了。

图2-1 Python解释器解释代码的过程

Python解释器的种类:
Python的标准解释器被称作CPython,因为它完全是用C语言编写的。除了CPython,还有一些用其他语言编写的解释器:

  • Jython: 用Java语言开发的解释器。

  • IronPython: 用C#开发的解释器(因此目前只适用于Windows系统)。

  • PyPy: 完全用Python自身开发的解释器。

下面我们对其中几个重要的解释器做更详细的介绍。

2.2.1 Cython

Cython项目旨在开发一个能将Python代码转换为等价C代码的编译器。转换后的C代码随后在Cython环境中执行。这种编译机制使得在Python代码中嵌入能够提升效率的C代码成为可能。

你可以将Cython视为一门新的编程语言,它的发明实现了两种编程语言(Python和C)的融合。网上有大量的相关文档可供查阅,建议大家访问http://docs.cython.org了解更多信息。

2.2.2 Jython

与Cython相对,Jython是完全用Java语言开发和编译的Python解释器。它由Jim Hugunin于1997年开发(官网:http://www.jython.org)。

Jython是用Java语言实现的Python编程语言。更进一步来说,它具有以下特点:Python的扩展和包可以用Java类而不是Python模块来实现。这使得Python程序能够无缝地与Java生态系统集成。

2.2.3 PyPy

PyPy解释器是一种即时(Just-In-Time, JIT)编译器。它的特点是在程序运行时直接将Python代码转化为机器码。这样做是为了显著提升Python代码的执行速度。

然而,为了实现JIT编译的高效性,PyPy目前只支持所有Python命令中的一小部分子集,这个子集被称为RPython。关于PyPy的更多信息,请访问其官方网站:http://pypy.org。


2.4 安装 Python

要开始使用Python开发程序,你首先需要在你的操作

相关文章:

  • 技术博客:线程池的暗礁——Executors工厂类为何成为Java高并发系统的禁忌
  • 【数据分析】第三章 numpy(1)
  • 个人总结八股文之-基础篇(持续更新)
  • 中国城市规模指数(1992-2023)
  • 思维链提示:激发大语言模型推理能力的突破性方法
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示
  • oracle sql 语句 优化方法
  • 为什么ping显示connect:network is unreachable,如何排查网络不通问题?
  • 神经网络基础:从单个神经元到多层网络(superior哥AI系列第3期)
  • 【Doris基础】Apache Doris中的Coordinator节点作用详解
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • Python发送天气预报到企业微信解决方案
  • 软件测评师 第9章 基于质量特性的测试与评价 笔记
  • 论文写作核心要点
  • “application/json“,“text/plain“ 分别表示什么
  • spring-boot接入websocket教程以及常见问题解决
  • RabbitMQ深度解析:从基础实践到高阶架构设计
  • VisionPro项目记录3 —— 圆心距
  • 【Linux】权限chmod命令+Linux终端常用快捷键
  • 机器学习知识图谱——逻辑回归算法(Logistic Regression)
  • 网站建设的快乐/seo包括什么
  • 天津建网站/企业关键词优化推荐
  • 政府网站建设指标评价结果/微商营销
  • wordpress集团网站/网络推广发展
  • 网站后期维护合同/网站关键词优化网站推广
  • 南京网站优化多少钱/怎么优化电脑系统