python函数中用于获取用户输入值的函数(python中用于获取用户输入的命令为)

python函数中用于获取用户输入值的函数(python中用于获取用户输入的命令为)原文 AskPython Blog 协议 CC BY NC SA 4 0 原文 https www askpython com python built in methods python input function 开发人员 程序员经常需要接受用户的输入来进一步处理应用程序 Python 提供了一个内置的方法来接受用户的输入 Python input 函数 接受用户的输入 Python 的包含了 Python input 函数



原文:AskPython Blog

协议:CC BY-NC-SA 4.0

原文:https://www.askpython.com/python/built-in-methods/python-input-function

开发人员/程序员经常需要接受用户的输入来进一步处理应用程序。

Python 提供了一个内置的方法来接受用户的输入。

Python input()函数接受用户的输入。Python 的包含了 Python input()函数。

语法:

 

在 input()函数中,提示是可选的。提示基本上是一个字符串,即在输入前显示的消息。

无论哪个字符串作为参数放在输入函数中,都会在输出屏幕上打印出来。


  • 一旦解释器遇到 input()函数,它就暂停/停止程序执行,直到用户向程序提供输入。

  • 用户输入的输入被自动转换成一个字符串。无论用户输入的是整数还是浮点类型的数据,input()函数都会将其转换为字符串。

  • 因此,需要在程序中使用类型转换将其显式转换为另一种数据类型。


 

输出:

 

 

输出:

 

 

输出:

*外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python input() Function*

上面的代码片段导致了一个错误,因为 python input()函数将来自用户的输入转换为一个字符串。因此,为了将它转换成整数,我们需要显式地对用户提供的输入进行类型转换。

 

输出:

 

因此,在本文中,我们已经了解了 Python input()函数的工作原理。


  • Python 输入()函数
  • 输入()功能文档

原文:https://www.askpython.com/python-modules/python-inspect-module

Python 的提供了活体对象的自省和相同的源代码。

它还提供了整个程序中使用的类和函数的自省。

inspect 模块为用户提供了利用其中的函数/方法来获取相同的源代码、提取和解析所需的库文档的功能。

这个模块用于获取关于特定用户程序中的函数、类和模块的信息。这是通过对模块的属性、模块的类/方法等进行检查来实现的。



1.模块的自省

最初,我们需要创建一个样本模块以及用于自省的类/函数,即 test.py

test.py

 

然后我们将使用 inspect.getmembers()函数对创建的模块进行自省。

**注意:**包含样本模块的 python 文件和包含自检代码的文件要放在同一个目录下。

模块自检代码:

 

输出:

 

2.模块中类的自省

函数和属性标识符用于检查模块中的类。

 

输出:

 

3.类中方法/函数的自省

函数和属性标识符用于检查模块中的类。

 

输出:

 

4.类对象的内省

 

输出:

 

5.检索一个类的源代码

函数返回特定模块/类的源代码。

 

输出:

 

6.检索方法/函数的源代码

 

输出:

 

7.获取方法签名

方法返回该方法的签名,从而使用户容易理解传递给该方法的参数类型。

 

输出:

 

8.类的字符串文档

inspect 模块的函数提取一个特定的类及其函数来表示给最终用户。

 

输出:

 

9.反思类层次结构

方法返回类的层次结构及其依赖关系。它使用来自给定类的元组和列表创建一个树形结构。

 

输出:

 

10.运行时环境中帧和堆栈的自检

inspect 模块还在函数执行期间检查程序的动态环境。这些函数主要处理调用堆栈和调用框架。

描述当前正在执行的函数的堆栈顶部的帧。结果是一个元组,其中包含参数的名称,以及来自帧的局部值的字典。

 

输出:

 

因此,在本文中,我们已经理解了 Python 的 inspect 模块所提供的功能。


  • Python 检查模块
  • 检查模块文件

原文:https://www.askpython.com/python-modules/python-io-module

大家好!在今天的文章中,我们将学习如何使用 Python IO 模块。

当你想执行与文件相关的 I/O 操作(如文件读/写)时,这个模块非常有用

虽然您可以使用普通的和方法来读/写文件,但是这个模块在这些操作方面给了我们更多的灵活性。

为了更好地理解这个模块,我们举几个例子。

这个模块是标准库的一部分,所以没有必要使用 pip 单独安装它。

要导入 io 模块,我们可以执行以下操作:

 

在模块中,有两个常用类对我们非常有用:

  • 字节序 - >对字节数据的 I/O 操作
  • StringIO - >对字符串数据的 I/O 操作

我们可以使用和来访问这些类。

让我们一个一个来看看。


在这里,我们可以用字节()的形式保存我们的数据。当我们使用时,数据保存在内存缓冲区中。

我们可以使用构造函数获得字节流的实例:

 

请注意,我们正在传递一个字节字符串(以为前缀)。

现在,只是一个字节流的句柄。

为了实际打印缓冲区内的数据,我们需要使用。

 

这里,从句柄获取字节串的值。

