不学对不起自己 发表于 2021-4-15 13:03:37

各位大佬请问一下

为何 print( (2 ** 2) ** 32) 就可以计算出结果呢?

wp231957 发表于 2021-4-15 13:05:54

这哪有为什么,能算出来就是能算出来

肖-肖 发表于 2021-4-15 13:31:01

本帖最后由 肖-肖 于 2021-4-15 13:32 编辑

你这个应该是4的32次方吧
如下图-》可见前两个是相等的可以验证!

如果是print(2**2**32)-->**幂运算,运算顺序是:从右向左,所以是-》2的2的32次幂-》可能太大了吧!

qq1151985918 发表于 2021-4-16 11:12:16

本帖最后由 qq1151985918 于 2021-4-16 11:18 编辑

肖-肖 发表于 2021-4-15 13:31
你这个应该是4的32次方吧
如下图-》可见前两个是相等的可以验证!



并不是不出结果,而是还在运算,因为这个数据太庞大。在python中,
求幂运算**   的运算结合性是从右向左,也就是说,在不加括号的情况下
2 ** 2 ** 32 ==> 2 ** (2 ** 32),而这个数据太过于庞大,还没有计算出结果,只有显示空白
实际上内存仍然在计算数据

肖-肖 发表于 2021-4-16 14:20:24

qq1151985918 发表于 2021-4-16 11:12
并不是不出结果,而是还在运算,因为这个数据太庞大。在python中,
求幂运算**   的运算结合性是从 ...

Daniel_Zhang 发表于 2021-4-16 17:46:06

qq1151985918 发表于 2021-4-16 11:12
并不是不出结果,而是还在运算,因为这个数据太庞大。在python中,
求幂运算**   的运算结合性是从 ...

接着大佬的回复

print( (2 ** 2) ** 32) 相当于 print(2 ** (2*32)) 或者说是 print(2 ** 64)

print(2 ** 2 ** 32) 相当于 print( 2 ** (2 ** 32)) 也就是 print(2 ** 4294967296)

不学对不起自己 发表于 2021-4-18 19:10:43

肖-肖 发表于 2021-4-15 13:31
你这个应该是4的32次方吧
如下图-》可见前两个是相等的可以验证!



谢谢
页: [1]
查看完整版本: 各位大佬请问一下