Python 关键字
or & and & not
为了提高代码的可读性,Python 分别使用 or
代替了 "或",and
代替了 "与",not
代替了 "非",这些运算符常用于条件判断式。比如:
print(not False) # True
print(False or False) # False
print(False or True) # True
print(True and False) # Fale
print(True and True) # True
print(1 not in [1, 2, 3]) # False
除此之外,or
和 and
还有一个延伸用法。比如,对于两个数值型而言,x or y
可以返回两者中的较小值,而 x and y
可以返回两者中的较大值。如:
print(2 or 3) # 2
print(3 and 5) # 5
pass
pass
关键字充当 Python 语法上的占位符。比如:
if x >= 10:
pass
else:
print("x >= 10")
或者将一些仅声明但未给出实现的函数 foo
加上 pass
以保持语法完整。比如:
def foo(): # TODO waiting for implementing
pass
None
None
在 Python 中作为一个特殊的常量,它的类型为 NoneType
。它代表语义上的空值,但自身既不是 0
,也不是 False
。
None
可以用于设计部分函数 ( partial function )。比如说,当某个函数 f
选择不去对某些输入进行处理时,它可以不选择抛出异常或者是其它预设好的默认值,而是简单地以 None
代替。
def div(x, y):
if y == 0:
return None
else:
return x / y
print(div(3, 0))
这种设计思想被广泛用于函数式编程。比如:Scala:函数式编程下的异常处理 - 掘金 (juejin.cn)
*is & ==
is
关键字常和 ==
放到一起去讨论。两者的主要区别是:
==
进行的是值比较,强调相等。is
进行的是引用比较,强调相同。在 Python 中,可以通过内置的 id()
函数获得某个对象的全局标识号,该标识号的作用相当于 C 语言的地址。若两者的标识号相同,则认为两者的引用相同。此时使用 is
比较的结果为 True
,否则为 False
。
而对象的 ==
操作符底层指向 __eq__()
方法,它和 __hash__()
方法 成对出现。同理,还可以为对象定义 >=
,