由于字节字符串是换行符(’ ')的 ASCII 表示,我们得到以下输出:

输出

 

现在,每当我们完成工作时,关闭我们的缓冲句柄总是一个好习惯。

这也是为了确保我们释放了分配给缓冲区的所有内存。

要关闭缓冲区,请使用:

 

现在让我们看看 StringIO 类。


与类似,类可以从 StringIO 缓冲区读取与字符串相关的数据。

 

我们可以使用从字符串缓冲区读取,使用写入。这非常类似于从文件中读取/写入!

我们可以使用打印内容。

 

输出

 

由于我们正在写入同一个缓冲区,新的内容显然会覆盖旧的内容!

从 StringIO 缓冲区读取

与写入类似,我们也可以使用从 StringIO 缓冲区读取。

 

输出

 

如您所见,内容现在在读缓冲区中,它是使用打印的。

我们也可以使用方法直接从文件中读取,类似于从文件对象中读取。

这里,该模块为我们提供了缓冲与非缓冲读取的选择。

例如,下面将通过设置使用缓冲读取来读取文件。如果 = 0,这将意味着没有缓冲!

假设有以下内容:

 
 

输出

 

如您所见,文件已被成功读取!这里,将使用大约 5 个字节的缓冲区读取文件。


io.open()函数是执行 I/O 操作的首选方法,因为它是一个高级 Pythonic 接口。

相反,将执行对函数的系统调用。这将返回一个文件描述符,它不能像句柄对象一样使用。

由于是的包装函数,使用这样的包装函数通常是个好习惯,因为它们会自动为您处理许多错误。


在本文中,我们学习了如何使用 Python IO 模块,它有两个主要的类——和,用于在缓冲区中读写字节和字符串数据。

  • IO 模块上的 Python 文档
  • 关于 Python IO 模块的 JournalDev 文章

原文:https://www.askpython.com/python/built-in-methods/python-isdecimal-method

在本教程中,我们将介绍 python isdecimal()方法。如果用户想检查一个给定的字符串是否包含一个数字,或者更确切地说,是否包含一个十进制数字,该怎么办?当用户需要将字符串转换为任何其他数字类型,如整数或浮点数等时,就会出现这种情况…

作为这个问题的解决方案, Python 自带一个内置的检查方法,。让我们深入研究这种方法,从而理解这种方法是如何工作的,并据此加以运用。

一般来说,Python 方法直接检查指定字符串中的所有字符是否都是十进制字符。如果是,则该方法返回,否则,返回。

Python isdecimal()方法的语法

让我们看看 Python 方法的语法,然后我们可以使用这个方法。

 

这里:

  • 是我们要检查其是否仅由十进制字符组成的字符串
  • 存储由方法返回的值。对于所有十进制字符,为真,否则,为假

注意:在这里,状态只有真或假,因此状态的类型是。

这里有一个小例子,解释了如何在 Python 中对字符串使用方法。

 

输出:

 

这里:

  • 字符串 1 全部由十进制字符组成。因此,语句返回一个结果
  • 鉴于,字符串 2 中有一个字符**‘a’。由于字符串 2** 并不全由十进制字符组成,所以在这种情况下,结果是。

注意:Python 中的方法不会将分数、下标、上标或任何其他 Unicode 实现的字符视为十进制或数字字符。因此,对于字符串中出现的任何数字字符,该方法返回。

下面的代码片段说明了 Python 中用于字符串的方法是如何工作的,以及它返回什么。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

isdecimal() Example Output

在上面的代码中:

  • 对于字符串 1 ,方法返回一个值,因为点()。)出现在数字之间的字符。该方法认为它不是十进制字符
  • 同样对于字符串 2 ,该字符串完全或纯粹由字符组成,因此该方法返回一个结果
  • 对于所有的琴弦琴弦 3琴弦 4琴弦 5 。方法返回,因为它们都包含对应于非数字字符的 Unicode 值
  • 最后,对于字符串 6 ,该方法也返回一个,因为该字符串包含“ @ ”字符,这也是一个非十进制字符。

因此,在本教程中,我们学习了 Python 中的内置字符串方法,它是如何使用以及如何工作的。如有任何问题,欢迎在下面评论。

  • https://www.journaldev.com/24032/python-string-isdecimal
  • https://stack overflow . com/questions/22789392/str-is decimal-and-str-is digit-difference-example
  • https://stack overflow . com/questions/47113787/difference-between-isnumeric-and-is decimal-in-python/47113836

原文:https://www.askpython.com/python/string/python-isidentifier-method

因此,今天在本教程中,我们将介绍Python 的 isidentifier()方法

基本上,标识符是用户给任何变量、类、对象、函数等的名字。这些名称对于唯一识别单个变量、类等非常重要。

因此,命名是任何变量、类、函数、对象等声明的重要部分。Python 对用户进行了限制,并为此命名过程提供了一些基本准则。

方法检查所提供的字符串是否有资格成为标识符,如果是,则相应地返回 true ,否则返回 false

下面给出了使用 Python 方法的语法。

 

这里,

  • result 存储方法返回的布尔值(真或假),
  • str 是我们需要检查它是否是标识符的字符串。

现在我们已经对标识符的概念和 Python 方法有了基本的了解,让我们举一些例子来理解这个方法的工作原理。

 

输出:

 

