第1章 Python简介(1)

2023-11-13

第1章 Python简介

Python语言是一种面向对象的解释型高级编程语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。

目前,Python语言有两个版本:Python 2.x和Python 3.x,这两个版本不能够完全兼容。Python官方(www.python.org)宣布,2020 年1月1日起,停止对Python 2.x版本的更新。Python 2.7被确定为最后一个 Python 2.x版本。本教程介绍的是Python 3.x版本的内容。

​ Python语言的主要有以下优点:

(1)Python语言简单易学、功能强大、开源免费。

(2)Python语言是一种解释型的编程语言,程序源码可跨平台运行。运行Python程序时,由Python解释器将程序的源码临时转换成机器指令,一边转换一边执行;通过不同的Python解释器,可将相同的Python程序源码转换成不同平台(Linux、Windows、Mac OS等)下的机器指令。

(3)Python语言是一种面向对象的编程语言,但同时也支持面向过程编程。

(4)Python有丰富的库。Python本身就自带了非常完善的基础代码库(标准库),覆盖了网络、文件、GUI、数据库、文本等多方面的大量内容。另外,Python还有大量的第三方库(如:PyPI,Python Package Index)。所以,用户使用Python语言开发程序时,许多功能都不必从头开始编写,大大加快了程序开发的速度。

(5)Python具有可扩展性。如果需要代码的某一重要部分能够更快速地运行或者不希望被公开,你可以用C或C++语言编写这部分程序,然后在Python程序中调用它们。

(6)Python具有可嵌入性。通过在C或C++程序中嵌入Python代码,可以向程序的用户提供脚本功能。

​ 当然,Python语言也有一些解释型编程语言普遍存在的缺点,如:运行速度相对较慢、代码加密困难。

Python作为一种功能十分强大的编程语言,其应用领域非常广泛,如:Web应用开发、自动化运维、人工智能、网络爬虫、科学计算、游戏开发等。特别是在人工智能领域,Python在机器学习、深度学习等方面都是首选的编程语言,目前世界上优秀的人工智能学习框架,如:Google的TransorFlow、FaceBook 的PyTorch以及开源社区的Karas神经网络库等,都是用Python实现的。

1.1 Python解释器

1.1.1 什么是解释器?

编写好的Python程序代码都要放在Python解释器中运行。Python解释器本身就是一个可执行的程序,其基本功能就是将Python程序源码翻译成CPU可执行的机器指令,并且是一边翻译、一边执行。基于Python的开放性,目前存在着用不同语言编写的多种Python解释器,如:用C语言编写的Python解释器CPython(Python解释器的官方版本)、用Java语言编写的Python解释器Jython等。

本教程中使用的解释器是应用最为广泛的CPython。Ubuntu 20.04系统中已经自带了Python3,它包含了能保证Python3程序运行的两个必要组件:解释器和标准库。

1.1.2 查看解释器的版本号

在终端中执行以下命令,可以查看Python3的具体版本号:

python3 -V

或者

python3 --version

上述命令执行的结果如下:

Python 3.8.10

1.1.3 Python代码的执行过程

Python解释器运行Python程序源码的过程主要分两步:

(1)第一步:将Python程序源码全部翻译成字节码,称为“编译”。

字节码并不是CPU可以直接运行的机器指令,仍然是属于源码层次范围内的底层代码,所以字节码仍然是与平台无关的,和源码一样可以跨平台运行,但程序从字节码开始运行比从源码开始运行的速度要快很多。

如果Python解释器拥有写入权限,那么在它第一次运行程序源码的时候会将翻译出来的字节码保存为一个以 .pyc 为扩展名的文件,下次运行程序的时候,如果在上次保存过字节码后没有修改过源码,Python解释器就会直接加载原来的 .pyc 文件。

(2)第二步:将Python程序字节码翻译机器指令并执行,称为“解释”。

在这一步中,Python字节码被交给Python虚拟机(PVM)翻译成机器指令,再由CPU执行,而且是一边翻译一边执行。

1.1.4 内建模块与标准库

Python3解释器中有一个名为 builtins 的内建模块,它是解释器的一部分。在内建模块中,定义了一些编程时常用的变量、函数和类。例如:在内建模块中定义的函数,通常被称为内建函数。解释器启动后,会自动将内建模块中的内容加载到内存(注意:内建模块的名字并没有被加载),所以当需要使用内建模块中的变量、函数或类的时候,可以直接使用,不必在程序中导入内建模块,也不用将内建模块的名字作为它们的前缀。

标准库相当于解释器的外部扩展,包含了很多模块。与内建模块不同,标准库中的模块一般不会随着解释器的启动而生效,要想使用某个模块中定义的内容(如:函数),必须在程序中提前导入这个模块。

本文在CSDN、公众号、头条号和知乎同步发布,感谢关注。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第1章 Python简介(1) 的相关文章

