Jason990420
最佳答案
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])
4年前 评论
讨论数量: 2
Jason990420
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])
4年前 评论

之所以出现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)
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!