目录
介绍
从哪里获得Python
哪个版本:Python 2或Python 3?
在代码示例中识别Python版本
Python语言基础:类型和变量
结论
当开发人员开始使用人工智能(AI)和机器学习(ML)软件时,他们今天最可能遇到的编程语言是Python和C / C ++。大多数时候,C / C ++都用于专门的应用程序中,例如嵌入式物联网(IoT)和高度优化的、特定于硬件的神经网络库。
Python是大多数AI和ML应用程序开发中最常用的语言,甚至是用于那些IoT和硬件加速应用程序的原型设计和优化模型。
对于从其他语言(例如C#,Java甚至JavaScript)使用Python的开发人员,本文向您介绍Python独特语法的关键元素(例如循环),以及它们与您可能知道的区别。
本系列中的其他文章将探讨如何与众多适用于AI和ML开发人员的Python库一起使用,例如OpenCV,自然语言工具包(NLTK),Keras和TensorFlow。
本文将向您介绍重要的Python基础知识,包括:
开发人员通常会问的第一个问题是:在哪里可以获得Python?
答案是:这取决于您的系统和编程环境。在Mac OS和某些Linux发行版中,默认情况下安装了Python。对于没有Python的系统,可以从以下位置获取安装程序:
另一个选择是Jupyter Notebooks和JupyterLabs交互式开发工具。
第三种选择——我们推荐并将用于这些Python AI/ML文章——Anaconda,一个专门为统计、数据科学和AI/ML项目设计的综合软件平台。
Anaconda包括JupyterLab(前面提到的基于Web的IDE),以及在学习AI时可能需要的许多其他工具、库和示例数据源。一旦我们学习了机器学习库、数据集和可视化,您就会发现它们会有所帮助。
对于刚接触该语言的人来说,使用Python 2还是Python 3是造成混淆的常见原因。
Python 2是一个较旧的版本,仍经常使用,并且在某些当前操作系统中仍作为Python的默认版本安装。对Python 2的官方支持将于2020年初终止。
如果您刚开始使用Python,则应使用Python 3。
对Python 3的持续支持和开发仍在继续。您可能想使用的库也是如此:一些库可能仍支持这两个版本,但许多库将完全或可能支持Python 3。
您如何知道系统上安装了哪个版本?
在Linux系统和Mac OS上,该python命令默认为Python 2,而对Python 3 使用python3命令。
要确定系统上安装了哪个版本,请转到终端窗口或命令提示符并运行以下命令:
python --version
如果安装了Python,它将返回python命令使用的Python版本。
Python 2.7.16
python3 --version命令对Python 3的作用相同。
Python 3.7.4
在线教程并不总是明确提及它们使用的是Python 2还是Python3。幸运的是,您可以使用两种启发式方法来找出本教程使用的版本。
一是标准输出上的文本打印方式不同。在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 3中是无效的。因此,print没有括号的语句清楚地表明代码是用Python 2编写的。
另一个常见的判断是代码如何通过stdin接受输入。
在Python 3中,读取原始输入是通过input函数完成的。
在Python 2中,input函数也存在,但在那里它将输入评估为Python代码并返回结果。
对于原始输入,Python 2使用raw_input。此功能在Python 3中不存在。
如果代码段不与标准输出/输入交互,则可以查看标准库中使用的功能。Python 3中已更改的功能列表在这里可能会让我们走得太远,但是您可以查看The Conservative Python 3 Porting Guide以获得更完整的列表。
话虽如此,许多用Python 2编写的代码在Python 3中都能正常工作。如果对代码片段有疑问,请试一下并在Python 3中运行。如果由于Python版本而无法使用,请在线搜索错误消息会很快指出。
Python是动态类型的。类型不与变量名关联,而仅与变量值关联。这与静态类型的语言(例如C#和Java)不同,在静态语言中,如果您定义int i = 0;,,以后就无法编写i = "test";。在Python中,您可以。
Python是强类型的(例如,JavaScript是弱类型的)。在强类型语言中,对不同类型的值之间的操作有更严格的约束。在JavaScript中,您可以这样做"abc" + 1并最终得到一个字符串"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的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
然后可以使用这种方式:
我们讨论了Python 2和Python 3之间的区别,并了解了如何识别代码段中使用的版本。然后,我们研究了Python的一些基础知识:类型、变量和函数。
在接下来的文章中,我们将讨论列表、元组和循环!