5

「\ 20%」を印刷しようとすると、Pythonは初めてです

>>>"\20%"

シェルが '\x10%' を出力するのはなぜですか、つまり、表示されています

'\x10%'

do の場合も join で同じことが起こっています

>>>l = ['test','case']
>>>"\20%".join(l)

それが示している

'test\x10%case'

私はpython 2.7.3を使用しています

4

3 に答える 3

11

'\20'は 8 進数リテラルで、 と同じchr(2 * 8 + 0) == chr(16)です。

Python シェルがデフォルトで表示するのは、print の出力ではなくrepr、指定された値 (16 進数)の表現です'\x10'

文字列\20%が必要な場合は、バックスラッシュ ( ) をエスケープするか、生の文字列リテラル( )'\\20%'を使用する必要があります。どちらも次のように表示されます。r'\20%'

>>> r'\20%'
'\\20%'
于 2013-01-15T10:26:11.887 に答える
2

\20DLEは、 10 進数値が 16 ( 208 進数、 16 進数)の ASCII 文字を参照するエスケープ シーケンスです10。このような文字は、文字列の関数\x10によって 16 進エスケープとして出力されます。repr

リテラルを指定するには\20、円記号を二重にするか ( "\\20")、生の文字列を使用します ( r"\20")。

于 2013-01-15T10:27:44.017 に答える
1

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%
>>> 

しばらく前に、私は文字列について同じ疑問を抱いていたので、質問をしました。参考になるかもしれません。

于 2013-01-15T10:47:45.223 に答える