2

我需要 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

4 回答 4

11

您的代码有很多问题:

  1. 您的缩进已关闭。缩进在 Python 中非常重要,因为这是它知道什么与什么搭配的方式。
  2. 您需要使用isinstance来查看对象是否为浮点数。我认为这就是你想要做的a == float。但是,这没有任何意义,因为在 Python 3.x. 中,input总是返回一个字符串对象。所以,a是一个字符串。但是,如果float实际上是一个变量,那么您应该更改其名称。命名变量float是一种不好的做法,因为它会覆盖内置变量。
  3. 您在每个else.
  4. 您在第一行缺少右括号。
  5. 第一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 的参考资料,您可能会喜欢:

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

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

于 2013-10-29T20:49:33.850 回答
1

您可以使用以下bin功能:

>>> bin(100)
'0b1100100'

忽略0b字符串的前面。您始终可以使用 using 获取原始二进制数bin(your_numer)[2:]

此外,您可以使用以下format功能获得此信息:

>>> format(100, 'b')
'1100100'
于 2013-10-29T20:50:07.490 回答
0

如果您需要以二进制形式打印它,您可以这样做: print(bin(a))

于 2013-10-29T20:51:13.623 回答
0

这是我做的

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)
于 2017-04-06T17:21:03.513 回答