gpt4 book ai didi

python - 不确定 'and' 操作

转载 作者:行者123 更新时间:2023-12-04 14:39:08 25 4
gpt4 key购买 nike

我遇到了一段代码来计算十进制所需的二进制位数。

nbits = 1 + (decimal and floor(log2(decimal)))
我明白 1+floor(log2(decimal))返回 nbits 的数量.
但是我不确定 and 是什么声明确保这里。

最佳答案

它利用了 0 的事实是假值;这是一种紧凑的形式

bits = 1 + (0 if decimal == 0 else floor(log2(decimal)))
甚至不那么紧凑,
if decimal == 0:
bits = 1 # 1 + 0
else:
bits = 1 + floor(log2(decimal)))
floor(log2(0))未定义,因此您需要处理 decimal == 0特别。 x and y == y对于 x 的任何真值, 和 x and y == x (根本不评估 y)为假值。
简而言之,它说 bits至少为 1 位( 0 ),但对于非零值可能需要额外的位。

关于python - 不确定 'and' 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69528913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com