分享

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

 仙山在我心 2019-06-03

本文的目的是尽可能地用简洁的语言介绍 Python 编程语言的所有关键技术点,以帮助初学者能够使用任何 Python 库或实现自己的 Python 包。此外,本文还将重点介绍一些 Python 使用者经常查询的热门问题。下面,让我们开始吧。

01

Python 简介

什么是 Python

  • 一种面向对象的高级动态可解释型脚本语言。

  • Python 解释器一次读取一行代码,将其解释为低级机器语言 (如字节代码) 并执行它。

  • 因此这种语言经常会引发运行错误。

为什么选择 Python (优势)

  • Python 是当前最流行的语言,因为它更容易编码且具有很强的可解释性。

  • Python 是一种面向对象的编程语言,也可用于编写一些功能代码。

  • Python 是能够很好地弥补业务和开发人员之间差距。

  • 与其他语言 (如 C#/Java) 相比,Python 程序被推向市场的时间更短。

  • Python 自带大量的机器学习和分析包。

  • 大量社区和书籍可用于支持 Python 开发人员。

  • 从预测分析到UI,几乎所有类型的应用程序都可以用 Python 实现。

  • Python 程序无需声明变量类型。 因此,所构建的应用程序能有更快的运行速度。

为什么不选择 Python (劣势)

  • 与其他语言 (C++,C#,Java) 相比,Python 程序的运行更慢,这是因为Python 中缺少类似 Just In Time 优化器的支持。

  • Python 语法空白约束给新手编码实现带来一些困难。

  • Python 不像 R 语言那样提供高级的统计功能。

  • Python 不适合进行低级系统和硬件交互。

Python 是如何工作

下图展示了 Python 在机器上的运行机制。这里的关键是解释器,它是负责将高级的 Python 语言编译成低级的机器语言,以便理解。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

02

变量——目标类型及范围

  • 可在程序中使用的变量存储信息,如保存用户输入,程序的本地状态等。

  • Python 中的变量以名字命名。

Python 中变量类型包括数字,字符串,集合,列表,元组和字典,这些都是标准的数据类型。

声明并给变量赋值

如下所示:这里首先分别为变量 myFirstVariable 分配整型数值1,字符串“Hello You”。由于 Python 中的数据类型是动态变化的,因此这种重复赋值操作是可以实现的。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

Python 中变量赋值操作又称为绑定 (blinding)。

数值型

如下所示,Python 支持整型,小数,浮点型数据。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

此外,也能支持长整型,以 L 为后缀表示,如999999999999L。

字符串

字符串就是字母的序列表示文本信息。

字符串的值用引号括起来,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

字符串是不可改变的,一旦创建,就不能被修改。如下所示:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

当字符串变量被赋予一个新值时,Python 将创建一个新的目标来存储这个变量值。

▌局部变量和全局变量

局部变量

局部变量,如在一个函数内声明一个变量,则该变量只存在于该函数中。

局部变量在外部是不能被访问的,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

Python 中 if-else 和 for/while 循环模块是不能创建局部变量,如下所示在 for/while 循环中:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

输出为

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

在 if-else 模块中:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

输出为

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

全部变量

  • 全局变量可以通过任意一个全局函数访问,它们存在于 __main__ 框架中。

  • 此外,在函数之外你也可以声明一个全局变量。值得注意得是,当需要为一个全局变量分配新值时,必须使用“global”关键字,如下所示:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

当移除“Global TestMode”只能在 some_function() 函数中将变量设置为 False。如果你想在多个模块间共享一个全局变量,那么你需要创建一个共享模块文件。如 configuration.py,并在文件中找到你所需的变量。最后导入共享模块。

查看变量类型

  • 通过 type() 函数来查看变脸类型,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

整型变量中的逗号

  • 逗号可视为是变量序列,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

03

操作

数值操作

Python 支持基础的加减乘除数值计算,也支持地板除法 (floor division),如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

此外,Python 还支持指数运算 (**),如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

同时,Python 还能进行除法取余操作,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

▌字符串操作

字符串拼接

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

字符串复制

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

字符串切片

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

字符串反序

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

负索引

如果你想得到字符串的最后一个字符,那需要使用负索引值,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

查看索引值

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

正则表达式

  • split():通过正则表达式将一个字符串分割得到一个列表。

  • sub():通过正则表达式取代所要匹配的字符。

  • subn():通过正则表达式取代所要匹配的字符并返回所替代字符的个数。

Casting

  • str(x):将变量 x 转为字符串类型

  • int(x):将变量 x 转为整型

  • float(x):将变量 x 转为浮点型

集合操作

  • 集合是一种无序的数据集合,定义一个集合变量,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

集合交集

  • 获取两个集合的公共部分,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

集合差异

  • 获取两个集合之间的不同部分,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

集合并集

  • 获取两个集合的并集,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

三元运算符

  • 用于在一行编写条件语句,语法结构为 [If True] if [Expression] Else [If False],如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

04

注释

单行注释

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

多行注释

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

05

表达式

可用于布尔运算,如:

  • Equality:==

  • Not Equality:!=

  • Greater:>

  • Less:<

  • Greater or Equal:>=

  • Less or Equal:<=

06

Pickling

将对象转换为字符串并将字符串转储为一个文件的过程称为 pickling,反之则称为 unpickling。

07

函数

  • 函数是一种可以在代码中执行的语句序列。如果在你的代码中出现重复的语句,那么可以创建一个可重用的函数并在程序中使用它。

  • 函数也可以引用其他函数。

  • 函数消除了代码中的重复,这使得代码调试和问题查找变得更容易。

  • 函数使得代码更易于理解且易于管理。

  • 函数允许将一个大型的应用程序拆分为一些小的模块。

定义一个新的函数

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

调用一个函数

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

查看字符串的长度

可以调用函数 len(x),如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

参数

参数可以被添加到一个函数中,使得函数更通用。

通过参数,可以将一个变量传递给方法,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

可选参数

为参数提供一个默认值来传递一个可选参数,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

* 参数

如果想让函数使用任意数量的参数,那么需要在参数名前添加 *,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

** 参数

** 允许传递可变数量的关键字参数给函数,同时也可以传递一个字典值作为关键字参数。

Return

函数能够返回一个值,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

如果一个函数需要返回多个值的话,那么最好返回一个元组 (以逗号隔开每个值),如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

Lambda 函数

  • 是一种单行表达式的匿名函数

  • 是一种内联函数

  • Lambda 函数没有声明,只是通过一个表达式来实现,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

函数的语法结构为:variable = lambda arguments: expression

Lambda 函数也可以作为参数传递给其他的函数。

dir() 和 help()

  • dir() 用于显示定义的符号

  • help() 用于显示帮助文档

08

模块

什么是模块

  • Python 语言附带了200多个标准模块。

  • 模块是一种将 python 程序中相似功能进行分组的组件。

  • 任何 python 代码文件都可以打包为模块,然后再导入。

  • 模块允许使用者在自己的代码解决方案中进行组件化设计。

  • 模块提供了命名空间的概念,帮助使用者共享数据和服务。

  • 模块鼓励代码重用,并减少变量名称冲突。

PYTHONPATH

  • 这是 python 的环境变量,表示用于操作模块的 python 解释器所在的位置。PYTHONHOME 是一个用于搜索该路径的模块。

如何导入模块

如果你有一个文件:MyFirstPythonFile 包含很多个函数,变量和对象,然后你可以将这些功能导入到其他类中,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

Python 内部会将模块文件编译为二进制再运行模块的代码

如果想导入模块中的所有对象,可以这样:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

如果模块中包含的函数或对象命名为 my_object,那么你可以将其打印出来,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

值得注意的是,如果你不想在加载时执行模块的话,那么你需要检查是否有 __name__ == ‘__main__’

From 导入模块

如果你只是想访问模块中的一个对象或某个部分,可以这样:

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

这种方式导入模块允许使用者在访问模块中的对象,而无需引用模块,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

可以通过 from * 来导入模块中的所有对象,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

值得注意的是,模块只能在第一次 import 时导入。如果你想使用 C 模块,那么你可以使用 PyImport_ImportModule。此外,如果你想在两个不同模块中使用定义相同的对象,那么可以将 import 和 from 结合起来导入模块。

09

包 (Packages)

Python 中包是模块的目录。

如果你的 Python 代码中提供了大量功能,这些功能被分组到模块文件中,那么可以从模块中创建一个包,以便更好地分配和管理这些模块。

包能够更好地管理和组织模块,这有助于使用者更轻松地解决问题和查找模块。

可以将第三方软件包导入到代码中,如 pandas/scikit learn 和 tensorflow等等。

包可以包含大量的模块。

如果代码中的某些部分提供相似的功能,那么可以将模块分组到一个包中,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

上图中 packageroot 是一个根目录 (root folder),packagefolder 是其根目录下面的一个子目录,而 my_module 是在 packagefolder 目录下的一个 python 模块文件。

此外,文件夹名可以作为命名空间,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)

值得注意的是,需要确保所导入的包中每个目录都包含一个 __init__.py 文件。

PIP

  • PIP 是 python 的包管理器。

  • 可以使用 PIP 来下载包,如下所示。

Python入门到精通,这篇文章为你列出了25个关键技术点(附代码)


总结

本文以简短、相关且集中的方式概述了 Python 最重要的25个概念,这些知识对初学者来说足以编写自己的 Python 包或使用现有的 Python 包,希望能帮助大家更好地学习 Python。如果时间充裕的话,尽可能多地进行一些 练习,以便更好地熟悉和理解本文中所提到的知识以及包的使用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多