我刚刚编写了这个代码,用于将十进制转换为二进制,使用除以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)
答案 0 :(得分:0)
您应该使用bin()
或format()
num = 42
print bin(num)
# 0b101010
print "{0:#b}".format(num)
# 0b101010
print "{0:b}".format(num)
# 101010
答案 1 :(得分:0)
您可以使用这种简单的方法。
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))