随机推荐

  • vs2019 中编译和使用 protobuf 库

    背景 protobuf 是一种跨平台的序列化结构数据的方法 可用于网络数据传输及存储 本文对使用 vs2019 编译 protobuf 库文件进行说明 相关代码及安装文件均来自官网下载 VS2019 编译 protobuf 生成 sln 工
  • 实时语音通讯技术的应用场景与挑战

    随着互联网和移动通信技术的快速发展 实时语音通讯技术已经成为人们日常生活和工作中不可或缺的一部分 实时语音通讯技术可以让人们通过网络进行实时语音通话 不受时间和地点的限制 带来了极大的便利和效率提升 本文将探讨实时语音通讯技术的应用场景和挑
  • Java并发之ThreadLocal源码分析(第二篇:添加元素)

    前言 两个与添加元素相关的方法 initialValue 用于初始化一个默认值 set 用于添加一个元素 set 方法分析 public void set T value Thread t Thread currentThread Thre
  • Pycharm运行unittest报错ModuleNotFoundError: No module named ‘pytest‘解决

    使用unittest未import pytest相关功能语句 在pycharm中右键run的时候报错 Traceback most recent call last File B Application pycharm PyCharm 20
  • FCK配置中文版(转自网络,未知来源)

    1 FCKConfig CustomConfigurationsPath 自定义配置文件路径和名称 2 FCKConfigFCKConfig EditorAreaCSS FCKConfig BasePath css fck editorar
  • MATLAB 图像平移操作(转)

    function outImage immove inImage Tx Ty m n size inImage Tx fix Tx Ty fix Ty move xif Tx lt 0 inImage imcrop inImage abs
  • Android 下拉选择框自定义view

    首先来看一下实现的效果 基本思路 继承PopupWindow的自定义View 说明 下图这部分自己布局 本文中主要说明的是点击某个分类显示的下拉实现 第一步 自定义 SpinnerPopuwindow继承PopupWindow Create
  • Markdown编写公式

    文章目录 Markdown编写公式 一 修改设置 二 希腊字母 三 一些数据结构 四 定界符 五 可变大小的符号 六 函数名称 七 二进制运算符和关系运算符 八 箭头符号 九 其他特殊符号 十 上下标 十一 矩阵 十二 分段函数 1 分段函
  • 集群篇-k8s介绍

    TOC 集群篇 k8s介绍 一 集群业务介绍 集群篇 服务器的搭建 集群的管理 运维 1 集群业务介绍 集群 k8s及自动化部署 服务器的预警监控功能 二 k8s 集群部署 K8S部署 DevOps 百度云地址 提取码 1111 1 k8s
  • 扫雷(C语言版)

    引言 扫雷游戏是一款经典的逻辑游戏 它不仅考验玩家的观察力和决策能力 还能带给玩家休闲娱乐的乐趣 本文将介绍一个简单的扫雷游戏的实现 帮助读者了解这款游戏的基本原理和代码实现 一 游戏规则简介 扫雷游戏的目标是找到所有没有地雷的方块 同时避
  • 服务器操作系统的实时性,对虚拟化操作系统进行实时性调度的解决方案介绍

    图3 中断实时响应分析 虚拟操作系统应用中常会有以下3类事件的实时响应需要考虑 0类事件 底层硬件中断需要得到上层某个Domain的快速响应处理 1类事件 Domain GuestOS 之间的通信事件需要被另一个Doamin快速处理 2 类
  • Portal_JS,用JS实现的Portlet效果

    有一年多没有关顾自己的博客了 然还有部分博友造访 令我万分感动 现在发布一下最近的一个组件 PortletWin package ElementUtils js author 熊水林 xionglb 163 com version 版权所有
  • Linux驱动-编译驱动模块的Makefile和脚本

    Makefile内容 ARCH arm CROSS COMPILE arm poky linux gnueabi 也可以同时编译多个模块 obj m export symbol o export symbol1 o export symbo
  • Shell函数的7种用法介绍

    1 在shell文件内部定义函数并引用 复制代码代码如下 shell function cat factorial sh bin bash function factorial factorial 1 for i 1 i lt 1 i do
  • 为什么每家公司都需要协作工具?

    前言 企业很多时候 和一个人是一样一样一样的 经营 也和一个人的成长是一样一样一样的 作为企业的管理者 如何健康存续的运营公司 是每个合格CEO不断成长路径上的必修课 就像 谈谈SaaS创业和企业服务的常识 中提到的企业服务常识 今天和大家
  • MySQL要不要容器化?能不能运行在Docker?

    文章目录 概述 数据安全问题 性能问题 状态问题 资源隔离方面 MySQL 其实也是容器化 概述 容器的定义 容器是为了解决 在切换运行环境时 如何保证软件能够正常运行 这一问题 目前 容器和 Docker 依旧是技术领域最热门的词语 无状
  • 嵌入式系统之KPN网络图

    specification model 推荐用于并行程序 进程通过无线规格的FIFO队列进行通信 读 具有破坏性和阻塞 一个进程停留在waiting队列直到它被另外一个进程的通道传输 写 非阻塞 一个进程不能阻止一个通道传输数据 KPN图像
  • MySQL数据库迁移详细步骤

    转载自 http sofar blog 51cto com 353572 1598364 一 背景简介 1 问题描述 由于机房搬迁 需要对后台DB服务器进行迁移 同时为了保证在数据迁移过程中 对线上业务不造成影响 并能够做到秒级切换 如果我
  • 腾讯云服务器部署使用教程_新手入门

    腾讯云服务器使用教程包括注册账号实名认证 选择云服务器CVM或轻量应用服务器CPU内存带宽和系统盘配置 安全设置和云服务器远程连接 安全组端口开通教程 云服务器环境部署以搭建网站为例手把手网站上线 云服务器文件传输和数据备份以及技术支持等详
  • 第1章 Python简介(1)

    第1章 Python简介 Python语言是一种面向对象的解释型高级编程语言 由Guido van Rossum于1989年底发明 第一个公开发行版发行于1991年 目前 Python语言有两个版本 Python 2 x和Python 3