为什么python print((2**2)**32)可以输出,print(2**2**32)不能啊
python print((2**2)**32)可以正常输出,
那为何
python print(2**2**32)
无法执行?
等式1为2**64
等式2为2**4294967296,数据太大了,内存占用和CPU运算能力都不匹配。 先说结论:两个,都可以运行的,都正确。
再说原因:为啥第二个没有反应?那是因为第二个数据太大了,内存占用和CPU运算能力都不匹配,所以一直在运算,没有吧结果呈现出来。如果你关闭idle,就会给你提示:
your program is still runing,do you want to kill it? 看到没,你的程序还在运行,就是说,还在计算,只是没有算出来结果而已。 由于幂运算是从右往左运算的,所以 print(2 ** 2 ** 32) 就相当于 print(2 ** 4294967296),数字太大了,Python 一时算不出结果。
而 print((2 ** 2) ** 32) 加了括号,相当于 print(4 ** 32),Python 当然可以很快算出是 18446744073709551616。 幂运算是从右往左运算的
页:
[1]