如何在此代码中包含白色 space 和 n\

How to include white space and n\ in this code

我正在制作凯撒密码程序。我导入了一个txt文件,结果都是一个大句子。我如何在其中获取空格和换行符?

with open("output.txt", "r") as results:
    data = results.read().replace("\n", "").lower()

alphabet = "abcdefghijklmnopqrstuvwxyz"
key = 0
cipher = ""

for c in data:
    if c in alphabet:
        cipher += alphabet[(alphabet.index(c) + key) % (len(alphabet))]

print("Your encrypted message is:" + cipher)

Your encrypted message is:firstcustomerwhatwillyoubeusingtheaccountforpersonaluseexistingcustomernotitlemrlastnamealrfirstnamenamenameingson

不要把"\n"换成""",那样就可以了。

问题:

当您在循环中使用 replace("\n", "") 时,它会将换行符 (\n) 替换为非 space 字符。

with open("output.txt", "r") as results:
    data = results.read().replace("\n", "").lower()

如果您不想删除换行符,则需要跳过 replace 部分。

更正:

with open("output.txt", "r") as results:
        data = results.read().lower()

您的代码中没有任何内容可以替换任何空白,您可以尝试添加一些 space 并进行测试。

问题

您在代码中使用以下行明确地从读取数据中删除了换行符,

data = results.read().replace('\n','').lower()

此外,为了在您的代码中包含 space 和换行符,您必须将换行符和 space 个未修改的字符添加到代码中。

解决方案

如果您想保留 space 和换行符,只需按如下方式修改您的行:

with open("output.txt", "r") as results:
    data = results.read().lower()

alphabet = "abcdefghijklmnopqrstuvwxyz"
key = 0
cipher = ""

for c in data:
    if c in alphabet:
        cipher += alphabet[(alphabet.index(c) + key) % (len(alphabet))]
    elif c in [' ', '\n']:
        cipher += c
print("Your encrypted message is:" + cipher)