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或生成了一定数量的数字。