Python中指数算子**的工作

2024-04-24 09:04:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个python脚本,其中我正在计算以下内容:

t - 2 ** (j - 1) * l

其中t = 302536j = 6l = 0。在

这返回给我302536t),我不明白怎么回事。我认为结果应该是302535t - 1)。在

2 ** (j - 1) * l结果是0,根据我的说法,它应该是1,因为(j - 1) * l的结果是0。在

这是怎么计算出来的?在


Tags: 脚本
1条回答
网友
1楼 · 发布于 2024-04-24 09:04:08

唯一比幂更紧的是括号。Python(以及我见过的所有其他本机支持幂运算符的语言)在这方面遵循算术约定,因此您不需要记住不同的冲突规则集。可以按如下方式显式重写操作:

t - ((2 ** (j - 1)) * l)

正如您所指出的,设置l = 0会丢弃大部分计算。只是它丢弃了除了t本身之外的所有内容。在

通过使用幂运算符的函数形式,可以使这些事情变得明确。以下任何导入都适用于以下示例:

^{pr2}$

看来你想要/期望得到

t - pow(2, (j - 1) * l)

但是却得到了

t - pow(2, j - 1) * l

相关问题 更多 >