疯狂的Python-16(站错队的布尔型)

疯狂的Python-16(站错队的布尔型)_第1张图片

一些有趣的鲜为人知的Python特性集合

无论你是Python新手还是Python老手,我相信,这个系列的文章都会让你获益良多!

阅读此系列任何文章前请务必观看:疯狂的Python-目录大纲


▶ 站错队的布尔型

1.

# 一个计算列表里布尔型和Int型数量的例子
mixed_list = [False, 1.0, "some_string", 3, True, [], False]
integers_found_so_far = 0
booleans_found_so_far = 0

for item in mixed_list:
    if isinstance(item, int):
        integers_found_so_far += 1
    elif isinstance(item, bool):
        booleans_found_so_far += 1

Output:

>>> booleans_found_so_far
0
>>> integers_found_so_far
4

2.

another_dict = {}
another_dict[True] = "JavaScript"
another_dict[1] = "Ruby"
another_dict[1.0] = "Python"

Output:

>>> another_dict[True]
"Python"

3.

>>> some_bool = True
>>> "crazy"*some_bool
'crazy'
>>> some_bool = False
>>> "crazy"*some_bool
''

:bulb: 解释:

  • 布尔型(Booleans)是 int类型的一个子类型(bool is instance of int in Python)

    >>> isinstance(True, int)
    True
    >>> isinstance(False, int)
    True
    
  • True的整形值是1False的整形值是0

    >>> True == 1 == 1.0 and False == 0 == 0.0
    True
    
  • StackOverFlow有针对这个问题背后原理的解答。


你可能感兴趣的:(疯狂的Python-16(站错队的布尔型))