我需要Python 3.3中的代码将整数转换为二进制。 这是我的第一次尝试:
a = input(str("Please Enter a Number")
if a == float:
print (1)
else print(0)
b = a/2
while True:
if b == float:
print(1)
else print(0)
我不知道为什么我一直收到if a == float:
的错误。
而且我知道其余代码也是错误的,但这:
让我发疯。
答案 0 :(得分:10)
您的代码存在很多问题:
isinstance
来查看对象是否为浮点数。我认为这是你试图用a == float
做的。但是,这没有意义,因为在Python 3.x中,input
总是返回一个字符串对象。所以,a
是一个字符串。但是,如果float
实际上是变量,那么您应该更改其名称。命名变量float
是一种不好的做法,因为它会覆盖内置函数。else
的末尾都缺少一个冒号。str
是不必要的(不是错误,但我以为我会提到它)。然而,我不是要解决所有这些问题,而是要向您介绍内置的bin
:
>>> n = 127
>>> bin(n)
>>> # The "0b" at the start means "binary".
'0b1111111'
>>> # This gets rid of the "0b"
>>> bin(n)[2:]
'1111111'
>>>
它是明确构建的,用于执行您要执行的操作。
此外,以下是您可能喜欢的Python的一些参考资料:
答案 1 :(得分:1)
您可以使用bin
功能:
>>> bin(100)
'0b1100100'
忽略字符串前面的0b
。您始终可以使用bin(your_numer)[2:]
获取原始二进制数。
此外,您可以使用format
函数:
>>> format(100, 'b')
'1100100'
答案 2 :(得分:0)
如果您需要以二进制打印它,您可以这样做: 打印(BIN(a))的
答案 3 :(得分:0)
This is what i made
while True:
print("FIND OUT WHAT BINARY THIS IS")
space = " "
num1 = int(input())
while num1 > 0:
if num1 % 2 == 0:
space = space + "0"
else:
space = space + "1"
num1 = int(num1 / 2)
else:
space = space[::-1]
print(space)