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 == floatinputしかし、Python 3.x. では常に文字列オブジェクトを返すため、これは意味がありません。だから、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文字列の先頭は無視してください。を使用して、いつでも生の 2 進数を取得できます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 に答える