有人知道为什么这个函数不会生成输出吗?
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那就行了。