Skip to main content
 首页 » 编程设计

python之当变量等于 if 语句时,为什么 python 不停止循环

2025年05月04日10unruledboy

当我运行我的代码时,数字变成 42.0(它应该做什么) 但当它变为 42.0 时不会停止(通过 if 语句或 while 循环)我如何让我的代码停止?

import time 
def life(inp): 
    inp = float(inp) 
    while float(inp) != float(42): 
        inp = inp*12/4/4+4+6.5 
        if float(inp) == float(42) or inp == 42: 
            print inp 
            break 
        print inp 
        time.sleep(0.1) 
 
 
life(6) 

请您参考如下方法:

因为它不是 42.0,您可以通过执行 print '%.60f' % inp 来查看。然后你会发现你实际上停留在 41.999999999999985789145284797996282577514648437500000000000000。

或者使用 print repr(inp),它显示 41.999999999999986(不是准确的存储值,但它表明它不是 42.0)。

如果您只是执行 print inp 或 print str(inp) 那么 Python 会显示数字的“漂亮版本”,这不一定实际代表数字.

您可能想改为“足够接近”,例如:

while abs(float(inp) - float(42)) > 1e-9: 

或查看 this answer .