布尔类型、is、is not、==、in、not in和断言assert

布尔类型

  • 布尔值只有两个值:True和False,可以将这两个值翻译成“真”和“假”。
    None,0,"",(),[],{}解释成布尔值中的False
  • 在python语言底层,会将布尔值True看作1,将布尔值False看作0,也可以直接将True和False当成1和0用,所以True + False + 20的计算结果为21。
  • 另外可以拥bool函数将其他类型的值转换为布尔类型的值
bool("")  >>>> False
bool(0)  >>>> False
bool([])  >>>> False
bool(None)  >>>> False
bool("Hello")  >>>> True

可以看到,"",0,[],None会默认为False的值,通过bool函数的转换,会变成真正的布尔值。不过这些值是不能直接和布尔值比较的,例如,不能直接使用“[] == False”,正确的做法是先用bool函数将其转为布尔值,然后在比较:

print([] == False)  # False
print([] == True)  # False
print(bool([]) == False)  # True

is、is not、==、in、not in

  • 用于判断两个值是否相等,需要使用“==”运算符,也就是两个等号
  • 用于判断两个对象是否相等,需要使用is和is not运算符
  • 用于判断某个值是否属于一个容器,需要使用in和not in运算符
x = y = [1,2,3]
z = [1,2,3]
k = 1
print(x == y)  # True
print(x == z)  # True

print(x is y)  # True
print(x is z)  # False

print(k in x)  # True
print(4 in x)  # False

断言assert

断言只要不满足条件就会直接抛出异常。只要是监测程序在某个地方是否满足条件,如果不满足条件,应该及时通知开发人员,而不是将这些bug隐藏起来,直到关键的时刻再崩溃。

value = 30
assert 10 
    assert 10 

你可能感兴趣的:(布尔类型、is、is not、==、in、not in和断言assert)