iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python隐藏的特性有哪些
  • 214
分享到

Python隐藏的特性有哪些

2023-06-15 23:06:00 214人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python隐藏的特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python隐藏的特性有哪些”吧!1...是的,你没看错,在Python中...是一个有效的构造。..

本篇内容主要讲解“python隐藏的特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python隐藏的特性有哪些”吧!

1...

是的,你没看错,在Python中...是一个有效的构造。...是称为省略号的单例对象。如果你把它输入到Python解释器中,你可以看到它:

>>> ... Ellipsis

根据官方文档,省略号是“一种特殊值,主要与用户定义容器数据类型的扩展切片语法结合使用”。它有两个主要的用例。一种是在空函数中充当占位符体。另一个是Numpy,作为一个切片项,就像文档中描述的那样。

函数的占位符

def my_awesome_function():     ...

这相当于:

def my_awesome_function():     Ellipsis

还有这个:

def my_awesome_function():     pass

注意,我不是说pass =…我只是说作为函数体,结果是一样的。事实上,您可以使用任何东西作为占位符。

Numpy

下面的代码基本上意味着创建一个矩阵数组。每个矩阵是3×3。然后获取所有最内部矩阵的第二列(numpy数组基于0)。

import numpy as np >>> array = np.arange(27).reshape(3, 3, 3) >>> array array([[[ 0,  1,  2],         [ 3,  4,  5],         [ 6,  7,  8]],         [[ 9, 10, 11],         [12, 13, 14],         [15, 16, 17]],         [[18, 19, 20],         [21, 22, 23],         [24, 25, 26]]]) >>> array[..., 1]  array([[ 1,  4,  7],        [10, 13, 16],        [19, 22, 25]]) >>> # This is equivalent to >>> array[:, :, 1]  array([[ 1,  4,  7],        [10, 13, 16],        [19, 22, 25]])

2一个优雅的解包

可迭代解包是一种非常方便的特性,已经存在一段时间了。大多数人使用它来解包包含多个项的可迭代对象。例如,考虑以下用例。

>>> a, *b, c = range(1, 11) >>> a 1 >>> c 10 >>> b [2, 3, 4, 5, 6, 7, 8, 9]

或者是:

>>> a, b, c = range(3) >>> a 0 >>> b 1 >>> c 2

但有一个很好的用例,很多人都没有利用它,那就是拆封单个迭代器。为什么这很有用?恕我直言,它使代码更优雅了一些。

而不是这样做:

>>> lst = [1] >>> a = lst[0] >>> a 1 >>> (a, ) = lst >>> a 1

你可以这样做:

>>> lst = [1] >>> [a] = lst >>> a 1

我知道这可能看起来很傻,但至少对我来说,它看起来更优雅。

3你能让这个列表躺平吗?

