0%

Python的一些内建函数和基本句法

二进制

python的bin()函数返回的是符号+'0b'+无符号下的原码,但用x >> i & 1求第i为的二进制表示时,是补码形式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bin(5)
Out[2]: '0b101'
bin(-5)
Out[3]: '-0b101'
bin(-7)
Out[4]: '-0b111'
[ 5 >> i & 1 for i in range(8,-1,-1)]
Out[5]: [0, 0, 0, 0, 0, 0, 1, 0, 1]
for x in [-5,-27,7,15]:
print(x,[x >> i & 1 for i in range(8, -1, -1)])

-5 [1, 1, 1, 1, 1, 1, 0, 1, 1]
-27 [1, 1, 1, 1, 0, 0, 1, 0, 1]
7 [0, 0, 0, 0, 0, 0, 1, 1, 1]
15 [0, 0, 0, 0, 0, 1, 1, 1, 1]

any()all()

说明

any()函数用来判断给定的迭代参数iterable中是否含有True,如果有(只要有一个),则返回True.
函数等价于:

1
2
3
4
5
def any(iterable):
for element in iterable:
if element:
return True
return False

all()函数用来判断给定的迭代参数iterable中是否全部是是True,如果是,则返回True
函数等价于:

1
2
3
4
5
def all(iterable):
for element in iterable:
if not element:
return False
return True

any():只要有一个True,就返回True
all():全部是True,就返回True
注意 :空元组、空列表返回值为True,这里要特别注意。

示例

示例来自菜鸟教程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
>>>any(['a', 'b', 'c', 'd'])  # 列表list,元素都不为空或0
True

>>> any(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
True

>>> any([0, '', False]) # 列表list,元素全为0,'',false
False

>>> any(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0
True

>>> any(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素
True

>>> any((0, '', False)) # 元组tuple,元素全为0,'',false
False

>>> any([]) # 空列表
False

>>> any(()) # 空元组
False

>>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
False
>>> all([0, 12, 3]) # 列表list,存在一个为0的元素
False

>>> all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0
True
>>> all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素
False
>>> all((0, 1, 2, 3)) # 元组tuple,存在一个为0的元素
False

>>> all([]) # 空列表
True
>>> all(()) # 空元组
True

下面示例来自CSDN。
1
2
print(any(x**2 == 16 for x in range(10)))
# True