【问题标题】:str() not returning string in my functionstr() 在我的函数中没有返回字符串
【发布时间】:2013-10-06 20:20:20
【问题描述】:

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

【问题讨论】:

  • 这是不可能的。如果您print输出结果,那么这是预期的行为,因为引号仅显示在控制台中以帮助您查看变量是什么。
  • 是的,Tim Pietzcker 指出了同样的事情,不过谢谢!

标签: python string int


【解决方案1】:

您的程序正在按设计运行:

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

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

【讨论】:

  • 我不确定原始设计是否包括将0 转换为基数应该给出一个空字符串而不是"0"。它按编码工作,但他们总是这样做 :-D
  • 是的,这是其中的一部分,不过感谢您的肯定!
【解决方案2】:

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

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

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

:)

编辑:在手机上打字,很抱歉这种疯狂:(

【讨论】:

  • 你可以使用repr()在字符串周围添加引号:)
  • @mnunberg 哇!完全忘记了那个O.o
猜你喜欢
  • 2013-03-05
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2023-02-02
  • 1970-01-01
相关资源
最近更新 更多