乐趣区

关于python:Python中5个你可以能不知道的知识

1、省略号也是对象
… 这是省略号,在 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:
    ...

2、类的首字母不肯定是大写
在失常状况下,咱们所编写的所见到的代码,如同都默认了类名首字母大写,而实例用小写的这一准则。但这并不是强制性的,即便你反过来的也没有关系。

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

比方 bool 是类名,而 True,False 是其实例;
比方 ellipsis 是类名,Ellipsis 是实例;
还有 int,string,float,list,tuple,dict 等一系列数据类型都是类名,它们都是小写。
3、增量赋值的性能更好
诸如 += 和 *= 这些运算符,叫做 增量赋值运算符。

这里应用用 += 举例,以下两种写法,在成果上是等价的。

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

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

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

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

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

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

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

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

'''
学习中遇到问题没人解答?小编创立了一个 Python 学习交换 QQ 群:857662006
寻找有气味相投的小伙伴,互帮互助, 群里还有不错的视频学习教程和 PDF 电子书!'''
>>>(2 or 3) * (5 and 7)
14  # 2*7

5、如何批改解释器提示符
这个当做明天的一个小彩蛋吧。应该算是比拟冷门的,预计晓得的人很少了吧。

失常状况下,咱们在 终端下 执行 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     

以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注 Python 技术大本营,获取更多技能与教程。

退出移动版