用于将十进制转换为二进制的Python程序

用于将十进制转换为二进制的Python程序,python,Python,下面是我编写的一个Python程序,它将十进制数转换为二进制数。然而,我有一些错误。有人能帮忙吗 def decimaltobin(n): (ls,count,i)=([],0,0) while(n>0): ls[i]=n%2 n=n/2 i=i+1 while(i>0): print(ls[i]) i=i-1 decimaltobin(8) 您将ls声明为空列表,这意味着您

下面是我编写的一个Python程序,它将十进制数转换为二进制数。然而,我有一些错误。有人能帮忙吗

def decimaltobin(n):

    (ls,count,i)=([],0,0)
    while(n>0):
        ls[i]=n%2
        n=n/2
        i=i+1
    while(i>0):
        print(ls[i])
        i=i-1

decimaltobin(8)

您将
ls
声明为空列表,这意味着您无法将元素
ls[i]
设置为值,因为
ls[i]
不存在。对于您的代码,您应该向列表中添加新值,例如,
ls.append(n%2)
。在第一个while循环中迭代之后,您还需要将
i
减小到
i-1
,以便在第二个while循环中正确调用
ls[i]

def decimaltobin(n):
    (ls,count,i)=([],0,0)
    while(n>0):
        ls.append(n%2)
        n=n//2
        i=i+1
    i=i-1
    while(i>=0):
        print(ls[i])
        i=i-1

您将
ls
声明为空列表,这意味着您无法将元素
ls[i]
设置为值,因为
ls[i]
不存在。对于您的代码,您应该向列表中添加新值,例如,
ls.append(n%2)
。在第一个while循环中迭代之后,您还需要将
i
减小到
i-1
,以便在第二个while循环中正确调用
ls[i]

def decimaltobin(n):
    (ls,count,i)=([],0,0)
    while(n>0):
        ls.append(n%2)
        n=n//2
        i=i+1
    i=i-1
    while(i>=0):
        print(ls[i])
        i=i-1

这是二进制到十进制转换的代码,用于发布您得到的错误。这是二进制到十进制转换的代码,用于发布您得到的错误。您的意思肯定是第5行中的
n=n//2
,否则它将断开:)我假设n是一个整数,返回的结果与使用相同//嗯,在windows 10下的Python 3.6.5上,它断开了。我想它在不同的环境中可能会有不同的反应……当然你的意思是第5行中的
n=n//2
,否则它将中断:)我假设n是一个整数,返回的结果与使用相同//嗯,我在windows 10下的Python 3.6.5上中断了。认为它在不同的环境中可能会有不同的反应。。。