扁平化列表有几种方法。最简单的是使用列表理解。

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> flattened = [elem for sublist in l for elem in sublist] >>> flattened [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果您更倾向于函数式编程,您可以使用减速器。

>>> from functools import reduce >>> reduce(lambda x,y: x+y,l) [1, 2, 3, 4, 5, 6, 7, 8, 9]

然而,还有另一种方法。你可以用sum函数!

>>> sum(l, []) [1, 2, 3, 4, 5, 6, 7, 8, 9]

这是因为sum函数遍历列表中的每个元素,并将它们与作为第二个参数传递的默认值连接起来。因为Python中的列表可以用+操作符连接,所以你得到的结果是这样的:

>>> sum(l, []) ==> [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]

尽管这个技巧很高明,但它绝不是可读的。而且,它的性能也很糟糕。

4else

else语句可以用于几个目的。很少有人知道,但是你可以在经典的“if else”块之外使用它。Python允许它用于循环和异常块。

循环

Python有两个不同的循环,for和while。两者都可能是“坏的”。也就是说,如果满足了某个条件,就可以跳出循环。例如:

In [7]: while a < 10:    ...:     if a == 3:    ...:         print("a == 3. exiting loop.")    ...:         break    ...:     a += 1    ...:  a == 3. exiting loop.

现在,假设我们要找一个特定的条件。如果满足该条件,则将结果保存在一个名为found的标志中。然后,如果我们没有找到它,我们打印一条消息。

found = False a = 0  while a < 10:     if a == 12:         found = True     a += 1 if not found:     print("a was never found")

因为a永远不会变成12,所以程序输出a永远不会找到。

好,但是我们在这里怎么用else呢?

else可以用来替换标志。基本上,我们实际需要的是运行循环,如果没有找到,则打印一条消息。

a = 0  while a < 10:     if a == 12:         break     a += 1 else:     print("a was never found")

由于它适用于任何循环,所以您可以使用for而不是while。

for a in range(10):     if a == 12:         break     a += 1 else:     print("a was never found")

异常

Python中的else是如此通用,你甚至可以使用try&hellip;except。这里的思想是捕获异常不发生的情况。

In [13]: try:     ...:     {}['lala']     ...: except KeyError:     ...:     print("Key is missing")     ...: else:     ...:     print("Else here")     ...:  Key is missing

在这个例子中,我们尝试在一个空字典中查找名为“lala”的键。由于“lala”不存在,代码将引发一个KeyError异常。当我在IPython中运行这段代码时,得到了预期的结果。

如果程序没有引发异常呢?

In [14]: try:     ...:     {'lala': 'bla'}['lala']     ...: except KeyError:     ...:     print("Key is missing")     ...: else:     ...:     print("Else here")     ...:  Else here

现在我们可以看到它的实际应用。{' lala ': ' bla '}[' lala ']块不会引发KeyError,所以else就起作用了。

5比较

这是我最喜欢的一个,老实说,没有那么隐蔽。与许多编程语言(如Java、C或c++)不同,Python允许链式比较运算符。假设你有一个变量x,它的值是10。现在,假设你想断言x在一个范围内,比如5..20。你可以这样做:

In [16]: x = 10 In [17]: if x >= 5 and x <= 20:     ...:     print("x is within range")     ...: else:     ...:     print("x is outside range")     ...:  is within range

事实证明,这可以通过将运算符链接起来来简化。所以,我们可以重构代码为:

In [18]: if 5 <= x <= 20:     ...:     print("is within range")     ...: else:     ...:     print("x is outside range")     ...:  is within range

这段代码实现了完全相同的结果,但它更加优雅。您可以使用任何一种比较运算符进行链。

>>> x = 10 >>> 20 == x > 1 False >>> 25 > x <= 15 True >>> x < 20 < x*10 < 1000 True

到此,相信大家对“Python隐藏的特性有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python隐藏的特性有哪些

本文链接: https://www.lsjlt.com/news/281852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python隐藏的特性有哪些
    本篇内容主要讲解“Python隐藏的特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python隐藏的特性有哪些”吧!1...是的,你没看错,在Python中...是一个有效的构造。.....
    99+
    2023-06-15
  • Python有哪些隐藏特性
    这篇文章主要讲解了“Python有哪些隐藏特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些隐藏特性”吧!案例一:案例二:案例三:很好理解, 对吧 说明:这些行为是由于 C...
    99+
    2023-06-02
  • CSS3中的隐藏特性有哪些
    这篇文章主要介绍“CSS3中的隐藏特性有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS3中的隐藏特性有哪些”文章能帮助大家解决问题。 CSS3为web设...
    99+
    2024-04-02
  • Python隐藏功能有哪些
    这篇文章主要为大家展示了“Python隐藏功能有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python隐藏功能有哪些”这篇文章吧。1. 比较运算符链接要检查a中的值是否在0到100的范围...
    99+
    2023-06-16
  • Python有哪些隐藏技巧
    本篇内容主要讲解“Python有哪些隐藏技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python有哪些隐藏技巧”吧!1. ... 对象没错,你没看错,就是 "..."在...
    99+
    2023-07-06
  • jsp隐藏标签的属性有哪些
    jsp隐藏标签的属性有以下几种:1. id属性:用于指定标签的唯一标识符。2. class属性:用于指定标签的类名,可以用于CSS样...
    99+
    2023-09-13
    jsp
  • Python中的隐藏技巧有哪些
    这篇文章主要介绍了Python中的隐藏技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中的隐藏技巧有哪些文章都会有所收获,下面我们一起来看看吧。1、功能属性这种 hack 类似于类和对象概念...
    99+
    2023-07-05
  • Python中的隐藏彩蛋有哪些
    本篇内容介绍了“Python中的隐藏彩蛋有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、使用re.DEBUG查看正则表达式的匹配过程...
    99+
    2023-06-17
  • Python的特性有哪些
    这篇文章主要讲解了“Python的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的特性有哪些”吧! 面向对象的特性面向对象的程序设计解决了结构化程序设计的复杂...
    99+
    2023-06-02
  • ReactDOM隐藏特性详解
    目录前言React DevTools 的原理渲染阶段FiberRoot/FiberNodememoizedState 与 React Hooks实践:突破 useDebugValue...
    99+
    2024-04-02
  • css3中显示隐藏特效代码有哪些
    这篇文章主要介绍了css3中显示隐藏特效代码有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 代码:1、“d...
    99+
    2024-04-02
  • Python的特性都有哪些
    本篇文章为大家展示了Python的特性都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言:在了解 Python 的特性之前,我们首先要了解 Python 编程语言是什么。Python 编程语...
    99+
    2023-06-22
  • PS隐藏技巧有哪些
    这篇文章给大家分享的是有关PS隐藏技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  1、版权信息嵌入图片  为了避免被盗图,现在很多摄影师在发布作品前都会打上自己的水印...
    99+
    2024-04-02
  • Mac隐藏技巧有哪些
    这篇文章主要介绍“Mac隐藏技巧有哪些”,在日常操作中,相信很多人在Mac隐藏技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mac隐藏技巧有哪些”的疑惑有所帮助!接...
    99+
    2023-04-22
    mac
  • Python Sklearn中超实用的隐藏功能有哪些
    这篇文章主要介绍“Python Sklearn中超实用的隐藏功能有哪些”,在日常操作中,相信很多人在Python Sklearn中超实用的隐藏功能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-07-02
  • css中隐藏命令有哪些
    这篇“css中隐藏命令有哪些”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“css中隐藏命令有哪些”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。cs...
    99+
    2023-06-06
  • Python 3.9新特性有哪些
    本篇内容主要讲解“Python 3.9新特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python 3.9新特性有哪些”吧! 字典合并 一个非常优...
    99+
    2024-04-02
  • Python高级特性有哪些
    本篇内容介绍了“Python高级特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  切片  可以对list, tuple, stri...
    99+
    2023-06-01
  • python集合有哪些特性
    python中集合的特点有以下几点集合中的元素不能出现重复;集合中的元素是无次序的;集合中的元素没有索引;使用set()函数和{}创建集合,其元素必须是不可变的;而使用set()函数创建的集合,其元素必须是可变的;...
    99+
    2024-04-02
  • CSS隐藏文字的方法有哪些
    这篇文章主要介绍“CSS隐藏文字的方法有哪些”,在日常操作中,相信很多人在CSS隐藏文字的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS隐藏文字的方法有哪些”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作