- Python 基础知识
- Python - 主页
- Python - 概述
- Python - 历史
- Python - 特性
- Python 与 C++
- Python——Hello World 程序
- Python - 应用领域
- Python解释器
- Python-环境设置
- Python-虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 文字
- Python - 运算符
- Python - 运算符优先级
- Python - 算术运算符
- Python - 赋值运算符
- Python - 增强运算符
- Python - 比较运算符
- Python - 逻辑运算符
- Python - 位运算符
- Python - 会员运算符
- Python - 身份运算符
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - 如果有的话
- Python - 大小写匹配语句
- Python - for 循环
- Python - for-else 循环
- Python - While 循环
- Python-break语句
- Python-继续语句
- Python - pass 语句
- Python 函数和模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅关键字参数
- Python - 位置参数
- Python - 仅位置参数
- Python - 任意参数
- Python - 变量作用域
- Python - 函数注释
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python-字符串
- Python - 字符串切片
- Python-修改字符串
- Python-字符串连接
- Python——字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 弦乐练习
- Python 列表
- Python - 列表
- Python - 访问列表项
- Python - 更改列表项
- Python - 添加列表项
- Python - 删除列表项
- Python - 循环列表
- Python - 列表理解
- Python - 列表排序
- Python - 复制列表
- Python - 连接列表
- Python - 列表方法
- Python - 列出练习
- Python 元组
- Python - 元组
- Python - 访问元组项
- Python - 更新元组
- Python - 解压元组
- Python - 循环元组
- Python - 连接元组
- Python - 元组方法
- Python - 元组练习
- Python 集
- Python - 集合
- Python - 访问设置项
- Python - 添加设置项
- Python - 删除设置项
- Python - 循环集
- Python - 连接集
- Python - 复制集
- Python - 集合运算符
- Python - 设置方法
- Python - 设置练习
- Python 字典
- Python - 字典
- Python - 访问字典项目
- Python - 更改字典项目
- Python - 添加字典项
- Python - 删除字典项
- Python - 字典查看对象
- Python - 循环字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python-数组
- Python - 访问数组项
- Python - 添加数组项
- Python - 删除数组项
- Python - 循环数组
- Python - 复制数组
- Python - 反转数组
- Python - 数组排序
- Python - 连接数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python-写入文件
- Python-读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - 操作系统文件/目录方法
- 面向对象编程
- Python - OOP 概念
- Python - 对象和类
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python——继承
- Python——多态性
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python-封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python-单例类
- Python - 包装类
- Python-枚举
- Python-反射
- Python 错误与异常
- Python - 语法错误
- Python - 异常
- Python - try- except 块
- Python - try-finally 块
- Python - 引发异常
- Python - 异常链
- Python - 嵌套 try 块
- Python - 用户定义的异常
- Python-日志记录
- Python-断言
- Python - 内置异常
- Python 多线程
- Python-多线程
- Python-线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 连接线程
- Python - 命名线程
- Python-线程调度
- Python-线程池
- Python - 主线程
- Python-线程优先级
- Python - 守护线程
- Python - 同步线程
- Python同步
- Python-线程间通信
- Python-线程死锁
- Python - 中断线程
- Python 网络
- Python-网络
- Python-套接字编程
- Python-URL 处理
- Python - 泛型
- Python 杂项
- Python - 日期和时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python-PIP
- Python-数据库访问
- Python - 弱引用
- Python-序列化
- Python - 模板
- Python - 输出格式
- Python-性能测量
- Python-数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - 图形用户界面编程
- Python - 命令行参数
- Python - 文档字符串
- Python-JSON
- Python-发送电子邮件
- Python - 进一步扩展
- Python - 工具/实用程序
- Python - 图形用户界面
- Python 问题与解答
- Python - 编程示例
- Python - 快速指南
- Python - 有用的资源
- Python - 讨论
Python解释器
Python 是一种基于解释器的语言。在Linux系统中,Python的可执行文件安装在/usr/bin/目录中。对于 Windows,可执行文件 (python.exe) 可在安装文件夹(例如C:\python311)中找到。
本教程将教您Python 解释器如何在交互和脚本模式下工作。Python 代码一次通过一条语句执行方法。Python 解释器有两个组件。翻译器检查语句的语法。如果发现正确,它会生成一个中间字节代码。有一个Python虚拟机,然后将字节码转换为本机二进制文件并执行它。下图说明了该机制:
Python解释器有交互模式和脚本模式。
Python 解释器 - 交互模式
当从没有任何附加选项的命令行终端启动时,会出现 Python 提示符>>>,并且 Python 解释器按照REPL(读取、求值、打印、循环)原理工作。在 Python 提示符前面输入的每个命令都会被读取、翻译和执行。典型的交互会话如下。
>>> price = 100 >>> qty = 5 >>> total = price*qty >>> total 500 >>> print ("Total = ", total) Total = 500
要关闭交互式会话,请输入行结束符(对于 Linux 为 ctrl+D,对于 Windows 为 ctrl+Z)。您还可以在 Python 提示符前面键入quit() ,然后按 Enter 键返回到操作系统提示符。
>>> quit() $
标准 Python 发行版提供的交互式 shell 不具备行编辑、历史搜索、自动完成等功能。您可以使用其他高级交互式解释器软件(例如IPython和bpython )来获得附加功能。
Python 解释器 - 脚本模式
与在交互式环境中一次输入并获取一条指令的结果不同,可以将一组指令保存在文本文件中,确保其具有 .py 扩展名,并使用名称作为命令行Python 命令的参数。
使用任何文本编辑器(例如 Linux 上的 vim 或 Windows 上的记事本)将以下行保存为prog.py 。
print ("My first program") price = 100 qty = 5 total = price*qty print ("Total = ", total)
当我们在 Windows 机器上执行上面的程序时,它将产生以下结果:
C:\Users\Acer>python prog.py My first program Total = 500
请注意,尽管 Python 一次性执行了整个脚本,但在内部它仍然是逐行执行的。
对于任何基于编译器的语言(例如 Java),除非整个代码没有错误,否则源代码不会转换为字节代码。另一方面,在 Python 中,语句会一直执行,直到第一次出现错误为止。
让我们在上面的代码中故意引入一个错误。
print ("My first program") price = 100 qty = 5 total = prive*qty #Error in this statement print ("Total = ", total)
请注意拼写错误的变量prive而不是Price。尝试像以前一样再次执行脚本 -
C:\Users\Acer>python prog.py My first program Traceback (most recent call last): File "C:\Python311\prog.py", line 4, in <module> total = prive*qty ^^^^^ NameError: name 'prive' is not defined. Did you mean: 'price'?
请注意,错误语句之前的语句被执行,然后出现错误消息。由此可见,Python 脚本是以解释方式执行的。
Python 解释器 - 使用 Shebang #!
除了执行上面的Python脚本之外,脚本本身也可以是Linux中的自可执行文件,就像shell脚本一样。您必须在脚本顶部添加一个shebang行。shebang 指示使用哪个可执行文件来解释脚本中的 Python 语句。脚本的第一行以#! 接下来是 Python 可执行文件的路径。
修改 prog.py 脚本如下 -
#! /usr/bin/python3.11 print ("My first program") price = 100 qty = 5 total = price*qty print ("Total = ", total)
要将脚本标记为自可执行,请使用chmod命令
$ chmod +x prog.py
您现在可以直接执行该脚本,而无需将其用作命令行参数。
$ ./hello.py
交互式 Python - IPython
IPython(代表Interactive Python)是一个增强且强大的 Python 交互式环境,与标准 Python shell 相比具有许多功能。IPython 最初由 Fernando Perez 于 2001 年开发。
IPython 具有以下重要特征 -
IPython 的对象自省能力可以在运行时检查对象的属性。
事实证明,它的语法突出显示对于识别关键字、变量等语言元素非常有用。
交互历史记录在内部存储并且可以复制。
关键字、变量和函数名称的制表符补全是最重要的功能之一。
IPython 的 Magic 命令系统对于控制 Python 环境和执行操作系统任务非常有用。
它是 Jupyter Notebook 和 Project Jupyter 其他前端工具的主要内核。
使用 PIP 安装程序实用程序安装 IPython。
pip3 install ipython
从命令行启动 IPython
C:\Users\Acer>ipython Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32 Type 'copyright', 'credits' or 'license' for more information IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
您将注意到两个主要的 IPython 提示,而不是标准解释器中的常规 >>> 提示,如下所述 -
In[1] 出现在任何输入表达式之前。
Out[1] 出现在输出出现之前。
In [1]: price = 100 In [2]: quantity = 5 In [3]: total = price*quantity In [4]: total Out[4]: 500 In [5]:
Tab 补全是 IPython 提供的最有用的增强功能之一。当您在对象前面的点后按 Tab 键时,IPython 会弹出适当的方法列表。
IPython 通过放置?来提供任何对象的信息(内省)。在它的前面。它包括类的文档字符串、函数定义和构造函数详细信息。例如,要探索上面定义的字符串对象 var,请在输入提示中输入 var?。
In [5]: var = "Hello World" In [6]: var? Type: str String form: Hello World Length: 11 Docstring: str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.
IPython的神奇功能极其强大。Line magics 让你可以在 IPython 中运行 DOS 命令。让我们从 IPython 控制台运行dir命令
In [8]: !dir *.exe Volume in drive F has no label. Volume Serial Number is E20D-C4B9 Directory of F:\Python311 07-02-2023 16:55 103,192 python.exe 07-02-2023 16:55 101,656 pythonw.exe 2 File(s) 204,848 bytes 0 Dir(s) 105,260,306,432 bytes free
Jupyter Notebook 是一个基于 Web 的界面,适用于 Python、Julia、R 和许多其他编程环境。对于Python,它使用IPython作为其主要内核。