TypeError:+的不支持的操作数类型:' NoneType'和' str' / Base转换

时间:2017-11-26 03:10:45

标签: python python-3.x

这是我的代码,我不知道这段代码无效。

def theBase(n, b):
   convertString = "0123456789"
   if n < b:
      return convertString[n]
   else:
      return toBase(n//b,b) + convertString[n%b]

def toBase(n, b):
   print(theBase(n, b), end="")

def main():
    n = int(input())
    b = int(input())
    print(n, "in base", b, "is ", end="")
    toBase(n, b)
if __name__ == "__main__":
    main()

不要修改主要功能

1 个答案:

答案 0 :(得分:1)

问题出现是因为函数toBase()返回None,因为没有显式的return语句。然后函数theBase()中的最后一行尝试将toBase()(无为)的返回值添加到字符串中,这会给出您看到的异常。

我认为你有一个简单的错误,theBase()应该调用自己,而不是toBase()(参见该函数的最后一行)。以下将解决问题:

def theBase(n, b):
   convertString = "0123456789"
   if n < b:
      return convertString[n]
   else:
      return theBase(n//b,b) + convertString[n%b]