这里,

  • 对于string 1–‘ask python’是一个有效的标识符,因为它以一个字符开头,并且不包含任何特殊字符,
  • 对于string 2–‘I’是一个有效的标识符,因为它不包含任何特殊字符,并且有足够的长度,
  • 对于string 3–该字符串不包含任何字符,因此长度为 0。字符串中应该至少有一个字符有资格作为标识符,
  • 对于string 4–它是一个有效的标识符,因为它以下划线(’ _ ')开头,并且包含字符和数字,
  • 对于字符串 5–‘1976’不是有效的标识符,因为它以数字开头。

这就是本教程的内容。我们学习了内置的 Python 方法。我们强烈建议读者浏览下面的参考链接。isidentifier()方法是一个 Python 字符串方法。

如有任何其他问题,请使用下面的评论随时联系。

  • String is identifier()–Python 文档,
  • 标识符和关键字–Python 文档,
  • 支持非 ASCII 标识符-PEP-3131,
  • python 化地检查变量名是否有效–stack overflow 问题。

原文:https://www.askpython.com/python/built-in-methods/python-isinstance

在本教程中,我们将学习 Python isinstance()方法。用户可能会遇到一些情况,需要判断一个对象是否是一个特定类的实例,主要是在 继承 中。Python 提供了一个内置的方法做同样的检查,名为。

让我们开始理解这个方法。

顾名思义,Python 方法是一个内置方法,它检查一个对象是否是任何特定类的实例。现在,让我们看看使用方法的语法,

语法

 

这里,

  • 是我们需要检查它是否是某个类的实例的对象,
  • 是我们需要检查对象所属的类,
  • 如果 object_name 是 class_name 的实例,则方法返回 true ,否则返回 false

所以,现在我们已经完成了 Python 方法的基本定义和语法。让我们看一些例子来更好地理解这个方法是如何工作的。

1.在 Python 中使用 isinstance()和本机类

现在,让我们看看当我们对 python 中的本机类使用方法时会发生什么,如 intfloatstrlistdicttuple

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python isinstance() for Native classes

让我们理解这里发生了什么:

  • 首先,我们已经用一些值初始化了不同类型的变量
  • 之后,我们检查它们是否是相应类的实例。正如预期的那样,对于所有的检查,我们都得到正输出,也就是说, true

2.对用户定义的类使用 isinstance()

现在让我们创建一些类和它们的实例来检查我们是否得到了想要的输出,以及 isinstance 方法在这种情况下是如何工作的。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Example With User-Defined Classes

在这段代码中:

  • 我们创建了两个分别代表日期和时间的类和
  • 完成之后,我们创建两个类的两个对象,分别命名为 ab
  • 然后我们检查对象 ab 是否是和类的实例。使用不同的组合,我们试图解释如果对象不是指定类的实例会发生什么
  • 正如我们所看到的,我们的代码确认 a 和 b 分别是类 dttm 的实例。
  • 但是当我们试图检查 a 和 b 是否分别是 tm 和 dt 类的实例时,方法返回 false 。也就是相反。

3.对多个类使用 isinstance()

Python 方法还提供了一种方法,如果我们想检查一个对象是否是某个给定类中某个类的实例。

在这种情况下,我们需要传递一个必需类的元组。如果对象是任何类的实例,该方法将返回,否则返回。

 

输出:

 

在这里,我们使用与我们在前面的例子中使用的相同的类 dttm 。但是在这种情况下,我们将两个类的元组传递给方法。

由于 ab 是我们传递的元组中任何一个类的实例,我们可以在两个输出中看到。

因此,在本教程中,我们将学习 Python 方法及其用法和工作原理。希望本教程有助于理解实例的概念。

  • https://www.journaldev.com/22932/python-isinstance

原文:https://www.askpython.com/python-modules/pandas/python-isna-notna-functions

读者朋友们,你们好!在本文中,我们将详细关注 Python isna()和 Python notna()函数。所以,让我们开始吧!

在数据科学和机器学习领域,数据分析和预处理起着非常重要的作用。在整个数据预处理过程中,缺失值分析是开发的关键一步。缺失值分析是指从源数据中检测和移除缺失值或 NA 值的过程。

同样,有许多方法可以检测数据集中是否存在缺失值。今天,我们将了解两个易于使用的函数来检测缺失值的存在

  1. Python isna()函数
  2. Python notna()函数

在本主题的课程中,我们将使用自行车租赁预测数据集。你可以在这里找到数据集!现在,让我们在下面的部分中逐一查看它们。


使用 Python isna()函数,我们可以轻松检测到空值或 na 值的存在,即数据集中缺失的值。它是一个布尔函数,查找丢失的值,并在检测到丢失值时返回 TRUE。

看看下面的语法!

 

举例:

在本例中,我们使用了 isna()函数来检查是否存在缺失值。因为数据没有丢失值,所以返回 FALSE。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python isna() function


利用 Python notna()函数,我们可以很容易地挑出不占缺失值或 na 值的数据。notna()函数返回 TRUE,如果数据没有丢失值,则返回 FALSE(如果遇到 na 值)。

语法:

 

举例:

如上所述,数据集没有 NA 值。因此,notna()函数返回 TRUE。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python notna() function


如果你遇到任何问题,请随时在下面评论。总的来说,使用 Python isna()和 notna()函数,我们可以快速检查缺失值的存在,特别是对于大型数据集。我们可以很容易地计划必要的补救措施来处理缺失的价值观。

更多与 Python 编程相关的帖子,请继续关注我们。在那之前,学习愉快!!🙂

原文:https://www.askpython.com/python/built-in-methods/python-issubclass-method

嘿伙计们!今天我们在这里讨论另一个主题为 Python issubclass()方法的教程。

所以让我们直接进入主题。

Python 方法是一个内置的方法,它检查传递的类是否是指定的子类(可能是一个类或类对象的元组)。如果该类是 classinfo 的子类(直接、间接或虚拟),则返回。否则,返回。在任何其他情况下,都会引发一个异常。

 

是我们要确认是否是的子类的类的名称。如果 classinfo 是一个类元组,该函数对其中的每个类都进行相同的检查。

所以,现在我们对有了一个基本的概念,让我们看一些例子来更好地理解。

在这一节中,我们将讨论使用 Python 方法的不同方式。对于我们将作为类名以及类对象的元组传递的两种情况。

1.Python 继承中的 issubclass()

当我们在讨论继承的时候,父类和子类的概念是非常关键的。当一个从一个类继承时,它派生或扩展它的属性。此时,被认为是类的子类。

因此,当我们想要获得一个类的继承信息时,方法就变得很方便。或者检查它是否继承自另一个类。

让我们举个例子。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

issubclass() with Inheritance – Output

这里的是父类,有一个子类。两个类,和再次继承自类(多级继承)。因此和类都是和的子类。而是的子类。

这解释了前 6 的结果。

对于最后一种情况,我们得到了。这是因为 Python 中的所有类都是类的子类。

2.Python 是带有类元组的 issubclass()

现在让我们试着把看作一组类。仔细看下面的例子。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

issubclass() with Tuple Of Classes – Output

这里我们再次举了同一个继承的例子。如前所述,这个时间是作为一个类对象元组传递的。在这种情况下,该函数检查传递的类是否是 classinfo 元组中任何一个类对象的子类。

对于第一个结果,显然不是任何 str 、 list 或 tuple 类的子类。所以我们得到了一个。

在下一个例子中,男人也不是 str 或 list 的子类,而是人类的子类。因此,我们得到真实的结果。

最后,对于最后一种情况,我们得到 True ,因为是它自身的子类。这是因为在 Python 中,每个类都是自身的子类。

今天就到这里吧。我们学习了 Python 方法。

如果你还有其他问题,请写在下面的评论里。

  • Pythonissubclass()–Python 2 文档,
  • issubclass()–Python 3 文档,
  • Python 历史与设计:为什么 issubclass()而不是 rich comparisons?–stack overflow 问题。

原文:https://www.askpython.com/python/python-iter-function

在本文中,我们将看看如何使用 Python iter()函数。

通常,我们可能想要使用迭代器,它是一个本身加载 Python 对象的对象。但是,与数组或列表不同,迭代器只是在需要时加载对象。

这被称为延迟加载,或者基于流的加载。这是非常有用的,如果你想节省内存,而不是一次加载整个对象,如果你的对象非常大!


我们可以使用函数生成一个可迭代对象的迭代器,比如字典、列表、集合等。

使用 Python 函数的基本语法如下:

 

这将从对象生成一个。

我们可以简单地使用一个接一个地加载对象,直到我们得到异常。

另外,注意我们不能使用同一个迭代器再次遍历 iterable。我们必须在迭代之前使用 Python 生成另一个迭代器!


下面是一个使用的简单例子。我们将获取一个包含 10 个元素的列表,并逐个加载它们。

 

输出

 

正如你所看到的,事实上,它从列表中一个接一个地加载元素,直到我们捕捉到异常!


正如我前面提到的,我们可以在任何对象上使用 Python iter(),只要它是可迭代的。

这也适用于自定义对象,只要它满足一些条件。

但是 Python 中任何对象成为 iterable 的条件是什么呢?

  • 该对象的类必须有方法。
  • 对象的类必须有方法。另外,如果达到终止条件,建议您也引发一个异常。

现在,Python 方法将构造迭代器并调用方法。类似地,将在幕后调用方法。

注意:如果这个类没有没有这些方法,那么它必须至少有方法,整数参数从 0 开始。否则,我们会得到一个异常。

现在让我们为一个自定义对象写一个类,它生成整数直到一个极限。

 

输出

 

如您所见,我们确实能够在自定义对象上使用函数。方法创建迭代器对象,然后我们使用更新它。

终止条件是当当前值大于最大值时,此时我们引发一个异常。


我们可以再传递一个参数给 Python 。第二个参数称为元素。

如果我们传递这个 sentinel 元素,迭代器将继续生成值,直到生成的值等于这个 sentinel 值,之后将被引发。

在此之后,迭代器生成将自动停止!

如果您有来自函数的顺序数据,这将非常有用。函数也是必要的,因为如果我们使用 sentinel 参数,第一个参数必须是可调用的。

 

这里,是一个迭代器,它会一直调用,直到返回值等于。

在这里,可以是函数,方法,甚至是 Lambda!

让我们举一个简单的例子,使用 Lambda 作为可调用函数。

我们将接受一个字符串作为输入,并将其传递给 lambda 函数,并一直生成值,直到出现一个换行符 sentinel 元素(’ ')。

 

输出

 

正如您所看到的,迭代器一直生成值,直到遇到换行符!您也可以使用一个循环并捕获异常来完成相同的程序。

如果您想处理函数返回的输出块,这实际上非常有用,所以一定要注意的 sentinel 参数!


在本文中,我们研究了如何使用 Python 中的函数为各种对象生成可迭代对象。

  • iter()上的 Python 官方文档
  • 关于迭代器的 AskPython 文章

原文:https://www.askpython.com/python/built-in-methods/python-iterator

Python 迭代器是一个可以被迭代的对象。任何支持这种迭代的对象都被称为迭代器

现在,你可能会感到困惑。存在另一个名为 iterable 的对象。那是什么?让我们来看看。


任何 iterable 都是可以被迭代的对象。也就是说,我们可以使用迭代器遍历这个对象。

可迭代对象的例子有元组、列表、字符串、数组等。

为了从一个可迭代的构造一个迭代器,我们可以使用方法。

 

输出

 

输出显示我们已经创建了两个迭代器;一个用于列表,一个用于字符串。

现在让我们看看迭代器对象支持的方法。


迭代器对象有两个特殊的方法可以使用,称为 iter()next()

前面使用了方法,从 iterable 中获取 Python 迭代器对象。

现在,为了遍历迭代器,我们可以使用方法来获取 iterable 中的下一个元素。

格式:

 

当没有更多的元素可去时,这将终止并引发一个 异常。

为了说明这一切,让我们打印列表迭代器的所有元素。

 

如您所见,当您超出 iterable 的长度时,这确实会引发异常。

现在,让我们进入下一步:制作我们自己的迭代器!


任何迭代器对象都有可数的元素,可以被遍历。但是怎么才能做出自己的迭代器呢?我们需要创建自己的类。

在 Python 中,构建任何迭代器都涉及到一个叫做迭代器协议的协议。

这个协议包含两个特定的方法,称为和,类似于一般的迭代器方法,但是因为它们在一个类中,所以用这个符号作为前缀和后缀,以示区别。

和方法在内部调用这些方法,因此,为了生成迭代器,我们需要在我们的类中定义我们自己的和方法。

让我们创建一个简单的迭代器,它只遍历一个列表,如果元素数大于 5,就会引发一个 StopIteration 异常。

在我们的方法中,我们还将打印到目前为止迭代的元素数量。

 

输出

 

这里,它打印从 1 到 6 的数字,下一个调用将触发异常,因为我们已经超出了限制。

我们已经制作了自己的迭代器!


我希望你现在对迭代器有了很好的理解,并且在阅读完这篇文章后,关于这个概念的任何疑问都被清除了。如果没有,请在下面的评论区问他们!


  • 关于迭代器的 JournalDev 文章

原文:https://www.askpython.com/python-modules/python-itertools-module

在本文中,我们将看看如何使用 Python itertools 模块。

如果您想创建适合各种任务的不同类型的迭代器,这个模块非常有用。

如果你能学会这个模块的一些方法,这将是你工具箱中非常有用的一个补充!让我们从现在开始,通过一些有用的方法。


在这一节,我们将看看一些有用的生成迭代器的方法。

要使用这个模块,我们必须首先导入它。这个在标准库中已经有了,所以是预装的!

 

使用 Python itertools.chain()将 iterables 链接在一起

Python 方法从多个可迭代对象中生成一个迭代器。

这只是将所有的 iterables 链接到一个序列中,并向该组合序列返回一个迭代器。

此方法的语法如下

 

让我们看一个简单的例子,来理解这一点。

 

这里,我们直接使用迭代器,通过使用遍历它

输出

 

在这里,虽然我们正确地获得了列表的内容,但是没有显示字典值。

为了解决这个问题,我们可以使用来获得一组对。

 

输出

 

事实上,我们现在也打印了值,使用作为 iterable!

使用 Python itertools.count()生成基于计数器的序列

我们可以使用函数 Python 来制作对应于一个计数的迭代器。

 

这里,这是一个迭代器,从 0 开始无限计数。

这使得计数持续增加。我们也可以将其设置为十进制/负数。

例如,如果你想证明你有一个无限循环,你可以运行下面的代码片段,但它是而不是推荐的。

只要确保你能理解是无限计数的。

 

现在,虽然您可能不会立即发现这个函数的用途,但是您可以将它与其他函数结合使用,例如 zip 方法来构造序列。

考虑下面的例子:

 

在这里,您现在可以看到迭代器的威力了!由于迭代器只在需要时产生输出,我们可以用另一个有限的可迭代对象来它,比如一个列表!

现在,它被用来为列表中的条目构建索引,您可以使用输出来验证这一点!

 

现在,如果您想使用 Python 获得迭代器序列的子集,那么您也可以使用只构建迭代器的一部分。

 

输出

 

正如你所观察到的,两个序列是相同的。这表明您可以有多种方法来生成序列!

根据要解决的问题,使用你认为合适的方法!

假设您想要重复一个特定的值,您可以使用为重复的值构造一个迭代器。

例如,如果你想构造一个形式为的序列,其中 I 的范围是从 0 到 10,你可以使用这个函数!

 

输出

 

事实上,我们能够轻松地制作这个序列!

该函数有用的另一个例子是,如果您试图使用 Python 中的 map()构建正方形。

 

输出

 

看看我们用构建它有多容易?

使用 itertools.tee()克隆序列

还有一个有用的函数叫做,它克隆一个序列,并产生两个序列。

 

这基于 Linux tee 命令,该命令克隆其输出。

这里,当您使用克隆一个序列时,您不能再次使用同一个迭代器。因此,使用该功能时必须非常小心!

 

输出

 

事实上,我们可以看到两个克隆序列,具有相同的输出!

使用 itertools.cycle()遍历序列

函数提供了一个我们可以无限循环的迭代器!

如果您希望在应用程序中不断切换状态,这将非常有用。

考虑灯泡的两种状态:“开”和“关”。

你可以构造一个迭代器,每当开关被按下时,迭代器就在两种状态之间循环。

 

输出

 

事实上,正如你所看到的,灯泡的状态一直在“开”和“关”这两个值之间循环!

使用 takewhile()和 dropwhile()筛选项目

我们可以使用 Python 函数来过滤序列项,只要条件是。如果条件变为,则停止过滤。

 

这里有一个简单的例子,它过滤数字,只要数字是正数。

 

输出

 

这里,序列在 3 之后停止,因为下一个元素是-1。

类似地,只要条件为就过滤元素,并返回第一个非 false 值之后的所有元素。

 

输出

 

使用组合()构造组合

我们还可以使用 Python 构建组合序列。

 

这里有一个简单的例子:

 

输出

 

如果你想在组合中有连续元素的重复,你可以使用。

 

输出

 

类似地,您可以使用和列出排列。

这就结束了这个模块的一些重要功能。更多功能可以咨询官方文档。


在本文中,我们查看了 Python 模块中的各种函数。根据您的问题,您可以使用多种方法中的一种来快速构建序列!

  • Itertools 模块文档
  • 关于 itertools 模块的 JournalDev 文章

原文:https://www.askpython.com/python-modules/python-json-module

在深入 Python JSON 模块之前,让我们了解一下 JSON 是什么。JSON(JavaScript 对象符号)是一种标准化的格式,允许在互联网上交换数据。

由于这已经成为通过互联网进行信息交换的标准,任何 Python 应用程序使用这种格式发送和接收数据都是有意义的。

Python 内置的 json 模块是将 Python 对象转换成 json 对象的接口。

在本教程中,我们来看看 json 模块中一些最常用的方法。


在进入模块细节之前,让我们理解 JSON 对象是由什么组成的。

这实际上非常类似于 Python 字典,其中有一组 {Key: value} 对。唯一的小区别是 JSON 对象有一个左花括号和右花括号。

下面是一个简单的 JSON 对象的例子

 

JSON 对象可以由各种属性组成,包括字符串、整数甚至列表。

现在我们知道了 JSON 对象是由什么组成的,让我们看看 Python json 模块的方法。


Python 已经准备好了 json 模块,所以不需要使用 pip 进行安装。

要导入这个模块,只需输入

 
 

我们可以使用方法将 Python 对象编码成 JSON 对象。

你可以把想象成将 Python 对象序列化成 Python JSON 对象并返回一个字符串。如果您希望通过互联网传输数据,这是必需的。

下表列出了不同 Python 对象的编码数据。

计算机编程语言JSON格言目标列表元组排列str线intfloatint–&float派生枚举数字真实的错误的

它将任何可以序列化的 Python 对象作为参数,并返回一个字符串。

格式:

 

这里,是一个 Python 对象,如列表、字符串等,可以序列化。它不能是函数/lambda 等。

 

输出

 

如果对象不可序列化,该方法将引发一个。

 

字典的分类关键字

如果我们将一个 Python 字典传递给,我们可以指定另一个参数,这将使 Python json 对象拥有排序的键。

 

输出

 

我们的输出确实有排序的键。

:由于数字被编码成 JSON,所以被转换成字符串。使用适当的方法,它将被正确地反序列化回整数。

漂亮地打印 Python JSON 对象

我们可以使用的参数来指定缩进级别。通常,会让输出看起来很不错。

 

输出

 

JSON . Dump()–转储到文件中

我们也可以将一个对象转储到一个文件中,如果你希望以后使用它,使用另一种方法。

格式:

 

方法接收数据并将其写入一个文件对象。

因此您可以打开一个新文件,并使用写入该文件对象

 

输出

 

如您所见,Python 对象确实被转储到文件中。

现在,让我们把第一个例子中显示的 JSON 对象存储到一个文件中。

 

输出

 

类似于将 Python 对象编码成 JSON 对象,我们也可以反过来,将 JSON 对象转换成 Python 对象。这被称为反序列化

我们可以使用方法和来做到这一点,类似于和。

json.loads()

这将使用编码的 json 对象转换回 Python 对象。

 

输出

 

我们已经成功地获得了我们的旧列表对象!

JSON . load()–从文件反序列化

这执行了与相反的操作,将 json 对象从文件转换回 Python 对象。

让我们拿我们的文件,用这个方法取回数据。

 

输出

 

事实上,我们再次获得了我们存储在文件中的旧的 JSON 对象!

现在我们已经介绍了这个模块最常用的方法,让我们进入下一步:创建我们自己的 JSON 编码器!


模块使用一个名为的编码器,它使用上表中的规则对 Python 对象进行编码。

然而,它并不编码所有的 Python 对象,根据我们面临的问题,我们可能需要编写自己的 JSON 编码器,以一种特殊的方式编码这些对象。

为此,我们必须编写自定义的编码器类。姑且称之为。这个必须扩展类的,以增加它现有的特性。

在这个演示中,我们将使用 numpy 数组,并将它们转换成 Python JSON 对象。现在 json 模块默认情况下不能处理 numpy 数组,所以如果你试图在没有扩展类的情况下转换 numpy 数组,你会得到一个 TypeError:

 

让我们编写这个类,通过在我们的处理程序方法中将 numpy 数组转换成 Python 列表,将它序列化并编码成 json 对象。

 

最后,我们通过将类名传递给的参数对其进行编码。

因此,编码调用将是:

 

输出

 

事实上,我们的自定义编码器现在可以将 numpy 数组转换成 JSON 对象!我们现在已经完成了第一个复合编码器。

您可以扩展这个功能,为您的特定用例编写不同的编码器!


在本文中,我们学习了如何使用 Python 的模块来进行各种涉及 JSON 对象的操作。


  • JSON 模块上的官方 Python 文档

原文:https://www.askpython.com/python/python-keywords

Python 关键字是保留字。python 解释器使用它们来理解程序。关键字定义了程序的结构。我们不能用关键字来命名程序实体,如变量、类和函数。


Python 有很多关键词。随着 python 中新特性的出现,这个数字还在继续增长。

在撰写本教程时,Python 3.10.5 是当前的稳定版本。Python 3.10.5 版本中有 35 个关键字。

我们可以使用 python 解释器帮助实用程序获得关键字的完整列表。

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python Keywords List

我们可以使用“关键字”模块来获取关键字列表。

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python 3.9 引入了软关键字的概念。我们可以使用软关键字作为变量名,它们只在程序的上下文中得到特殊处理。截至目前,有两个软关键词——合并案件。我们可以使用关键字模块来确认这一点。

 

为什么我们需要软文关键词?

我认为引入软关键字的想法是为了避免破坏现有代码,以防它们被用作标识符。这将给开发人员足够的时间对他们的代码进行适当的修改。

我们可以使用 keyword.iskeyword() 函数来检查一个字符串是否是保留关键字。

比如 print 在 python 中是关键字吗?

 

所以,print 在 python 中不是关键字。


我们将在以后的教程中介绍所有的 python 关键字。让我们了解一下这些关键词的用途和用法。

| 序列号 | 关键字 | 描述 | 例子 |
| one | 错误的 | bool 类的实例。 | x =假 |
| Two | 班级 | 关键字来定义类。 | Foo 类:通过 |
| three | 从 | 子句从模块导入类 | 从集合导入订单直接 |
| four | 或者 | 逻辑算子 | x =真或假 |
| five | 没有人 | 非类型对象的实例 | x =无 |
| six | 继续 | continue 语句,用于嵌套的 for 和 while 循环中。它继续最近的封闭循环的下一个循环。 | numbers = numbers 中数字的范围(1,11):如果 number == 7:继续 |
| seven | 全球的 | 全局语句允许我们修改当前范围之外的变量。 | x = 0 def add():全局 x x = x + 10 add() print(x) # 10 |
| eight | 及格 | Python pass 语句用于不做任何事情。当我们需要一些语句但不想执行任何代码时,这是很有用的。 | def foo():通过 |
| nine | 真实的 | 布尔类的实例。 | x =真 |
| Ten | 极好的 | 用于定义函数的关键字。 | def bar(): print(“Hello “) |
| Eleven | 如果 | if 语句用于编写条件代码块。 | x = 10 如果 x%2 == 0: print(“x 是偶数”)#打印” x 是偶数” |
| Twelve | 上升 | raise 语句用于在程序中引发异常。 | def square(x):如果 type(x)不是 int:raise type error(" Require int argument ")print(x * x) |
| Thirteen | 和 | 用于 and 运算的布尔运算符。 | x = True y = Falseprint(x 和 y) # False |
| Fourteen | 是吗 | del 关键字用于删除变量、列表、对象等对象。 | s1 = " Hello " print(S1)# Hello del S1 print(S1)# name 错误:未定义名称’ S1 ’ |
| Fifteen | 进口 | import 语句用于将模块和类导入我们的程序。 | #从集合中的模块导入类导入顺序直接#导入模块导入数学 |
| Sixteen | 返回 | return 语句在函数中用于返回值。 | def add(x,y):返回 x+y |
| Seventeen | 如同 | Python as 关键字用于为 import、except 和 with 语句提供名称。 | 从集合导入顺序直接作为 od 导入数学作为 m 打开(’ data.csv ')作为文件:pass #对文件进行一些处理 try: pass 除了 TypeError 作为 e: pass |
| Eighteen | 艾列弗 | 对于“else if”运算,elif 语句总是与 if 语句一起使用。 | x = 10 如果 x > 10: print(‘x 大于 10’) elif x > 100: print(‘x 大于 100’) elif x == 10: print(‘x 等于 10’) else: print('x 小于 10 ‘) |
| Nineteen | 在 | Python in 关键字用于测试成员资格。 | l1 = [1,2,3,4,5]if 2 in L1:print(’ list contains 2 ‘)s = ’ ABCD ’ if ’ a in s:print(’ string contains a ‘) |
| Twenty | 尝试 | Python try 语句用于编写异常处理代码。 | x = " try:I = int(x)except value error as AE:print(AE)#以 10 为基数的 int()的无效文字: " |
| Twenty-one | 维护 | assert 语句允许我们在程序中插入调试断言。如果断言为真,程序继续运行。否则抛出 AssertionError。 | def divide(a,b):断言 b!= 0 返回 a / b |
| Twenty-two | 其他 | else 语句与 if-elif 条件一起使用。它用于在前面的条件都不为真时执行语句。 | 如果为假:传递 else: print(‘这将总是打印’) |
| Twenty-three | 是 | Python is 关键字用于测试两个变量是否引用同一个对象。这与使用==运算符相同。 | fruits =[’ apple ‘]fruits 1 =[’ apple ']f = fruits print(f 是水果)# True print(fruits1 是水果)# False |
| Twenty-four | 在…期间 | while 语句用于运行一组语句,直到表达式为真。 | i = 0,而 i < 3:打印(i) i+=1#输出# 0 # 1 # 2 |
| Twenty-five | 异步ˌ非同步(asynchronous) | Python 3.5 中引入的新关键字。这个关键字总是在 couroutine 函数体中使用。它与 asyncio 模块和 await 关键字一起使用。 | import async io import Time async def Ping(URL):print(f ’ Ping Started for { URL } ')await async io . sleep(1)print(f ’ Ping Finished for { URL } ‘)async io . gather(Ping(’ ask python . com '),ping('python.org ')),if _ _ name _ _ = ’ _ _ main _ _ ':then = Time . Time()loop = async io . get _ event _ loop()loop . run _ until _ complete(main())now = Time . Time()print(f ’ |
| Twenty-six | 等待 | Python 3.5 中用于异步处理的新关键字。 | 上面的例子演示了 async 和 await 关键字的使用。 |
| Twenty-seven | 希腊字母的第 11 个 | lambda 关键字用于创建 lambda 表达式。 | multiply = lambda a,b: a * b print(multiply(8,6)) # 48 |
| Twenty-eight | 随着 | Python with 语句用于用上下文管理器定义的方法包装块的执行。该对象必须实现 enter()和 exit()函数。 | 用 open('data.csv ')作为 file: file.read() |
| Twenty-nine | 除…之外 | Python except 关键字用于捕获 try 块中抛出的异常,并对其进行处理。 | 请查看 try 关键字示例。 |
| Thirty | 最后 | finally 语句与 try-except 语句一起使用。finally 块中的代码总是被执行。主要用于关闭资源。 | def division(x,y): try:返回除 ZeroDivisionError 之外的 x / y 作为 e: print(e) return -1 最后:print(‘这将始终执行’)print(division(10,2)) print(division(10,0))# Output 这将始终执行 5.0 除以零这将始终执行-1 |
| Thirty-one | 非局部的 | nonlocal 关键字用于访问在块范围之外定义的变量。这在嵌套函数中总是用来访问外部定义的变量。 | def outer(): v = 'outer’def inner():非本地 v v = 'inner’inner() print(v)outer() |
| Thirty-two | 产量 | Python yield 关键字是 return 关键字的替代。这用于从函数中逐个返回值。 | def multiplyByTen(* kwargs):for I in kwargs:yield I * 10a = multiplyByTen(4,5,)# a 是生成器对象,一个迭代器#显示 a 中 I 的值:print(i)# Output 40 50 |
| Thirty-three | 破裂 | break 语句与嵌套的“for”和“while”循环一起使用。它停止当前循环的执行,并将控制传递到循环的开始处。 | number = 1,而 True: print(number) number += 2,如果 number > 5: break print(number) #从不执行# Output 1 3 5 |
| Thirty-four | 为 | Python for 关键字用于迭代序列或可迭代对象的元素。 | S1 = ’ Hello ’ for c in S1:print©# Output H e l l o |
| Thirty-five | 不 | not 关键字用于布尔 not 运算。 | x = 20 如果 x 不是 10: print(‘x 不等于 10’)x = True print(不是 x) # False |


Python 关键字有特定的功能。python 解释器使用它们来理解代码并执行它们。Python 中有 35 个关键字。随着新功能的出现,这个数字还会继续增长。

你对 python 中的关键字有了一个简单的概念。现在,您应该通过下面的教程来了解 Python 编程的基础。

  • Python 标识符
  • Python 变量
  • Python 数据类型
  • Python 语句
  • Python 函数
  • Python 关键字模块
编程小号
上一篇 2025-02-07 17:33
下一篇 2025-01-25 09:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/37081.html