-3

スタック オーバーフローの皆さん、こんにちは。

問い合わせで戻ってきたようです。

プログラムで使用するために、インターネットからアスキー アートを「借りた」ことがあります。とにかく、いくらフォーマットしても文字や記号の配置が歪んでしまう。

たとえば、コードが次の場合:

'''
 ___________.._______  
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  \
| |          ||  `/,|
| |          (\\`_.'
| |         .-`--'.
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
| |     (')  |   |  (`)
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | \
""""""""""|_`-' `-' |"""|
|"|"""""""\ \       '"|"|
| |        \ \        | |
: :         \ \       : :  
. .          `'       . .
'''

(リストの一部です)

実行すると、次のように表示されます。

 ___________.._______
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  | |          ||  `/,|
| |          (\`_.'
| |         .-`--'.
| |        /Y . . Y| |       // |   | \
| |      //  | . |  \
| |     (')  |   |  (`)
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | """"""""""|_`-' `-' |"""|
|"|"""""""\ \       '"|"|
| |        \ \        | |
: :         \ \       : :  
. .          `'       . .

私の質問は、それは私がやったことなのか、それともバグなのか...

前もって感謝します!ジョン。私が尋ねていたのは、なぜプログラム出力で間違って印刷されていたのかということでした...混乱が生じて申し訳ありません。マークされた回答に示されている理由は正しかったので、プログラムを修正して、各行の終わりを変更し、バックスラッシュを別の文字に置き換えてエラーを修正しました。

4

1 に答える 1

1

問題は、\ がエスケープ文字であることです。たとえば、"\n" が改行を意味し、"\t" がタブ文字を意味するのを見たことがあるかもしれません。ここでは、ほとんどの場合、単一のリテラル '\' 文字を意味する "\" と、生成された文字列でその改行を省略する実際の改行が続く "\" があります。

最も簡単な解決策は、文字列内のすべての「\」を「\」に置き換えることです。

>>> print "//\\\\"
//\\

ただし、もちろん、これにより ASCII アートの表示と編集が難しくなります。

あなたの場合の良い解決策は、文字列リテラルに「r」プレフィックスを使用して生の文字列を使用することです。

>>> print r"""/\
... \/"""
/\
\/
于 2013-07-08T14:54:39.090 に答える