我的代码停留在6561,无法继续。我已经尝试过打印B,我尝试用True代替一个价值超过打印量的计数器。我也为原始值尝试了不同的数字,这有时会使情况变得更糟;例如。 “a,b = 9,10”只会打印9和10.问题,如何解开它?
更新:看来如果你在空闲时运行这段代码,那么创建一个新的python文件,python停止响应。
答案 0 :(得分:0)
这不是代码的错误,而是生成数字大小的直接后果。
[
{
"id": 472,
"name": "אבו גוש",
"engName": "ABU GHOSH"
},
{
"id": 473,
"name": "אבו סנאן",
"engName": "ABU SINAN"
},
{
"id": 1342,
"name": "אבו קורינאת (יישוב)",
"engName": "ABU QUREINAT"
},
]
是一个5926位数字。序列中的下一步是将6561提升到 5926 数字的幂。这就是它被卡住的地方 - 计算对于Python来说太大了,无法在合理的时间内处理。
Python支持超出硬件支持的本机大小的任意大小的整数,并且实现需要内存来存储整数的数字。结果是你的程序将消耗越来越多的内存,直到产生答案,你的系统/进程耗尽内存,或者你没有耐心。
你会发现它的乘法和加法只是因为所涉及的数字较小,所以要达到由取幂产生的巨大尺寸需要更长的时间。