2

我正在创建一个从函数返回的字符串。我需要字符串来列出一些值。

我创建了一个列表,该列表在末尾加入以构成完整的字符串。我试图在列表附加到的while循环中的每次迭代上添加一个新行。

while shiftAmount < 25: #Iterates through all 26 combinations producing a processed value each time.
    shiftAndStore(shiftAmount)
    shiftAmount = shiftAmount + 1
    stringshift = str(shiftAmount)
    outputCipherText.append("The Encoded / Decoded text on shift " + str((shiftAmount - 1)) + " is ")
    outputCipherText.append(str(''.join(completePlainText)) + " \n")
    completePlainText = []
output = [''.join(outputCipherText)]

谁能告诉我为什么这不起作用?查看输出它显示了 \n 但不执行它并换行。

4

3 回答 3

2

问题是您不是在打印字符串,而是在打印字符串列表。线

output = [''.join(outputCipherText)]

正在将单个字符串添加到列表中。这对我来说看起来没用,你可以简单地改变它:

output = ''.join(outputCipherText)

获取一个字符串,而不是只包含一个字符串的列表。更改后,您可以使用print output并且所有特殊字符都将被执行,因此这些\n字符将显示为换行符。

如果您不想更改代码,则必须打印字符串而不是字符串列表:

print output[0]
于 2012-11-03T17:04:16.577 回答
0

如果我错了,请纠正我,但我认为你不必包括这个outputCipherText.append(str(''.join(completePlainText)) + " \n")completePlainText = []. 您可以在循环后使用换行符直接输出 outputCipherTextoutput = '\n'.join(outputCipherText)并调用print(output)

于 2012-11-03T16:20:14.860 回答
0

放:

    output.append(''.join(outputCipherText))

在 while 循环结束时删除output = [''.join(outputCipherText)]它。

于 2012-11-03T16:51:34.617 回答