Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么';while循环不会再次运行吗?_Python_Loops_While Loop_Binary - Fatal编程技术网

Python 为什么';while循环不会再次运行吗?

Python 为什么';while循环不会再次运行吗?,python,loops,while-loop,binary,Python,Loops,While Loop,Binary,我试着写十进制数的二进制表达式。这是我的密码: value=0.375 result="" while(value<1): value*=2 if(value>=1): value-=1 result+=str(1) break result+=str(0) print(result) value=0.375 result=“” 而(值=1): 值-=1 结果+=str(1) 打破 结果+=

我试着写十进制数的二进制表达式。这是我的密码:

value=0.375
result=""
while(value<1):
    value*=2
    if(value>=1):
        value-=1
        result+=str(1)
        break
    result+=str(0)
print(result)
value=0.375
result=“”
而(值=1):
值-=1
结果+=str(1)
打破
结果+=str(0)
打印(结果)
输出:01但必须是011


我想通过将值减少1来再次运行while循环,但它似乎不起作用。

以下是正确的逻辑:

ENOUGH_PRECISION = 20             # Enough number of 1's and 0's in the output
value=0.3753453856869
result=""
while(value<1):
    value*=2
    if(value>=1):
        value-=1
        result+=str(1)
    else:
        result+=str(0)
    if len(result) == ENOUGH_PRECISION:
        break
print(result)
ough_PRECISION=20#足够多的1和0在输出中
值=0.3753453856869
result=“”
而(值=1):
值-=1
结果+=str(1)
其他:
结果+=str(0)
如果len(结果)=足够的精度:
打破
打印(结果)
输出:

011000000001011010


你的“休息”应该是“继续”。您告诉循环在输出第一个1后立即停止。实际上,为什么终止语句
值<1
?这似乎也有点不对劲。您应该继续运行,直到值==1或生成了一定数量的数字。