str()没有在我的函数中返回字符串

时间:2013-10-06 20:20:20

标签: python string int

所以我已经定义了一个递归函数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'

    
  

2 个答案:

答案 0 :(得分:1)

您的计划按设计运作:

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

当然,如果你print(numToBaseB(4,2)),则不会显示引号。

答案 1 :(得分:0)

如果您想要引号,可以随时执行此操作:

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

但是在程序中,如果你使用str(),它将被视为字符串。

:)

编辑:在手机上打字,对不起这种疯狂:(