我正在创建一个从函数返回的字符串。我需要字符串来列出一些值。
我创建了一个列表,该列表在最后加入以生成完整的字符串。我正在尝试在附加列表的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但不执行它并创建一个新行。
答案 0 :(得分:1)
问题是您不是打印字符串而是打印字符串列表。这条线
output = [''.join(outputCipherText)]
将单个字符串添加到列表中。那对我来说看起来毫无用处,你只需改变它:
output = ''.join(outputCipherText)
获取字符串,而不是只包含一个字符串的列表。完成更改后,您可以使用print output
,所有特殊字符都将执行,因此\n
字符将显示为换行符。
如果您不想更改代码,则必须打印字符串而不是字符串列表:
print output[0]
答案 1 :(得分:0)
如果我错了,请纠正我,但我认为您不必包含此outputCipherText.append(str(''.join(completePlainText)) + " \n")
和completePlainText = []
。您可以在循环后使用output = '\n'.join(outputCipherText)
直接输出带有换行符的outputCipherText并调用print(output)
答案 2 :(得分:0)
把:
output.append(''.join(outputCipherText))
在while循环结束时删除output = [''.join(outputCipherText)]
。