有没有办法让这个代码更有效,更小?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法让这个代码更有效,更小?相关的知识,希望对你有一定的参考价值。

我刚刚编写了这个代码,用于将十进制转换为二进制,使用除以2的方法。它工作得很好,但我只是想知道是否有办法让它更有效,更容易阅读。

def binary(d):
    stop = False
    c = []

    while stop == False:
        b = d%2
        if b == 0:
            d = d/2
        else:
            d = d/2
            b = 1
        c.append(b)

        if d == 1:
            c.append(1)
            stop = True

    c.reverse()
    c="".join(map(str,c))
    return(c)

d = int(input("enter number:"))
print(binary(d))

(我刚开始学习python)

答案

你应该使用bin()format()

num = 42

print bin(num)
# 0b101010
print "{0:#b}".format(num)
# 0b101010
print "{0:b}".format(num)
# 101010
另一答案

您可以使用这种简单的方法。

x=10
bin(x)

它将为您提供数字10的二进制形式。它将返回'0b1010',非常简单。尝试一下,如果您遇到任何问题,只需回复即可。请享用:)

如您所愿,我优化了代码,通过在代码中保持逻辑完整来使用一些快捷方式。

def binary(decimal):
    temp = []
    while True:
        binary_num = 0 if decimal % 2 == 0 else 1
        decimal = int(decimal / 2)
        temp.append(binary_num)
        if int(decimal) == 1:
            temp.append(1)
            break
    return "".join(map(str, temp.reverse()))


DECIMAL = int(input("enter number:"))
print(binary(DECIMAL)) 

以上是关于有没有办法让这个代码更有效,更小?的主要内容,如果未能解决你的问题,请参考以下文章

使 ipad 模拟器更小

操作图像的内存有效方式?

我可以让 Swing JButton 的边距更小吗?

七个办法只有一个有效:200 PORT command successful. Consider using PASV.425 Failed to establish connection.(代码片段

有没有办法改进这个查询

有没有办法关闭代码片段中的命名建议?