Python 3.x TypeError:只能在递归函数上将str(而不是“NoneType”)连接到str
这是我的输出:Python 3.x TypeError:只能在递归函数上将str(而不是“NoneType”)连接到str,python-3.x,Python 3.x,这是我的输出: def NumberToSymbol(r): nuc={0:"A", 1:"C", 2:"G",3:"T"} return nuc.get(r) def NumberToPattern(index, k): if k == 1: return NumberToSymbol(index) prefixIndex=index/ 4 r = index
def NumberToSymbol(r):
nuc={0:"A", 1:"C", 2:"G",3:"T"}
return nuc.get(r)
def NumberToPattern(index, k):
if k == 1:
return NumberToSymbol(index)
prefixIndex=index/ 4
r = index % 4
symbol=NumberToSymbol(r)
PrefixPattern =NumberToPattern(prefixIndex, k-1)
return PrefixPattern+ symbol
print(NumberToPattern(45,4))
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
---->1份打印件(数字图案(45,4))
以数字模式(索引,k)
7如果k==1:
8返回符号
---->9 PrefixPattern=PrefixPattern+NumberToPattern(prefixIndex,k-1)
10返回预模式+符号
TypeError:只能将str(而不是“NoneType”)连接到str
r
是一个键,index
和k
是数字。我想将索引(以10为基数)转换为以k为基数,然后我想更改以k为基数的数字的每个值,就像一本字典一样,最后我想得到一个字符串。错误表明您正在将一个None(“非类型”)连接到str。如果仔细观察,NumberToSymbol
打算返回一个str
,但是当键(r
)在nuc
中不存在,它返回None
而不是str
,因此出现错误
在nuc
中找不到r
的原因是:prefixIndex=index/4
可能导致浮点数5/4==1.25
,但您希望得到1
。所以,这里需要整数除法
要执行整数除法,请将:prefixIndex=index/4
替换为prefixIndex=index//4
。了解更多信息。非常感谢!!
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-169-5a1c7e64259c> in <module>
----> 1 print(NumberToPattern(45,4))
<ipython-input-168-331109643d8f> in NumberToPattern(index, k)
7 if k == 1:
8 return symbol
----> 9 PrefixPattern =PrefixPattern+NumberToPattern(prefixIndex, k-1)
10 return PrefixPattern+ symbol
TypeError: can only concatenate str (not "NoneType") to str