Python 将数字转换为二进制的函数

Python function that turns a number into binary

我知道 python 中有某些函数,例如 bin 十进制数转化为二进制数。我想自己建一个。我尝试了以下方法:

def binary(n):
    bina = ''
    B = []
    if n == 0:
        bina = '0'
    else: 
        while n>0:
            x = 0
            while 2**x<n:
                x = x+1
                B.append(x-1)
                n = n-2**(x-1)

问题是当我在数组中有以 2 为底的指数时 B 我不知道如何实际读取它们以便获得由 1 和 0 组成的实际二进制数。我怎样才能使上面的代码工作?

在有人说我的问题已经被问到之前,我的问题是如何使上面的代码工作,而不是重新开始并尝试另一种方法

def make_binary(num):
    binary = ''
    while num > 0:
        binary = str(num % 2) + binary
        num = num // 2
    return binary
print(make_binary(15))