Function 为什么不是';我的回执不起作用吗?
我有一个将十进制值转换为二进制的函数。我知道我的逻辑是正确的,因为我可以让它在函数之外工作Function 为什么不是';我的回执不起作用吗?,function,python-3.x,binary,converter,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
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=5
和secondvalue=10
。每次执行函数时返回的值应分别为101
和1010
。但是,我打印的值是5和10的起始值。为什么会发生这种情况?代码按预期工作,但您没有指定返回值
ed:
>>> firstvalue = decimaltobinary(5)
>>> firstvalue
'101'
请注意,有更简单的方法来实现您的目标:
>>> str(bin(5))[2:]
'101'
>>> "{0:b}".format(10)
'1010'
非常感谢你的帮助,非常感谢。我知道二进制转换有一种更简单的方法,但是我想使用这种方法来帮助确保我理解转换的算法。