これは2つの場所にプリントを持っているとして、あなたは例えば、複数の行で終わるだろう、動作しません。
>>> def binary(n):
... if n < 2:
... print n
... else:
... binary(n/2)
... print n % 2
...
>>> binary(0)
0
>>> binary(1)
1
>>> binary(3)
1
1
>>> binary(9)
1
0
0
1
>>> binary(10)
1
0
1
0
他の回答を使用します文字列なので、ここにリストがあります:
>>> def binary(n):
... if n < 2:
... return [n]
... else:
... return binary(n/2) + [n % 2]
...
>>> binary(0)
[0]
>>> binary(1)
[1]
>>> binary(3)
[1, 1]
>>> binary(9)
[1, 0, 0, 1]
>>> binary(10)
[1, 0, 1, 0]
実際に文字列が必要な場合は、それは、このような単純なのです:
>>> bin(10)[2:]
'1010'
どのようにこの::)もちろん
>>> ''.join(map(str, binary(10)))
'1010'
、すでに機能bin知ったきたことから、おそらく最初の場所でこれを行っている必要がありますこののことを思い出す:
ハッピーコーディング! :)
再帰はどこですか? –
pythonを使用している場合、なぜbinを使用しないのですか? [1]:bin(9) Out [1]: '0b1001' – avasal
バイナリ関数を使用して@Ignacioビルトイン関数を組み込みました。 –