讨论数量:
MESSAGE = '''
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
'''
代表的不是一串连续的”a”, 而是每一行都会被加入一个换行符 ‘\n’
你的表Rmdiction1中没有’\n’的key, 所以在 for i1 in Rmdiction1
就会找不到,
也就没有Return Rmdiction1[i1]
, 最后就自行Return None
如果你真的要这样表达字符串, 只能再加下面这一行, 去掉’\n’, 就OK了 !
MESSAGE = MESSAGE.replace('\n', '')
另外, encode像底下这样作, 不就失去用字典的意义了
def encode(x1):
for i1 in Rmdiction1:
if i1 == x1:
print(Rmdiction1[i1])
return Rmdiction1[i1]
直接如下就OK了
receivelist1.append(Rmdiction1[i3])
之所以出现none
,是因为你自定义函数encode
的问题,由于当if条件不满足时,默认返回none
试一试这段代码就不会有这样的问题
Rmdiction1 = {"a":"01", "b": "02", "c":"03"}
MESSAGE = '''aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'''
receivelist1 = []
for i in MESSAGE:
if i in Rmdiction1.keys():
receivelist1.append(Rmdiction1[i])
print(receivelist1)
代表的不是一串连续的”a”, 而是每一行都会被加入一个换行符 ‘\n’
你的表Rmdiction1中没有’\n’的key, 所以在
for i1 in Rmdiction1
就会找不到,也就没有
Return Rmdiction1[i1]
, 最后就自行Return None
如果你真的要这样表达字符串, 只能再加下面这一行, 去掉’\n’, 就OK了 !
另外, encode像底下这样作, 不就失去用字典的意义了
直接如下就OK了