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)

文字列を 1 つだけ含むリストではなく、文字列を取得します。その変更後、使用できるようprint outputになり、すべての特殊文字が実行されるため、\n文字は改行として表示されます。

コードを変更したくない場合は、文字列のリストではなく文字列を出力する必要があります。

print output[0]
于 2012-11-03T17:04:16.577 に答える
0

間違っている場合は訂正してください。ただし、これoutputCipherText.append(str(''.join(completePlainText)) + " \n")とを含める必要はないと思いますcompletePlainText = []output = '\n'.join(outputCipherText)と呼び出しのループの後に、改行で outputCipherText を直接出力できます。print(output)

于 2012-11-03T16:20:14.860 に答える
0

置く:

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

while ループの最後で、次を削除しoutput = [''.join(outputCipherText)]ます。

于 2012-11-03T16:51:34.617 に答える