为什么我的退货声明无效?

时间:2016-11-22 15:11:54

标签: function python-3.x binary converter

我有一个将十进制值转换为二进制的函数。我知道我的逻辑是正确的,因为我可以让它在函数之外工作。

def decimaltobinary(value):
    invertedbinary = []
    value = int(value)
    while value >= 1:
        value = (value / 2)
        invertedbinary.append(value)
        value = int(value)
    for n, i in enumerate(invertedbinary):
        if (round(i) == i):
            invertedbinary[n] = 0
        else:
            invertedbinary[n] = 1
    invertedbinary.reverse()
    value = ''.join(str(e) for e in invertedbinary)
    return value

decimaltobinary(firstvalue)
print (firstvalue)
decimaltobinary(secondvalue)
print (secondvalue)

让我们说firstvalue = 5secondvalue = 10。每次执行函数时返回的值应分别为1011010。但是,我打印的值是5和10的起始值。为什么会这样?

1 个答案:

答案 0 :(得分:1)

代码按预期工作,但您没有分配 return ed值:

>>> firstvalue = decimaltobinary(5)
>>> firstvalue
'101'

请注意,有更简单的方法可以实现您的目标:

>>> str(bin(5))[2:]
'101'
 >>> "{0:b}".format(10)
'1010'