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

2024-06-02 05:07:00 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我定义了一个递归函数numtobseb,它将以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'


Tags: orthe字符串returnif定义def原因
2条回答

如果你想引用,你可以这样做:

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

但在程序中,如果无论如何使用str(),它当然会被视为字符串。在

:)

编辑:在电话里打字,很抱歉我的疯狂行为:(

您的程序按设计运行:

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

当然,如果您这样做,print(numToBaseB(4,2)),引号将不会显示。在

相关问题 更多 >