# Python 3 简介
> 原文: [https://javabeginnerstutorial.com/python-tutorial/an-introduction-to-python-3-2/](https://javabeginnerstutorial.com/python-tutorial/an-introduction-to-python-3-2/)
在本文中,我将向您介绍 Python3。这是有关 Python 的系列文章的第一篇,旨在为您提供一个教程,您可以在其中开始学习 Python 并获得动手示例以简化学习工作。
Python 是*高级*,*交互式*,*面向对象*和*解释*脚本语言。 它被设计为具有可读的源代码,并且在其他编程语言使用标点符号的情况下,它更频繁地使用英语关键字。
让我们看看每个定义隐藏在其名称后面的内容:
* **高级**:Python 易于开发人员阅读和编写。 当您深入到机器级别时,代码将变得更不易读了-最后,当计算机执行命令时,它只是一系列的 1 和 0。
* **交互式**:Python 使您可以直接在解释器中进行编码,并且在您按回车键时将执行代码。
* **面向对象**:Python 支持将信息封装到对象中的面向对象的开发风格。
* **解释**:Python 在运行时由 Python 解释器处理,因此执行之前不需要任何编译。 这类似于 PHP 或 Perl 或 Shell 脚本。
## 为什么要学习?
如果您尚未确信要学习 Python,那么我只能告诉您一件事:大公司使用 Python 进行开发。 这些大公司中有一些是:Google,Dropbox 和迪士尼。
这些公司各自以不同的方式使用 Python。 Google 的 Youtube 主要基于 Python; Google App Engine 的第一个版本是使用 Python 开发的,其想法是仅在平台上使用 Python。 Dropbox 从一开始就使用 Python 开发,当他们注意到他们使用 Python 代码库为 4000 万客户提供服务时。 迪士尼使用 Python 来推动其创作过程。 顺便说一句:NASA 在某些开发中也使用 Python。
所有这些都是因为 Python 是一种易于学习且易于阅读的编程语言。
## Python 2 和 Python 3 之间的区别
当前有两个主要版本供开发人员使用:2 和 3。我将使用 Python 3.5,因为它是最新版本,几乎每个 Python 3 脚本都可以使用 Python 2 解释器执行。 我说这几乎是因为存在一些差异,需要增加新的主要版本号。
由于 Python 3 是使用新版本号引入的,因此它在 Python 2 之间必须有所区别。因此,让我们简要介绍一下在开发 Python 2 和 Python 3 时可能遇到的主要区别:
* 整数除法
* 打印成为函数而不是语句
* 字符串在 Python 3 中默认为 unicode
* 异常的提出和处理发生了变化
* 输入解析已更改
* `xrange`已被删除,范围像以前的`xrange`一样实现
### 在运行时确定 Python 版本
一种解决方案是在运行时确定 Python 版本并在用户使用错误版本执行脚本时退出应用。 为此,让我向您展示一个简单的代码。 现在,请看一下,您就会知道:您可以稍后回到本节中,根据所收集的知识进行修改。
```py
import sys
if sys.version_info[0] != 3:
print("Wrong Python version used")
exit(-1)
```
或者,我们可以引发和异常-但在后面的文章中,当更详细地了解异常处理时,会更多地讨论这个问题。
## 安装 Python
Python 3.5 当前仅是候选版本。 这意味着不鼓励 Python 开发人员在生产环境中使用此版本-但计划于 9 月中旬推出该版本,因此在不久的将来会非常实际,并且候选发布版很可能包含最终版本。
也许您已经注意到您已经在计算机上安装了 Python。 要验证这一点,您必须输入
```py
python
```
在命令提示符下,然后按回车键。 如果已安装,则应显示以下消息:
```py
Python 2.7.10 (default, Jun 10 2015, 19:42:47)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
此消息在第一行包含版本信息。 如果仔细看,您会发现大多数时候都是 python 2.7(至少它已经安装了 Macs)。
要查看是否已安装 Python 3,请输入
```py
python3
```
在命令提示符下,然后按回车键。 在大多数情况下,此版本尚未安装,因此让我们看一下如何安装。
您可以在中找到我安装的版本[。](https://www.python.org/downloads/)
因为基本的分布式版本几乎适用于所有平台,所以我建议您按照站点提供的安装说明进行操作;或者,如果您具有 Mac 或 Windows OS,则可以像我那样获得可执行安装程序,因此没有复杂的安装步骤。 如果您使用的是 Linux,那么您现在应该知道如何在系统上编译(或安装)扩展程序和软件。
就是这样。 现在是时候启动 Python 解释器外壳了,可以确定安装正常:
```py
python3
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
您应该会看到与此类似的内容,并显示正确的 Python 版本号。
## 使用其他模块
有时,您不想重新发明轮子,因为您已经完成了它,或者找到了可以用于您的目的的模块。
在这种情况下,您可以导入包含所需功能的模块。 我们看到了如何使用位于同一文件夹中的自己的脚本来完成此操作。 但是,它如何与其他开发人员的脚本一起使用?
### 用`pip`安装
某些模块可通过 [PyPI](https://pypi.python.org) (Python 包索引)使用。
可能您已经听说过`pip`命令。 它是“Python 安装包”或“Python 包安装器”或更多程序的缩写。 您也可以使用 on 版本。 您应该关心的主要事情是,使用`pip`可以通过一个命令安装模块及其依赖项。 如果您有更新版本的模块,也可以使用`pip`进行更新。
让我们继续并安装`lxml`模块,稍后当我告诉您有关使用 Python 处理 XML 时将需要用到。
```py
$ pip3 install lxml
Collecting lxml
Downloading lxml-3.4.4.tar.gz (3.5MB)
100% |████████████████████████████████| 3.5MB 153kB/s
Installing collected packages: lxml
Running setup.py install for lxml
Successfully installed lxml-3.4.4
```
如果您想知道为什么我使用`pip3`而不是`pip`,则原因非常简单:Python 2 具有自己的`pip`,并且如果您为其他 Python 版本安装模块,则显然其他版本不可用。
要查看`pip`命令是否适合您,您可以查找其版本并查看其修改的 Python 版本:
```py
$ pip -V
pip 7.0.3 from /usr/local/lib/python2.7/site-packages/pip-7.0.3-py2.7.egg (python 2.7)
$ pip3 -V
pip 1.5.6 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)
```
上面的代码片段告诉我,我必须使用`pip3`,因为它是 Python 3.4 的正确版本。
### 定位模块
有时,您没有要在 Python 包索引中使用的模块(例如,您从 GitHub 获得了代码),或者您有一个结构化的项目,其中包含一些文件夹和 Python 脚本文件,而您需要在另一个文件中使用一个文件。
在这种情况下,您可以使用以下经验法则:模块是不带`.py`扩展名的 Python 脚本文件的名称,文件夹必须在脚本名称前添加点号(`.`)作为分隔符。
### 命名导入的模块
如您所见,通过文件夹结构或长名称导入模块对于长期使用而言可能会成为问题。 我的意思是考虑以下几点:导入多处理。 在这种情况下,您每次都要键入`multiprocessing.something`才能获得所需的函数或类。
否则,当您有两个具有相同名称的模块或要从恰好具有相同名称的不同模块中导入两个方法时,可能会发生另一个问题。 在这种情况下将使用哪一个? 您如何同时使用两者?
幸运的是,有一个解决方案:您可以为导入的模块甚至导入的部件(函数,类)指定自定义名称。
```py
>>> import multiprocessing as mp # from now on you can use 'mp' instead of 'multiprocessing'
>>> from calendar import isleap
>>> from calendar import isleap as leap1 # 'leap1' has the same functionality than isleap
>>> isleap(2015)
False
>>> leap1(2016)
True
```
- JavaBeginnersTutorial 中文系列教程
- Java 教程
- Java 教程 – 入门
- Java 的历史
- Java 基础知识:Java 入门
- jdk vs jre vs jvm
- public static void main(string args[])说明
- 面向初学者的 Java 类和对象教程
- Java 构造器
- 使用 Eclipse 编写 Hello World 程序
- 执行顺序
- Java 中的访问修饰符
- Java 中的非访问修饰符
- Java 中的数据类型
- Java 中的算术运算符
- Java 语句初学者教程
- 用 Java 创建对象的不同方法
- 内部类
- 字符串构建器
- Java 字符串教程
- Java 教程 – 变量
- Java 中的变量
- Java 中的局部变量
- Java 中的实例变量
- Java 引用变量
- 变量遮盖
- Java 教程 – 循环
- Java for循环
- Java 教程 – 异常
- Java 异常教程
- 异常处理 – try-with-resources语句
- Java 异常处理 – try catch块
- Java 教程 – OOPS 概念
- Java 重载
- Java 方法覆盖
- Java 接口
- 继承
- Java 教程 – 关键字
- Java 中的this关键字
- Java static关键字
- Java 教程 – 集合
- Java 数组教程
- Java 集合
- Java 集合迭代器
- Java Hashmap教程
- 链表
- Java 初学者List集合教程
- Java 初学者的Map集合教程
- Java 初学者的Set教程
- Java 初学者的SortedSet集合教程
- Java 初学者SortedMap集合教程
- Java 教程 – 序列化
- Java 序列化概念和示例
- Java 序列化概念和示例第二部分
- Java 瞬态与静态变量
- serialVersionUID的用途是什么
- Java 教程 – 枚举
- Java 枚举(enum)
- Java 枚举示例
- 核心 Java 教程 – 线程
- Java 线程教程
- Java 8 功能
- Java Lambda:初学者指南
- Lambda 表达式简介
- Java 8 Lambda 列表foreach
- Java 8 Lambda 映射foreach
- Java 9
- Java 9 功能
- Java 10
- Java 10 独特功能
- 核心 Java 教程 – 高级主题
- Java 虚拟机基础
- Java 类加载器
- Java 开发人员必须知道..
- Selenium 教程
- 1 什么是 Selenium?
- 2 为什么要进行自动化测试?
- 3 Selenium 的历史
- 4 Selenium 工具套件
- 5 Selenium 工具支持的浏览器和平台
- 6 Selenium 工具:争霸
- 7A Selenium IDE – 简介,优点和局限性
- 7B Selenium IDE – Selenium IDE 和 Firebug 安装
- 7C Selenium IDE – 突破表面:初探
- 7D Selenium IDE – 了解您的 IDE 功能
- 7E Selenium IDE – 了解您的 IDE 功能(续)。
- 7F Selenium IDE – 命令,目标和值
- 7G Selenium IDE – 记录和运行测试用例
- 7H Selenium IDE – Selenium 命令一览
- 7I Selenium IDE – 设置超时,断点,起点
- 7J Selenium IDE – 调试
- 7K Selenium IDE – 定位元素(按 ID,名称,链接文本)
- 7L Selenium IDE – 定位元素(续)
- 7M Selenium IDE – 断言和验证
- 7N Selenium IDE – 利用 Firebug 的优势
- 7O Selenium IDE – 以所需的语言导出测试用例
- 7P Selenium IDE – 其他功能
- 7Q Selenium IDE – 快速浏览插件
- 7Q Selenium IDE – 暂停和反射
- 8 给新手的惊喜
- 9A WebDriver – 架构及其工作方式
- 9B WebDriver – 在 Eclipse 中设置
- 9C WebDriver – 启动 Firefox 的第一个测试脚本
- 9D WebDriver – 执行测试
- 9E WebDriver – 用于启动其他浏览器的代码示例
- 9F WebDriver – JUnit 环境设置
- 9G WebDriver – 在 JUnit4 中运行 WebDriver 测试
- 9H WebDriver – 隐式等待
- 9I WebDriver – 显式等待
- 9J WebDriver – 定位元素:第 1 部分(按 ID,名称,标签名称)
- 9K WebDriver – 定位元素:第 2 部分(按className,linkText,partialLinkText)
- 9L WebDriver – 定位元素:第 3a 部分(按cssSelector定位)
- 9M WebDriver – 定位元素:第 3b 部分(cssSelector续)
- 9N WebDriver – 定位元素:第 4a 部分(通过 xpath)
- 9O WebDriver – 定位元素:第 4b 部分(XPath 续)
- 9P WebDriver – 节省时间的捷径:定位器验证
- 9Q WebDriver – 处理验证码
- 9R WebDriver – 断言和验证
- 9S WebDriver – 处理文本框和图像
- 9T WebDriver – 处理单选按钮和复选框
- 9U WebDriver – 通过两种方式选择项目(下拉菜单和多项选择)
- 9V WebDriver – 以两种方式处理表
- 9W WebDriver – 遍历表元素
- 9X WebDriver – 处理警报/弹出框
- 9Y WebDriver – 处理多个窗口
- 9Z WebDriver – 最大化窗口
- 9AA WebDriver – 执行 JavaScript 代码
- 9AB WebDriver – 使用动作类
- 9AC WebDriver – 无法轻松定位元素? 继续阅读...
- 10A 高级 WebDriver – 使用 Apache ANT
- 10B 高级 WebDriver – 生成 JUnit 报告
- 10C 高级 WebDriver – JUnit 报表自定义
- 10D 高级 WebDriver – JUnit 报告自定义续
- 10E 高级 WebDriver – 生成 PDF 报告
- 10F 高级 WebDriver – 截屏
- 10G 高级 WebDriver – 将屏幕截图保存到 Word 文档
- 10H 高级 WebDriver – 发送带有附件的电子邮件
- 10I 高级 WebDriver – 使用属性文件
- 10J 高级 WebDriver – 使用 POI 从 excel 读取数据
- 10K 高级 WebDriver – 使用 Log4j 第 1 部分
- 10L 高级 WebDriver – 使用 Log4j 第 2 部分
- 10M 高级 WebDriver – 以无头模式运行测试
- Vue 教程
- 1 使用 Vue.js 的 Hello World
- 2 模板语法和反应式的初探
- 3 Vue 指令简介
- 4 Vue Devtools 设置
- 5 数据绑定第 1 部分(文本,原始 HTML,JavaScript 表达式)
- 6 数据绑定第 2 部分(属性)
- 7 条件渲染第 1 部分(v-if,v-else,v-else-if)
- 8 条件渲染第 2 部分(v-if和v-show)
- 9 渲染列表第 1 部分(遍历数组)
- 10 渲染列表第 2 部分(遍历对象)
- 11 监听 DOM 事件和事件修饰符
- 12 监听键盘和鼠标事件
- 13 让我们使用简写
- 14 使用v-model进行双向数据绑定
- 15 表单输入绑定
- 18 类绑定
- Python 教程
- Python 3 简介
- Python 基础知识 - 又称 Hello World 以及如何实现
- 如何在 Windows 中安装 python
- 适用于 Windows,Mac,Linux 的 Python 设置
- Python 数字和字符串
- Python 列表
- Python 集
- Python 字典
- Python 条件语句
- Python 循环
- Python 函数
- 面向对象编程(OOP)
- Python 中的面向对象编程
- Python 3 中的异常处理
- Python 3:猜数字
- Python 3:猜数字 – 回顾
- Python 生成器
- Hibernate 教程
- Hibernate 框架基础
- Hibernate 4 入门教程
- Hibernate 4 注解配置
- Hibernate 4 的实体关系
- Hibernate 4 中的实体继承模型
- Hibernate 4 查询语言
- Hibernate 4 数据库配置
- Hibernate 4 批处理
- Hibernate 4 缓存
- Hibernate 4 审计
- Hibernate 4 的并发控制
- Hibernate 4 的多租户
- Hibernate 4 连接池
- Hibernate 自举