0

そこで、基数 10 の特定の数値を 2 から 10 の間の任意の基数に変換する再帰関数 numToBaseB を定義しました。目的の出力は文字列ですが、何らかの理由で int を取得し続けます。

def numToBaseB(num, b):
    if num == 0:
        return ''
    elif b > 10 or b < 2:
        return "The base has to be between 2 and 10"
    else:
        return numToBaseB(num // b, b ) + str(num % b)

だから私にとって: 戻ってnumToBaseB(4, 2)くるだろう

100

目的の出力の代わりに:

'100'

4

2 に答える 2

1

あなたのプログラムは設計どおりに動作しています:

>>> numToBaseB(1024,2)
'10000000000'
>>> numToBaseB(4,2)
'100'

もちろん、そうすればprint(numToBaseB(4,2))、引用符は表示されません。

于 2013-10-06T20:23:59.560 に答える
0

ただし、引用符が必要な場合は、いつでもこれを行うことができます。

print (" ' "+numToBase(4,2)+" ' ")

ただし、プログラムでは、とにかく str() を使用すると、もちろん文字列として扱われます。

:)

編集:電話で入力しているので、この狂気でごめんなさい:(

于 2013-10-06T21:56:55.003 に答える