本文转载自公众号Python编程时光(ID:Python-Time)

小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来。现在已经积攒了一些了,最近打算整理一波,发出来给大家补补。一篇只分享五个,有时间了就整理。

省略号也是对象

... 这是省略号,在Python中,一切皆对象。它也不例外。在 Python 中,它叫做 Ellipsis 。在 Python 3 中你可以直接写…来得到这玩意。

>>> ...
Ellipsis
>>> type(...)
<class 'ellipsis'>

而在 2 中没有…这个语法,只能直接写Ellipsis来获取。

>>> Ellipsis
Ellipsis
>>> type(Ellipsis)
<type 'ellipsis'>
>>>

它转为布尔值时为真

>>> bool(...)
True

最后,这东西是一个单例。

>>> id(...)
4362672336
>>> id(...)
4362672336

这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。

在网上只看到这个 用 ... 代替 pass ,稍微有点用,但又不是必须使用的。

try:
    1/0
except ZeroDivisionError:
    ...

类的首字母不一定是大写

在正常情况下,我们所编写的所见到的代码,好像都默许了类名首字母大写,而实例用小写的这一准则。但这并不是强制性的,即使你反过来的也没有关系。

但有一些内置的类,首字母都是小写,而实例都是大写。

比如 bool 是类名,而 True,False 是其实例;比如 ellipsis 是类名,Ellipsis是实例;还有 int,string,float,list,tuple,dict 等一系列数据类型都是类名,它们都是小写。

增量赋值的性能更好

诸如 += 和 *= 这些运算符,叫做 增量赋值运算符。这里使用用 += 举例,以下两种写法,在效果上是等价的。

# 第一种
a = 1 ; a += 1

# 第二种
a = 1; a = a + 1

+= 其背后使用的魔法方法是 __iadd__,如果没有实现这个方法则会退而求其次,使用 __add__ 。

这两种写法有什么区别呢?

用列表举例 a += b,使用 __add__ 的话就像是使用了a.extend(b),如果使用 __add__ 的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。

所以在能使用增量赋值的时候尽量使用它。

and 和or 的取值顺序

and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。

如果一个or表达式中所有值都为真,Python会选择第一个值,而and表达式则会选择第二个。

>>>(2 or 3) * (5 and 7)
14  # 2*7

如何修改解释器提示符

这个当做今天的一个小彩蛋吧。应该算是比较冷门的,估计知道的人很少了吧。

正常情况下,我们在 终端下 执行Python 命令是这样的。

>>> for i in range(2):
...     print (i)
...
0
1

你是否想过 >>> 和 ... 这两个提示符也是可以修改的呢?

>>> import sys                      
>>> sys.ps1                         
'>>> '                              
>>> sys.ps2                         
'... '                              
>>>                                 
>>> sys.ps2 = '---------------- '                 
>>> sys.ps1 = 'Python编程时光>>>'       
Python编程时光>>>for i in range(2):     
----------------    print (i)                    
----------------                                 
0                                   
1

(本文为AI科技大本营转载文章,转载请联系原作者)

实习生招募

推荐阅读:

  • 详解爱奇艺ZoomAI视频增强技术的应用 | 公开课笔记

  • DOTA2人机决战:2:0!OpenAI击败世界冠军OG

  • Python的10个“秘籍”,这些技术专家全都告诉你了

  • 从头构建恶性肿瘤检测网络 | 100行Python代码理解深度学习关键概念

  • 马云再谈 996:真正的 996 与被剥削无关

  • 漫画:图的 “最短路径” 问题 | 技术头条

  • 从 0 到管理 200 人,这位程序员是如何做到的? | 程序员有话说

  • 4000万假币流入波场, 发生在凌晨的BTT假币攻击事件始末及细节披露

  • 程序员为什么都爱穿冲锋衣?(最全总结)

❤点击“阅读原文”,查看更多精彩文章。

