解码过程中保留空格

Retaining spaces in decoding process

我需要编写一个程序来获取编码后的消息,翻转它,删除任何不是字母或 space 的字符,然后输出隐藏的消息。
示例输入:

d89%l++5r19o7W *o=l645le9H

预期输出:

Hello World 

我的输出:

HelloWorld

如果我使用白色 space 作为分隔符,它 returns

H e l l o w o r l d

我的代码:

decode = [ch for ch in input() if ch.isalpha()]
print("".join(decode[::-1]))

space 字符不是字母数字字符。

在您的原始代码中,使用:

decode = [ch for ch in input() if ch.isalpha() or ch == ' ']

相反。


如果要保留 space 字符以外的其他类型的白色 space(例如制表符、换行符),请使用:

decode = [ch for ch in input() if ch.isalpha() or ch.isspace()]

这是一个正则表达式方法:

inp = "d89%l++5r19o7W *o=l645le9H"
output = re.sub(r'[^A-Z ]+', '', inp, flags=re.I)[::-1]
print(output)  # Hello World
inp = 'd89%l++5r19o7W *o=l645le9H'

decode = []

for i in inp[::-1].split():
    decode.append("".join([ch for ch in i if ch.isalpha()]))

print(" ".join(decode))