Python 将十进制转换为二进制的函数:如何返回结果而不是打印结果?

Python 将十进制转换为二进制的函数:如何返回结果而不是打印结果?,python,python-3.x,recursion,binary,Python,Python 3.x,Recursion,Binary,我需要写一个将整数转换成二进制的函数。 到目前为止,我编写的函数定义是: def decimalToBinary(number): if number > 1: decimalToBinary(number//2) print(number % 2, end = '') 我的问题是: 我应该返回结果,而不是打印它,我不知道怎么做 我不确定我的代码是否是我能写的最好的递归代码 谢谢你抽出时间 将数字转换为字符串,并使用return而不是print。然后将其与

我需要写一个将整数转换成二进制的函数。 到目前为止,我编写的函数定义是:

def decimalToBinary(number):
    if number > 1:
        decimalToBinary(number//2)
    print(number % 2, end = '')
我的问题是:

  • 我应该返回结果,而不是打印它,我不知道怎么做
  • 我不确定我的代码是否是我能写的最好的递归代码

  • 谢谢你抽出时间

    将数字转换为字符串,并使用
    return
    而不是
    print
    。然后将其与递归调用连接起来

    def decimalToBinary(number):
        if number > 1:
            return decimalToBinary(number//2) + str(number % 2)
        else:
            return str(number % 2)
    

    您可以传递
    count
    变量来定位数字

    def decimalToBinary(number, count = 0):
        if number > 1:
            return ((number%2) * (10**count) + decimalToBinary(number//2, count+1))
        return ((number%2) * (10**count))
    
    另外,如果您需要一个非递归函数,您可以使用类似这样的函数

    def LinealDecimalToBinary(num):
        count = 0
        binNum = 0
        while(num > 0):
            binNum += (num%2) * (10**count)
            num = num//2
            count += 1
        return binNum
    

    这回答了你的问题吗?非常感谢。这真的很有帮助