本文的目的是尽可能地用简洁的语言介绍 Python 编程语言的所有关键技术点,以帮助初学者能够使用任何 Python 库或实现自己的 Python 包。此外,本文还将重点介绍一些 Python 使用者经常查询的热门问题。下面,让我们开始吧。 01 Python 简介 什么是 Python
为什么选择 Python (优势)
为什么不选择 Python (劣势)
Python 是如何工作 下图展示了 Python 在机器上的运行机制。这里的关键是解释器,它是负责将高级的 Python 语言编译成低级的机器语言,以便理解。 02 变量——目标类型及范围
Python 中变量类型包括数字,字符串,集合,列表,元组和字典,这些都是标准的数据类型。 声明并给变量赋值 如下所示:这里首先分别为变量 myFirstVariable 分配整型数值1,字符串“Hello You”。由于 Python 中的数据类型是动态变化的,因此这种重复赋值操作是可以实现的。 Python 中变量赋值操作又称为绑定 (blinding)。 数值型 如下所示,Python 支持整型,小数,浮点型数据。 此外,也能支持长整型,以 L 为后缀表示,如999999999999L。 字符串 字符串就是字母的序列表示文本信息。 字符串的值用引号括起来,如下所示。 字符串是不可改变的,一旦创建,就不能被修改。如下所示: 当字符串变量被赋予一个新值时,Python 将创建一个新的目标来存储这个变量值。 ▌局部变量和全局变量 局部变量 局部变量,如在一个函数内声明一个变量,则该变量只存在于该函数中。 局部变量在外部是不能被访问的,如下所示。 Python 中 if-else 和 for/while 循环模块是不能创建局部变量,如下所示在 for/while 循环中: 输出为 在 if-else 模块中: 输出为 全部变量
当移除“Global TestMode”只能在 some_function() 函数中将变量设置为 False。如果你想在多个模块间共享一个全局变量,那么你需要创建一个共享模块文件。如 configuration.py,并在文件中找到你所需的变量。最后导入共享模块。 查看变量类型
整型变量中的逗号
03 操作 数值操作 Python 支持基础的加减乘除数值计算,也支持地板除法 (floor division),如下所示。 此外,Python 还支持指数运算 (**),如下所示。 同时,Python 还能进行除法取余操作,如下所示。 ▌字符串操作 字符串拼接 字符串复制 字符串切片 字符串反序 负索引 如果你想得到字符串的最后一个字符,那需要使用负索引值,如下所示。 查看索引值 正则表达式
Casting
集合操作
集合交集
集合差异
集合并集
三元运算符
04 注释 单行注释 多行注释 05 表达式 可用于布尔运算,如:
06 Pickling 将对象转换为字符串并将字符串转储为一个文件的过程称为 pickling,反之则称为 unpickling。 07 函数
定义一个新的函数 调用一个函数 查看字符串的长度 可以调用函数 len(x),如下所示。 参数 参数可以被添加到一个函数中,使得函数更通用。 通过参数,可以将一个变量传递给方法,如下所示。 可选参数 为参数提供一个默认值来传递一个可选参数,如下所示。 * 参数 如果想让函数使用任意数量的参数,那么需要在参数名前添加 *,如下所示。 ** 参数 ** 允许传递可变数量的关键字参数给函数,同时也可以传递一个字典值作为关键字参数。 Return 函数能够返回一个值,如下所示。 如果一个函数需要返回多个值的话,那么最好返回一个元组 (以逗号隔开每个值),如下所示。 Lambda 函数
函数的语法结构为:variable = lambda arguments: expression Lambda 函数也可以作为参数传递给其他的函数。 dir() 和 help()
08 模块 什么是模块
PYTHONPATH
如何导入模块 如果你有一个文件:MyFirstPythonFile 包含很多个函数,变量和对象,然后你可以将这些功能导入到其他类中,如下所示。 Python 内部会将模块文件编译为二进制再运行模块的代码 如果想导入模块中的所有对象,可以这样: 如果模块中包含的函数或对象命名为 my_object,那么你可以将其打印出来,如下所示。 值得注意的是,如果你不想在加载时执行模块的话,那么你需要检查是否有 __name__ == ‘__main__’ From 导入模块 如果你只是想访问模块中的一个对象或某个部分,可以这样: 这种方式导入模块允许使用者在访问模块中的对象,而无需引用模块,如下所示。 可以通过 from * 来导入模块中的所有对象,如下所示。 值得注意的是,模块只能在第一次 import 时导入。如果你想使用 C 模块,那么你可以使用 PyImport_ImportModule。此外,如果你想在两个不同模块中使用定义相同的对象,那么可以将 import 和 from 结合起来导入模块。 09 包 (Packages) Python 中包是模块的目录。 如果你的 Python 代码中提供了大量功能,这些功能被分组到模块文件中,那么可以从模块中创建一个包,以便更好地分配和管理这些模块。 包能够更好地管理和组织模块,这有助于使用者更轻松地解决问题和查找模块。 可以将第三方软件包导入到代码中,如 pandas/scikit learn 和 tensorflow等等。 包可以包含大量的模块。 如果代码中的某些部分提供相似的功能,那么可以将模块分组到一个包中,如下所示。 上图中 packageroot 是一个根目录 (root folder),packagefolder 是其根目录下面的一个子目录,而 my_module 是在 packagefolder 目录下的一个 python 模块文件。 此外,文件夹名可以作为命名空间,如下所示。 值得注意的是,需要确保所导入的包中每个目录都包含一个 __init__.py 文件。 PIP
总结 本文以简短、相关且集中的方式概述了 Python 最重要的25个概念,这些知识对初学者来说足以编写自己的 Python 包或使用现有的 Python 包,希望能帮助大家更好地学习 Python。如果时间充裕的话,尽可能多地进行一些 练习,以便更好地熟悉和理解本文中所提到的知识以及包的使用。 |
|