「\ 20%」を印刷しようとすると、Pythonは初めてです
>>>"\20%"
シェルが '\x10%' を出力するのはなぜですか、つまり、表示されています
'\x10%'
do の場合も join で同じことが起こっています
>>>l = ['test','case']
>>>"\20%".join(l)
それが示している
'test\x10%case'
私はpython 2.7.3を使用しています
「\ 20%」を印刷しようとすると、Pythonは初めてです
>>>"\20%"
シェルが '\x10%' を出力するのはなぜですか、つまり、表示されています
'\x10%'
do の場合も join で同じことが起こっています
>>>l = ['test','case']
>>>"\20%".join(l)
それが示している
'test\x10%case'
私はpython 2.7.3を使用しています
'\20'
は 8 進数リテラルで、 と同じchr(2 * 8 + 0) == chr(16)
です。
Python シェルがデフォルトで表示するのは、print の出力ではなくrepr
、指定された値 (16 進数)の表現です'\x10'
。
文字列\20%
が必要な場合は、バックスラッシュ ( ) をエスケープするか、生の文字列リテラル( )'\\20%'
を使用する必要があります。どちらも次のように表示されます。r'\20%'
>>> r'\20%'
'\\20%'
\20
DLE
は、 10 進数値が 16 ( 20
8 進数、 16 進数)の ASCII 文字を参照するエスケープ シーケンスです10
。このような文字は、文字列の関数\x10
によって 16 進エスケープとして出力されます。repr
リテラルを指定するには\20
、円記号を二重にするか ( "\\20"
)、生の文字列を使用します ( r"\20"
)。
2枚プリント"\20%"
直接印刷するとどうなりますか:
>>> print '\20%'
% # some symbol not correctly display on this page
を使用してr
>>> print r'\20%'
\20%
>>> r'\20%' # what r do.
'\\20%'
>>> print '\\20%'
\20%
>>>
しばらく前に、私は文字列について同じ疑問を抱いていたので、質問をしました。参考になるかもしれません。