用于将Integer转换为Binary的Python代码

时间:2013-10-29 20:48:09

标签: python binary integer

我需要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:的错误。 而且我知道其余代码也是错误的,但这:让我发疯。

4 个答案:

答案 0 :(得分:10)

您的代码存在很多问题:

  1. 你的缩进是关闭的。缩进在Python中非常重要,因为它就是它如何知道什么是什么。
  2. 您需要使用isinstance来查看对象是否为浮点数。我认为这是你试图用a == float做的。但是,这没有意义,因为在Python 3.x中,input总是返回一个字符串对象。所以,a是一个字符串。但是,如果float实际上是变量,那么您应该更改其名称。命名变量float是一种不好的做法,因为它会覆盖内置函数。
  3. 每个else的末尾都缺少一个冒号。
  4. 您在第一行缺少右括号。
  5. 第一行中的str是不必要的(不是错误,但我以为我会提到它)。
  6. 然而,我不是要解决所有这些问题,而是要向您介绍内置的bin

    >>> n = 127
    >>> bin(n)
    >>> # The "0b" at the start means "binary".
    '0b1111111'
    >>> # This gets rid of the "0b"
    >>> bin(n)[2:]
    '1111111'
    >>>
    

    它是明确构建的,用于执行您要执行的操作。

    此外,以下是您可能喜欢的Python的一些参考资料:

    http://www.tutorialspoint.com/python/python_overview.htm

    http://wiki.python.org/moin/BeginnersGuide/Programmers

答案 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)