谈谈Python那些不为人知的冷知识(一)相关推荐

  1. 谈谈Python那些不为人知的冷知识(二)

    本文转载自Python的编程时光(ID:Python-Time) 小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来. 从上一篇的分享来看,仍然有不少 Pythoner 对这些冷知识存在盲 ...

  2. Python那些不为人知的冷知识!(建议收藏)

    01. 省略号也是对象 ... 这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写-来得到这玩意. > ...

  3. 链式比较、奇怪的字母、有趣的import...Python冷知识(六)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第六篇. 谈谈 Python 那些不为人知的冷知识(一) 谈谈 Python 那些不为人知的冷知识(二) 谈谈 P ...

  4. 空字符串计数、让字典可排序...Python冷知识(五)

    本文转载自Python编程时光(ID: Python-Time) 冷知识系列,直至今日,已经更新至第五篇.前四篇给你准备好了,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) ...

  5. 反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第四篇.前三篇传送门在此,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) 谈谈 Pyth ...

  6. for死循环、怪异字符串、两次return……Python冷知识(三)

    本文转载自Python编程时光(ID:Python-Time) 冷知识系列,已经更新至第三篇.前两篇传送门小明给你准备好了,还没阅读的可以学习一下. 谈谈 Python 那些不为人知的冷知识(一) 谈 ...

  7. 左撇子的人怎么使用计算机,小漫画讲述冷知识,左撇子很苦恼,电脑自动弹窗发明者是谁?...

    原标题:小漫画讲述冷知识,左撇子很苦恼,电脑自动弹窗发明者是谁? 这个世界上仍旧隐藏着很多不为人知的冷知识,因为这些知识的领域太过于偏僻而不为大众所熟知. 外国画师将一些被人类忽视或者是无从得知的冷知 ...

  8. python冷知识_python冷知识

    省略号也是对象 在python中一切皆对象,省略号(...)也是一个对象注意:只能是三个点的省略号 在python中叫做Ellipsis 在python3中能直接得到它 print(...) prin ...

  9. 你所不知道的 Python 冷知识!(建议收藏)

    01. 省略号也是对象 ... 这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写-来得到这玩意. > ...

最新文章

  1. 在ubuntu上安装最新稳定版本的node及npm
  2. Farseer:一个用于Silverlight和XNA的开源物理引擎
  3. 玩转 React(四)- 创造一个新的 HTML 标签
  4. day10【过渡】分布式理论
  5. 解决跨浏览器兼容的CSS编码准则
  6. 分享最新36款高质量免费英文字体
  7. java 值班管理_​运维告警的值班管理
  8. CAD-Arcgis 坐标校正
  9. mongodb默认的用户名密码_MongoDB 用户名密码登录
  10. hr标签---中心线:设置颜色
  11. Adams隐式4阶方法解常微分方程,python实现
  12. PC微信低版本限制登录怎么办?
  13. 【Natural Language Processing】语言模型训练工具Srilm的安装及使用简介
  14. STL之容器stack
  15. 【多项式最小二乘拟合实验】
  16. python之excel处理画图
  17. ESXI精简模式虚拟磁盘空间释放
  18. 横向滚动 且宽度不固定
  19. 有什么好用的OFD阅读器?这两种阅读工具很好用
  20. window ftp linux服务器,linux下怎么访问windows下的ftp服务器

热门文章

  1. 互联网+和创业潮,互联网+前提条件是什么?互联网+做什么?
  2. 在Linux下如何安装配置SVN服务
  3. 配置隧道模式的IPSec.×××
  4. Spring Cloud(二)Consul 服务治理实现
  5. linux安装ActiveMQ
  6. WebService之soap类型的服务和rest类型的服务
  7. Install Java 8 Ubuntu
  8. Cocos2d-x学习笔记(三十)之 游戏存档
  9. C#用 SendKyes 结合 Process 或 API FindWindow、SendMessage(PostMessage) 等控制外部程序
  10. 【组队学习】【35期】数据可视化(Matplotlib)