Python 3.x 递归十进制到二进制转换打印错误

Python 3.x 递归十进制到二进制转换打印错误,python-3.x,recursion,Python 3.x,Recursion,每当我尝试运行这段代码时,一切都正常,但我没有得到第一个二进制值。 示例:当程序打印9时,输出为001,而不是9的二进制值1001。Addelse条件: def decimaltobinary(value): if value > 1: decimaltobinary(value // 2) print(value % 2) 看看当value=0或value=1时会发生什么,这应该说明您的问题。除此之外,还有一个简单的解决方案: def decim

每当我尝试运行这段代码时,一切都正常,但我没有得到第一个二进制值。
示例:当程序打印9时,输出为001,而不是9的二进制值1001。

Add
else
条件:

def decimaltobinary(value):
    if value > 1:
        decimaltobinary(value // 2)
        print(value % 2)

看看当value=0或value=1时会发生什么,这应该说明您的问题。除此之外,还有一个简单的解决方案:

def decimaltobinary(value):
    if value > 1:
        decimaltobinary(value // 2)
        print(value % 2)
    else:
        print(value)

您是否尝试将1转换为二进制,并使用调试器找出它为什么不打印任何内容?
def decimaltobinary(value):
    if value > 1:
        decimaltobinary(value // 2)
    print(value % 2)