0

因此,我定义了一个递归函数 numToBaseB,它将以 10 为基数的给定数字转换为 2 到 10 之间的任何其他基数。所需的输出是一个字符串,但由于某种原因,我一直得到一个 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 回答