我的数字到二进制函数没有产生输出



有人知道为什么这个函数不会生成输出吗?

import math
def converter (value):
list1 = []
list1.reverse()  
while value >= 0:
Remainder = value%2
list1.append(Remainder)
value /= 2
math.floor(value) 
list1.reverse() 
return list1
converter(17)

该模型不会生成输出。调试后,我发现了问题的根源value /= 2将其更改为类似value -=2的内容似乎可以使代码运行,但这不是我想要的输出。

您的代码存在多个问题。您希望在while循环中更改您的条件,因为它将永远运行。此外,您需要更改变量value:的新赋值

import math
def converter (value):
list1 = []
while value > 0:
remainder = value % 2
list1.append(remainder)
value = math.floor(value / 2) 

list1.reverse()
return list1
converter(17)

输出:

[1, 0, 0, 0, 1]

编辑:我还将通过整数除法删除math.floor()

def converter (value):
list1 = []
while value > 0:
remainder = value % 2
list1.append(remainder)
value = value // 2 

list1.reverse()
return list1
converter(18)

只需进行以下更改即可工作1:将循环条件从(当值>=0时(更改为值>02:将值//=2更改为值//=2那就行了。

相关内容

  • 没有找到相关文章