Python 是人工智能和机器学习的首要编程语言。本文将向您介绍重要的 Python 基础知识,包括:从何处获取 Python、Python 2 和 Python 3 之间的区别以及熟悉的语言概念(如语法和变量),如何在 Python 中工作。
简介
当开发人员开始使用人工智能 (AI) 和机器学习 (ML) 软件时,他们今天最有可能遇到的编程语言是 Python 和 C/C++。大多数情况下,C/C++ 用于专门的应用程序,例如嵌入式物联网 (IoT) 和高度优化的、特定于硬件的神经网络库。
Python 是大多数 AI 和 ML 应用程序开发中最常用的语言,即使是为那些 IoT 和硬件加速应用程序进行原型设计和优化模型也是如此。
对于从 C#、Java 甚至 JavaScript 等其他语言开始使用 Python 的开发人员,本文将向您介绍 Python 独特语法的关键元素,例如循环,以及它们与您可能了解的内容有何不同。
本系列的其他文章将探讨如何使用可供 AI 和 ML 开发人员使用的众多 Python 库,例如 OpenCV、Natural Language Toolkit (NLTK)、Keras 和 TensorFlow。
本文将向您介绍重要的 Python 基础知识,包括:
- 从哪里获得 Python
- Python 2 和 Python 3 的区别
- 熟悉的语言概念(如语法和变量)如何在 Python 中工作
从哪里获得 Python
开发人员通常会问的第一个问题是:我从哪里得到 Python?
答案是:这取决于您的系统和编程环境。默认情况下,Python 安装在 Mac OS 和一些 Linux 发行版上。对于没有 Python 的系统,您可以从以下位置获取安装程序:
另一种选择是Jupyter Notebooks和 JupyterLabs 交互式开发工具。
第三种选择——我们推荐并将用于这些 Python AI/ML 文章的选择——Anaconda,一个专为统计、数据科学和 AI/ML 项目设计的综合软件平台。
Anaconda 包括 JupyterLab(前面提到的基于 Web 的 IDE)以及您在学习 AI 时可能需要的许多其他工具、库和示例数据源。一旦我们了解机器学习库、数据集和可视化,您会发现它们很有帮助。
哪个版本:Python 2 或 Python 3?
对于语言新手来说,使用 Python 2 还是 Python 3 是一个常见的困惑来源。
Python 2 是一个仍然经常使用的旧版本,并且仍然作为 Python 的默认版本安装在一些当前的操作系统中。对 Python 2 的官方支持将于 2020 年初结束。
如果您刚开始使用 Python,则应该使用 Python 3。
Python 3 的持续支持和开发仍在继续。这也适用于您可能想要使用的库:有些可能仍支持这两个版本,但许多将完全转移到 Python 3 或可能会这样做。
你怎么知道你的系统上安装了哪个版本?
在 Linux 系统和 Mac OS 上,该python命令默认为 Python 2
,您可以将python3命令用于 Python 3
。
要确定系统上安装了哪个版本,请转到终端窗口或命令提示符并运行以下命令:
python --version
如果安装了 Python,它会返回python
命令使用的 Python 版本。
Python 2.7.16
该python3 --version
命令对 Python 3 执行相同的操作。
Python 3.7.4
识别代码示例中的 Python 版本
在线教程并不总是明确提及它们是使用 Python 2 还是 Python 3。幸运的是,您可以使用一些启发式方法来确定教程使用的版本。
一是在标准输出上打印文本的方式不同。在 Python 3 中,只有一种有效的方法可以做到这一点:
# Python 2 and Python 3
# This is a comment, by the way
print("Hello, world!")
该语法在 Python 2 中也有效,但 Python 2 示例更常用这种替代语法:
# This only works in Python 2
print "Hello, world!"
Python 语言基础:类型和变量
Python 是动态类型的。类型不与变量名相关联,只与变量值相关联。这与静态类型语言(例如 C# 和 Java)不同,在这些语言中,如果您定义了以后int i = 0;,
就无法编写i = "test";
。在 Python 中,你可以。
Python 是强类型的(例如,JavaScript 是弱类型的)。在强类型语言中,对不同类型值之间的操作有更严格的限制。在 JavaScript 中,您可以执行"abc" + 1
并以 string 结束"abc1"
,但是如果您在 Python 中尝试相同的操作,您将收到一个错误,表明您无法将字符串与整数连接起来。
在 Python 中分配变量可以这样完成:
name = "value"
请注意,行不以分号结尾。
定义和调用函数如下所示:
def say_hello(who):
print("Hello ", who)
name = input("Your name: ")
say_hello(name)
这是在 Jupyter Notebook 中的样子:
与 C# 等语言不同,Python 不使用方括号来指定哪些代码行属于函数。相反,Python 使用缩进。具有相同缩进级别的一系列行形成一个块。缩进代码的推荐方法是每个缩进级别使用四个空格。但是,您也可以使用制表符或其他数量的空格。缩进只需在块内保持一致。
您可以使用return
关键字从函数返回一个值:
def sum(a, b):
return a + b
如果函数没有return
语句,它将返回None
(Python's null
)。
Python 也支持高阶函数(返回函数或将函数作为参数的函数)。例如,该operation
函数返回两个函数之一:
def sum(a, b):
return a + b
def difference(a, b):
return a - b
def operation(calculate_sum):
if calculate_sum:
return sum
else:
return difference
然后可以这样使用:
operation(True)(5, 4)
结论
我们讨论了 Python 2 和 Python 3 之间的区别,并了解了如何识别代码片段中使用的版本。然后我们了解了 Python 的一些基础知识:类型、变量和函数。更多关于Python3,可以学习一下Python3相关教程的内容。