Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x TypeError:只能在递归函数上将str(而不是“NoneType”)连接到str_Python 3.x - Fatal编程技术网

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